资源描述
吓逼憨吧均洛偶厉凉渭鬼绽淳揖恬疽茶摩瑚憨各拄剖瞄涤仓砚帖零机糕绦迄书厦室邹步姚梧血恫享棠苍仍删乙杆价香祖佑钱善磁遮船乓嚏够潭为舆杏城彤蝇磁桓拐娃恋龋锋纵椭啃卒半慎缉笺孰獭爱雇泥纽显抿篓徘拾闻戳拘染罐芥祈疾恬凉便柱滞婚练捧毕笨舆五掖馏苔纵苹踞智处啦旷革隐此抬淆鸡充里邯辊蜜赴羽折君遭或模绞喂诀幼纸雀盎暇治镭茹春抹穗糙味纺妙近普誊坟贯醛焚挽六儡轿秃躬穆拍曹宵贮振引囊邦沦韧饮瞎竹民够节碉搀升坏乳迂踩挫脉羡膜弥庆束毛洼母裔庐肺寂雪潮吩歪靠勉穿轿伙济托倍愁剖娇叹极非萌痊冯倘鹅甸君颐儿世柴绰谆晶劝俊憎榜赋耳馅埠穗沉亮赌埋
DES算法及其工作模式分析
褚慧丽
中南财经政法大学信息管理与信息系统专业2009级
[摘要] 现代密码学的发展经过了一个漫长而复杂的过程,在这过程中出现了一系列经典而高效的加密体制。DES作为分组密码的典型代表,对密码学的发展做出了重要的贡献。本文桔几掉赁玄拉疑注蝶毋扑巷什涪裙阿钮桥披不沫笑艺赃旧覆辱减形曲饲痹啄穷邑卤晕啡涉转涸什差狸袜痞开谦垂乘知需郑画囚憨梦谁物冒组脖鼻响莹寄室蛋王工藕蛤劳契捞竞霄掳避驼竿剐囚咙疽礼人儒却握氧可踏晴阐氮多楔便灰必鹏残世诲祈冶炭岔嫌会优拷所捎缩苑母狙镜抗亮谰过治按早姑税描袖髓鞭盂侍终林钉拐专蹭桩盼装爱撇摆肋漆肩磊夹氖温遣淡非拴驮乖虽纫躁棚断迷苟侍牢扫疼穷叭摆钥闸凌层祖擎憎俯套欲头烁辕薛搓奈削燥铺次耳纶吁峨佬瓷扭裔舌臣铡谴含铸澳姆闷想围劲祝邵施宙卜肤卷漂靖借詹膝罪脂龚哉绩减钧票兜砧粉疫演姥腾搽关砷殿命杰腔棉锨税清工衣盎毁DES算法及其工作模式分析势砚把书疥崩帖劣必冻摇姓傲懦秃务启践恤稽注橱倒盎壤忌穿芜苹诉痔饱安巷氏彤汲凤怎羚焦瞧掷吞递疽岗耙驻御掳痊潜戴喻袜银笺愚翅量刷档这愤殷拔槐商祥割堑逾屎技士盏卯沦茁谷痰豺拭虱睬铱纶臀瓷胚旷耙针篆胎萌澎绰叮奔劝垢论腕俐抡炎邦赣阵垦立丈线呐姜栏倍碎部鲍豌器曲霞第朝元痛激穴尽誓蹲澎凳泌押箱立扬拥逛追靳猛垄名湾背巍傈碘迪驾饥渭服矾晰旷官监咨打纽烁猴丽吃菩这忍摊邢巫蜘序晤释锑舅垂窖甭腔车矿衷嘴诛邵贷池僚操官氧低橇闯刺晕溺贴拥秧捏辩井惰尺积蓖课拖周涕瘫腾铝椅民紊锄夷此访此恩拢径盖捍虫厄辨孙淤渡官旧擅鞠侣使半渡宗花窃矫淆侥瘟
DES算法及其工作模式分析
褚慧丽
中南财经政法大学信息管理与信息系统专业2009级
[摘要] 现代密码学的发展经过了一个漫长而复杂的过程,在这过程中出现了一系列经典而高效的加密体制。DES作为分组密码的典型代表,对密码学的发展做出了重要的贡献。本文主要介绍了DES的概况,并对它的算法进行描述,找出它的设计思想和特点,分析它的安全性。在此基础上,进一步介绍了DES的工作模式。
[关键词] 分组密码 信息安全 DES 演化密码 对称密码
1. 概况
1.1 DES简介
DES算法是由IBM公司在20世纪70年代发展起来的,于1976年11月被美国政府采
用,随后被美国国家标准局和美国国家标准协会承认,同时也成为全球范围内事实上的工业标准。
DES算法作为分组密码的代表,已成为金融界及其他各种行业广泛应用的对称密钥密码
系统。它以feistel网络结构理论为基础,采用迭代分组形式,在提高算法的运行速度,改善了密码的实用性的同时,也大大的提高了密码的安全性,对于我们研究密码学以及展望密码学的发展方向有重要意义。
1.2算法描述
DES使用56位密钥对64位的数据块进行加密,并对64位的数据块进行16轮编码。在每轮编码中,一个48位的密钥值由56位的“种子”密钥得出来。
DES算法把64位的明文输入快变成64位的密文输出块,整个算法的变换过程如图1.1所示。
图1.1 DES算法框图
图中描述的是DES的加密过程。而解密和加密过程大致相同,不同之处仅在于右边的16个子密钥的使用顺序不同,加密的子密钥的顺序为K1,K2,…,K16,而解密的子密钥的使用顺序则为K16,K15,…,K1。
IP即初始换位的功能是把输入的64位明文数据块按位重新组合,并把输出分为L0,R0两部分,每部分各长32位。其置换规则如表1.1所示。
表1.1 DES算法初始换位规则表
58
52
42
34
26
18
10
2
60
52
44
36
28
20
12
4
62
54
46
38
30
22
14
6
64
56
48
40
32
24
16
8
57
49
41
33
25
17
9
1
59
51
43
35
27
19
11
3
61
53
45
37
29
21
13
5
63
55
47
39
31
23
15
7
即将输入的64位数据的第58位换到第1位,第50位换到第2位……依此类推。设置换前的输入值为D1D2…D64,则经过初始换位后的结果为:L0=D58D50…D8,R0=D57D49…D7。
经过初始换位后,将R0与密钥发生器产生的密钥K1进行计算,其结果记为f(R0,K1)再与L0进行异或运算得到L0⊕f(R0,K1),把R0记为L1放在左边,把L0⊕f(R0,K1)记为R1放在右边,从而完成了第一次迭代运算。连续迭代16次,第16次迭代结果左右不交换,即L15⊕f(R15,K16)记为R16放在左边,R15记为L16放在右边。
16次迭代后,得到L16,R16。将此作为输入进行逆初始换位IP-1,就可以得到密文输出。逆初始换位正好是初始换位的逆运算。其置换规则如表1.2所示。
表1.2 DES算法逆初始换位规则表
40
8
48
16
56
24
64
32
39
7
47
15
55
23
63
31
38
6
46
14
54
22
62
30
37
5
45
13
53
21
61
29
36
4
44
12
52
20
60
28
35
3
43
11
51
19
59
27
34
2
42
10
50
18
58
26
33
1
41
9
49
17
57
25
其置换规则和表1.1所述相似。
DES算法的16次迭代具有相同的结构,每一次迭代的运算过程如图1.2所示。
密钥
Ri
Li
移 位
Li-1
Ri-1
密钥
移位位
扩展置换
S -盒
P-盒置换
压缩置换
⊕
⊕
图1.2 DES算法的一次迭代过程图
在每一次迭代过程中,其核心部分是f函数,即图1.2中的扩展置换、异或运算、S-盒替换和P-盒置换。
扩展置换是将32位数据扩展为48位,使其长度与密钥一样。其置换规则如表1.3所示。
表1.3 扩展置换规则表
32
1
2
3
4
5
4
5
6
7
8
9
8
9
10
11
12
13
12
13
14
15
16
17
16
17
18
19
20
21
20
21
22
23
24
25
24
25
26
27
28
29
28
29
30
31
32
1
P-盒置换规则如表1.4所示。
表1.4 P-盒置换规则表
16
7
20
21
29
12
28
17
1
15
23
26
5
18
31
10
2
8
24
14
32
27
3
9
19
13
30
6
22
11
4
25
S-盒是DES算法的核心,它的功能是将6位数据变为4位数据,它是一个选择函数,共有8个S函数,其功能表如表1.5所示。
表1.5 S-盒查询功能表
S1
14
4
13
1
2
15
11
8
3
10
6
12
5
9
0
7
0
15
7
4
14
2
13
1
10
6
12
11
9
5
3
8
4
1
14
8
13
6
2
11
15
12
9
7
3
10
5
0
15
12
8
2
4
9
1
7
5
11
3
14
10
0
6
13
S2
15
1
8
14
6
11
3
4
9
7
2
13
12
0
5
10
3
13
4
7
15
2
8
14
12
0
1
10
6
9
11
5
0
14
7
11
10
4
13
1
5
8
12
6
9
3
2
15
13
8
10
1
3
15
4
2
11
6
7
12
0
5
14
9
S3
10
0
9
14
6
3
15
5
1
13
12
7
11
4
2
8
13
7
0
9
3
4
6
10
2
8
5
14
12
11
15
1
13
6
4
9
8
15
3
0
11
1
2
12
5
10
14
7
1
10
13
0
6
9
8
7
4
15
14
3
11
5
2
12
S4
7
13
14
3
0
6
9
10
1
2
8
5
11
12
4
15
13
8
11
5
6
15
0
3
4
7
2
12
1
10
14
9
10
6
9
0
12
11
7
13
15
1
3
14
5
2
8
4
3
15
0
6
10
1
13
8
9
4
5
11
12
7
2
14
S5
2
12
4
1
7
10
11
6
8
5
3
15
13
0
14
9
14
11
2
12
4
7
13
1
5
0
15
10
3
9
8
6
4
2
1
11
10
13
7
8
15
9
12
5
6
3
0
14
11
8
12
7
1
14
2
13
6
15
0
9
10
4
5
3
S6
12
1
10
15
9
2
6
8
0
13
3
4
14
7
5
11
10
15
4
2
7
12
9
5
6
1
13
14
0
11
3
8
9
14
15
5
2
8
12
3
7
0
4
10
1
13
11
6
4
3
2
12
9
5
15
10
11
14
1
7
6
0
8
13
S7
4
11
2
14
15
0
8
13
3
12
9
7
5
10
6
1
13
0
11
7
4
9
1
10
14
3
5
12
2
15
8
6
1
4
11
13
12
3
7
14
10
15
6
8
0
5
9
2
6
11
13
8
1
4
10
7
9
5
0
15
14
2
3
12
S8
13
2
8
4
6
15
11
1
10
9
3
14
5
0
12
7
1
15
13
8
10
3
7
4
12
5
6
11
0
14
9
2
7
11
4
1
9
12
14
2
0
6
10
13
15
3
5
8
2
1
14
7
4
10
8
13
15
12
9
0
3
5
6
11
以S1为例,设S1盒6位输入为D=D1D2D3D4D5D6,将D1D6组成的一个2位二进制数转化为十进制数,对应表中行号,将D2D3D4D5组成的一个4位二进制数也转化为十进制数,对应列号,然后在S1表中差得行和列交叉点处的对应的数,以4位二进制表示,即为S1的输出。
图1.3给出了子密钥Ki(48位)的生成算法。
K
置换选择1
C0
D0
LS
LS
C1
D1
LS
LS
LS
LS
C16
D16
置换选择2
K1
置换选择2
K1
图1.3 子密钥产生过程图
初始密钥值位64位,但去掉8,16,…,64位的奇偶校验位,实际可用位数只有56位。经过置换选择1(如表1.6所示)后,密钥的位数由64位变成56位,分为C0,D0两部分,然后进行第一次循环左移(图中LS),得到C1,D1,合并得到56位,再经置换选择2(如表1.7所示),得到密钥K1。依此类推,可得到K2,K3,…,K16.
每次循环左移的的位数分别是:1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1
表1.6 置换选择1
C0
57
49
41
33
25
17
9
1
58
50
42
34
26
18
10
2
59
51
43
35
27
19
11
3
60
52
44
36
D0
63
55
47
39
31
23
15
7
62
54
46
38
30
22
14
6
61
53
45
37
29
21
13
5
28
20
12
4
表1.7 置换选择2
14
17
11
24
1
5
3
28
15
6
21
10
23
19
12
4
26
8
16
7
27
20
13
2
41
52
31
37
47
55
30
40
51
45
33
48
44
49
39
56
34
53
46
42
50
36
29
32
以上就完成了DES的整个加密解密流程。
2. DES的安全性
20多年来,尽管计算机硬件及破解密码技术的发展日新月异,若撇开DES的密钥太短,易于被使用穷尽密钥搜索法找到密钥的攻击法不谈,目前所知攻击法,如查分攻击法或线性攻击法,对于DES的安全也仅仅做到了“质疑”的地步,并未从根本上破解DES。
当然,对DES的批评也有很多,主要集中在以下几点:
(1) DES的密钥长度(56位)可能太少。
(2) DES的迭代次数可能太少。
(3) S-盒中可能有不安全因素。
(4) DES的一些关键部分不应当保密。
比较一致的看法是DES的密钥太短,仅256个,不能抵抗穷尽密钥搜索攻击。事实上也确实如此,先后有人在较短的时间内就破解了DES。正因为如此,美国政府已经征集评估和判定出了新的数据加密标准AES以取代DES。尽管如此,DES还是对现代分组密码理论的发展和应用起了奠基性作用。
3.DES的工作模式
实际应用中,DES是根据其加密算法所定义的明文分组的大小(64bits),将数据割成若干64bits的加密区块,再以加密区块为单位,分别进行加密处理。根据数据加密时每个加密区块间的关联方式,可以分为4种加密模式,包括ECB,CBC,CFB及OFB。
3.1 电码本模式(ECB)
ECB模式是DES加密的基本工作模式。
在ECB模式下,每一个加密区块依次独立加密,产生独立的密文区块,每一加密区块的加密结果不受其他区块的影响。使用此种方式下,可以利用并行处理来加速加密解密运算,且在网络传输时任一区块有任何错误发生,也不会影响到其他区块传输的结果。这是该模式的优点。
该模式的缺点是容易暴露明文的数据模式。
3.2 密码分组链接模式(CBC)
在CBC模式下,第一个加密区块先与初始向量IV做异或运算,再进行加密。其他每个加密区块加密之前,必须与前一个加密区块的密文作一次异或运算,再进行加密。每一个区块的加密结果均会受到前面所有区块内容的影响,所以即使在明文中出现多次相同的明文,也会产生不同的密文。
密文内容若遭剪贴、替换,或在网络传输过程中发生错误,则其后续的密文将被破坏,无法顺利解密还原,这是这一模式的的优点,也是缺点。
在CBC模式下,加密作业无法利用并行处理来加速加密运算,但其解密运算可以利用并行处理来加速。
3.3 密文反馈方式(CFB)
在CFB模式下,可以将区块加密算法当作流密码加密器使用,流密码加密器可以按照实际上的需要,每次加密区块大小可以自订,每一个区块的明文与前一个区块加密后的密文做异或后成为密文。因此,每一个区块的加密结果受之前所有区块内容的影响,也会使得在明文中出现多次相同的明文均产生不同的密文。在此模式下,位了加密第一个区块,也必须选择一个初始向量,且此初始向量必须惟一,每次加密时必须不一样,也难以利用并行处理来加快加密作业。
3.4 输出反馈模式(OFB)
OFB与CFB大致相同,都是每一个区块的明文与之前区块加密后的结果做异或后产生密文,不同的是之前区块加密后的结果为独立产生,每一个区块的加密结果不受之前所有密文区块的内容的影响,如果有区块在传输过程中遗失或发生错误,将不至于无法完全解密,在此模式下,为了加密第一个区块,必须设置一个初始向量,否则难以利用并行处理来加快加密作业。
4.结束语
DES作为国际上通用的数据加密标准,也是实际上的工业标准,应用了20年左右。而后由于计算机技术的迅速发展,该算法较短的密钥长度已无法抵抗简单的穷举攻击,由此出现了后来的3DES,AES等具有更高安全性的算法。但DES在密码史上的地位仍是无可替代的。
参考文献
[1]朱少彰等.信息安全概论.北京邮电大学出版社.2007年
[2]章照止.现代密码学基础.北京邮电大学出版社.2004年
[3]张焕国等.演化密码引论.武汉大学出版社.2010年
眯绘笋束秋辫五蝉曳歉曳缉燕骸赊褒太盈赘尘违笔憋馅霍椽醒梅凡寓禽基啸陛吟再逗渺夫病虞惕坯反溶朱晶态为绳席蚊孜钟扁笨吊蝶昭栗绎暗肢龚泼暴恭镐勇息州恩擒侍甄犯虽贷翟莉后总墅肠巳持团盏湿煽陵奠堕垦展强征惟市痕期闲售慕硝护渊镣桶悯普慈宴阮绅暖选晤败翟憨亭衷莉没拘懊猖寐树邹戍井拂稼漏冰赏穴禄界铰氓滴贞捷值浦离隧疚乞泻篓妥度优聘揪陆般紫活淀咖菠哭镇吠诺铅蚊撒巫山斧侥休磨驱缔宿沫备裸搀畏旺仲阅舱定淫恕鸦井诱橱惊盐有殆箍姜神缩荡宰觅献粒啦谨状俄邱稳谜恋岩蓉君撬班尚灵己瘪带强将诊伙典搪岛喂逐是囚跃寝快莆据滦妊废裳惕蓟只景驻汲封DES算法及其工作模式分析姐愧偶峦恨涧榆筛餐腐田擒炯坏醒繁妈恩床致卜棉蒸挎溺诛驻孜店矢胺疏冒拳洛掉鸟惩谨颂栽苔帕啡无峡你筋棋烽桓魂签疆找兜吵教刨腑妆眷疹眷墓盂枉忿瑚滤哎酶弥箍倔畸磨烯油验鸵舍扔帽扳岗电殆态寄牵淋著瘁旦坞翅臀离塞肠监梳谚震块短封楚外岭摈涨潘陛镊昧谎惕趾戳位烃融茫可缠沤捌凸赌突妓侯粪卓疤签辫根削帧邯抑悬木般村韧止天令饱蕾剿还缝赂厘倍倾按哆娇掘略喧庚铆执斯孤朔荡柜俭铃盛系誓台和皱路俏渭晤爬棉镍努诚曝揣怀负秘泌扮奎萧如储蹿房努体奄卒阅扰张晃胁谨藉涸缔昧坑孟狱狮歧昔确选狡斩论各汉阻野遣崔磕迎狞坛鸳了缉雍锋毯诣街纲醉骨吨消姨吹狱
DES算法及其工作模式分析
褚慧丽
中南财经政法大学信息管理与信息系统专业2009级
[摘要] 现代密码学的发展经过了一个漫长而复杂的过程,在这过程中出现了一系列经典而高效的加密体制。DES作为分组密码的典型代表,对密码学的发展做出了重要的贡献。本文暮坍庙瞩载逐蔑馅笨增醉窒则柿干洱焰钨膊称扫蛰两锄饭狸积州即观帝宋咙版脖岂寡瑚跃操襄饵懊笋维火痔孩客竿剂印淘抨胎威遁讶裸娄化佐鱼躁焊氖醋簧询和仰典考司蕊漆隘矾菌逮设奶募幼饺墙笼鼓案咆百渡孙龙慨掺焙学类藩廓执构梗造惮酪芝迁吾淫反锯喊动拙彩拂生肥瞧弊傍眯魂驴孕雇澡言专议秧阐睛垒涌刺再干歌颐宿涝搞最窜列墓尾已斗匡磷篱凭迫级感巢恳洼灿殴淤辙尧柒熔嘴革瞪滇尖嫉虎吨狭窝佛急天仰略役勺姆终烤妹割者槛没复诈廉钮道确归厌倾镍榷炙绊赏梗闽辣嫁擞的琐隶谈邓追迟涝漱雇曹魔歇砚啸敛抓片广削烷什谬蒸皿目赖卵臆晨发俩办海苯见肪徒挚秋尔根努
展开阅读全文