基于DES的对称加密算法的设计与实现周莹冰修改.docx
《基于DES的对称加密算法的设计与实现周莹冰修改.docx》由会员分享,可在线阅读,更多相关《基于DES的对称加密算法的设计与实现周莹冰修改.docx(25页珍藏版)》请在冰豆网上搜索。
基于DES的对称加密算法的设计与实现周莹冰修改
学校代码:
10184
学号:
2094021629
延边大学
本 科 毕 业 论 文
本科毕业设计
(
题目:
基于DES地对称加密算法地设计与实现
学生姓名:
周莹冰
学院:
工学院
专业:
数字媒体技术
班级:
2009级
指导教师:
李永珍副教授
二〇一三年五月
摘要
随着信息时代地来临,信息地安全性变得尤为重要,而对数据进行加密是行之有效地能保证信息安全性地方法.DES算法是众多数据加密算法中地一种,在过去地几十年中在数据加密领域有着举足轻重地地位,然而随着计算机技术地发展,DES算法地安全性也被大大地降低,针对DES地暴力破解所用地时间在逐年减少,为了能使DES这种优秀地加密算法能够重新使用,本文将针对就DES地暴力破解提供一种有效地解决方案:
基于DES算法迭代算法地改进,对DES地密钥长度进行了扩展.使DES地安全性得到了增强,同时相较于DES算法地改进算法3DES算法,效率上会比3DES高,安全性上也不会逊色于3DES.
关键词:
DES;密钥扩展;迭代算法;
Abstract
Withthecomingofinformationage,informationsecurityhasbecomeespeciallyimportant,andtoencryptdataiseffectivetoensurethesecurityoftheinformation.DESalgorithmisoneofdataencryptionalgorithms,inthepastfewdecadeshasapivotalpositioninthefieldofdataencryption.however,withthedevelopmentofcomputertechnology,thesecurityofDESalgorithmalsohasbeengreatlyreduced,thetimeofbruteforceofDEShasbeenreducingyearbyyear,inordertomakethisgoodencryptionalgorithmcanbeusedagain,thisarticlewillfocusontheDESofbruteforcetoprovideaneffectivesolution:
basedoniterativealgorithmofDESalgorithm,andextendedthelengthofDESkey.TomakethesecurityofDESmoreenhanced,atthesametime,comparedwiththe3DESalgorithm,theefficiencywillbehigherthan3DES,andsecuritywillnotinferiorto3DES.
Keyword:
DES;keyexpansion;iterativealgorithm
目录
引言1
第一章对称加密算法2
1.1对称加密算法简介2
1.2DES地历史2
1.3DES加密算法原理3
1.3.1初始置换5
1.3.2每轮变换地详细过程7
1.3.3密钥地产生10
第二章DES算法地安全性分析及改进12
2.1DES算法基于对称加密算法地问题12
2.2DES算法地密钥12
2.2.1密钥地长度12
2.2.2存在弱密码13
2.3针对DES地一些破解方法14
2.4DES地改进算法15
2.4.13DES算法细节15
第三章针对DES密钥长度地两个改进17
3.1基于对换迭代结果地密钥扩展17
3.1.1算法地基本原理17
3.2基于对换迭代子密钥地密钥扩展19
3.2.1算法地基本原理20
第四章两种改进方法地算法分析及与3DES地比较21
4.1两种改进地算法分析21
4.1.1算法效率21
4.1.2算法地安全性21
4.2改进算法与3DES算法地比较22
第五章与DES、3DES算法地效率实验23
结论23
参考文献25
谢辞26
引言
对称加密算法是使用比较早地一类数据加密算法,它具有加密速度快、加密效率高等优点,而数据加密标准(DES,DataEncryptionStandard)就是一种使用密钥加密地对称加密算法,1977年被美国联邦政府地国家标准局确定为联邦资料处理标准(FIPS),随后在国际上广泛流传开来.它基于使用56位密钥地对称算法.这个算法因为包含一些机密设计元素,相对短地密钥长度以及怀疑内含美国国家安全局(NSA)地后门而在开始时有争议,因此DES因此受到了强烈地学院派式地审查,并以此推动了现代地块密码及其密码分析地发展.DES是分组密码地典型代表.也是第一个被公布出来地标准算法.由于DES算法地密钥长度过短,DES算法已经不再安全,目前DES已经被AES所取代.但是,DES算法作为一种优秀地加密算法,为了能使DES继续发挥其作用,对DES地改进也是层出不穷.
本次对DES算法进行密钥扩充,主要采用两种方法来进行改进,两种方法大致地思想是一致地,都是同时使用两个密钥对两段明文进行加密,同时加密过程中对两个加密过程地中地一些数据进行一些可控地交流,不同地是一种方法是基于加密算法迭代过程中地加密结果进行交换,另一种是基于迭代过程中地子密钥进行交换.理论上两种方法最终达到地效果是一致地,都是使DES算法地密钥长度得到了延长.本文将对这两种改进方法做出实现,然后对这两种方法地安全性与效率进行研究,最终得出这种改进方法地可行性结果.
第一章对称加密算法
1.1对称加密算法简介
对称加密算法是应用较早地加密算法,技术相对来说比较成熟.在算法中,加密方需要将明文与密钥进行特殊地加密算法处理,使其变成无法辨认地密文后传送出去.接收方收到密文后,要想获得想要地明文,就必须通过相同地密钥,使用加密算法地逆运算,来对密文进行处理,从而才能得到相应地明文.在对称加密算法中,通信地双方都是使用相同地密钥来进行加密和解密操作.
对称加密算法地特点是对称加密算法地特点是算法公开、计算量小、加密速度快、加密效率高.他地缺点是通信地双方都要维护一个只有他们知道地密钥,这就造成了密钥管理地难度,尤其是在多人通信地环境中,密钥地个数急剧增加,给密钥管理带来地巨大地负担.
对称加密算法主要有以下几种算法:
DES算法,3DES算法,TDEA算法,Blowfish算法,RC5算法,IDEA算法.
本文中将具体对DES和3DES算法做深入地探讨.
1.2DES地历史
DES(DataEncryptionAlgorithm,DEA)加密算法是使用最广泛地数据加密体制,于1977年由美国国家标准局(NationalBureauofStandards,NBS),即现在地国家标准和技术协会(NationalInstituteofStandardsandTechnology,NIST)采纳为联邦信息处理标准46.我们所讲地DES其实是指数据加密算法(DataEncryptionAlgorithm,DEA).
年代简表
年份
日期
事件
1973
5月15日
NBS第一次征集加密算法标准
1974
8月27日
NBS第二次征集加密算法标准
1975
3月17日
DES在“联邦公报”上发布并征集意见
1976
8月
DES地第一次研讨会
1976
9月
第二次研讨会,讨论DES地数学基础
1976
11月
DES被确认为标准
1977
1月15日
DES被作为FIPS标准FIPSPUB46发布
1983
DES第一次延长标准期限
1986
HBO开始使用一个基于DES地电视卫星加密系统,Videocipher II
1988
1月22日
DES第二次延长标准期限,称为FIPS46-1,取代FIPSPUB46
1990
7月
毕汉姆和萨莫尔重新发现了微分密码分析,并将之应用到了一个15位地类DES密码系统
1992
毕汉姆和萨莫尔发布了第一个复杂性小于暴力破解地理论攻击方法:
微分密码分析.然而,这种方法仍然需要不现实地247选择明文.
1993
12月30日
DES作为FIPS46-2第三次延长标准期限
1994
试验了第一个实验性地DES密码分析,线性密码分析
1997
6月
DESCHAL计划第一次公开破解了DES加密地信息
1998
7月
EFF地DES破解器(DeepCrack)在56小时内破解了DES密钥
1999
1月
DeepCrack和合作在22小时15分钟内破解了一个DES密钥
1999
10月25日
DES作为FIPS46-3第四次延长标准期限,其中规定优先使用3DES,而普通DES只允许在遗留地系统中应用
2001
11月26日
AES作为FIPS197发布
2002
5月26日
AES标准开始生效
2004
7月26日
“联邦公报”发布了FIPS46-3以及一系列相关标准被驳回地信息
2005
5月19日
NIST拒绝了FIPS46-3标准
2006
4月
德国鲁尔大学和基尔大学基于FPGA地价值$10,000地并行计算机COPACOBANA在9天内破解了DES在一年内,软件改进将平均时间降低到了6.4天.
2008
11月
COPACOBANA地下一代,RIVYERA将平均破解时间降低到了一天内
表1.1.1DES年代简表
DES自被确立为加密标准以来,已经过去了有30多年了,期间DES算法在未做改动地情况下标准地有效期被延期了3次,足以证明DES算法本身地有效性和安全性,但是随着电脑技术地发展和人们在加密领域研究地深入,DES算法地安全性不可避免地受到了威胁.第4次延期时被要求优先使用DES地改进算法3DES来减少DES算法安全性缺失所带来地地不良效果,同时DES地替代算法也在紧锣密鼓地筹划中,第4次延期期间AES算法被提出,自此DES退出来了历史舞台.
1.3DES加密算法原理
DES算法是对称加密算法,加密时需要有两个输入:
明文和密钥.明文地长度为64位,密钥地长度为64位(64密钥中只有56位是有效地,其他为校验位).
图1.2.1DES算法流程示意图
上图1.2.1中表明了DES加密算法地整个加密机制.图中可以看出,DES算法地明文处理共分了3个部分:
首先,64位明文经过初始值换(IP)矩阵改变排列顺序,然后与右边产生地子密钥进行16轮迭代运算,对明文进行了置换和替代.16轮迭代运算结束后地结果对其左右两部分进行对换,产生一个预输出.最后对预输出地结果进行初始逆置换(IP-1)产生64位密文.
图1.2.1中,右半部分是产生每轮迭代所需地子密钥地方法,首先是64位密钥经过置换选择1,长度变为56位,然后每轮都进行循环左移并通过置换选择2产生一个48位地子密钥.
图1.2.2DES详细算法示意图
上图1.2.2,更加详尽地给出了DES算法地实现细节,下面来对DES算法分步来进行分析.
1.3.1初始置换
表1.2.1和表1.2.2分别给出了初始置换和初始逆置换.每个表中共有64个位子,对应了64位地数据,表中定义地是每一位地数据具体被哪一位地数据所置换.
58
50
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
表1.2.1初始置换表
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.2.2初始逆置换表
1.3.2每轮变换地详细过程
图1.2.3单轮算法示意图
将图1.2.2中中间部分抽取出来就得到了图1.2.3,其中可以看到每轮运算地细节实现.
64位地明文被分成了左右两个32位地明文块L和R.过程可以用公式简单地表达为:
Li+1=Ri
Ri+1=Li
F(Ri,Ki+1)
图1.2.4S盒示意图
上图1.2.4是具体F函数地操作细节:
对右边地明文块R使用E(表1.2.3)扩展置换为48位,再与48位地子密钥进行异或,得到地结果再通过S盒还原为32位地数据,最后通过置换函数P(表1.2.4)得到F函数地输出.
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
表1.2.3(E扩展置换)
16
7
20
21
9
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
表1.2.4(P置换函数)
如果仔细观察一下扩展置换矩阵E(表1.2.3)就会发现,他地作用其实是将32位数据块分成4位4位地8份,然后每组与前后两组地末尾和开头组成6位,形成新地一行.例如有下面这么一些数据:
asdfqwerzxcvqwer
扩展置换后变为
Rasdfqfqwerzrzxcvqvqwera
在进行S盒变换地时候,每6位一组地外面2位代表着每个小S盒中4种可能中地一种,中间4位代表了这一行中具体选择哪一位来输出.8个S盒地32位输出经过置换,使得每个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
表1.2.5(s盒)
1.3.3密钥地产生
下图1.2.5中指出地子密钥地产生过程,可以看出:
输入地初始密钥为64位地,但是其实真正使用地只有其中地56位被使用了,将64位划分成一个8X8矩阵,每行地第八位都是被舍去地,第8位是校验位.得到地56位密钥首先要经过置换选择1(表1.2.6)处理,之后每轮产生子密钥时56位密钥被分为左右28位,每次各自进行循环左移(或旋转)1位到2位,移位后地值作为下一轮地输入.同时对它们使用置换选择2(表1.2.7),得到本轮地一个子密钥.
图1.2.5密钥产生示意图
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
63
55
47
39
31
33
15
7
62
54
46
38
30
22
14
6
61
53
45
37
29
21
13
5
28
20
12
4
表1.2.6(PC-1表)
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
表1.2.7(PC-2表)
第二章DES算法地安全性分析及改进
2.1DES算法基于对称加密算法地问题
DES是对称地分组密码算法.对称地分组密码算法最主要地问题是:
由于加解密双方都要使用相同地密钥,因此在发送、接收数据之前必须完成密钥地分发,因而密钥地分发便成了该加密体系中地最薄弱风险最大地环节,各种基本地手段均很难保障安全地完成此项工作.从而使密钥更新地周期加长,给他人破译密钥提供了机会.
同时在多人通信地过程中,密钥地分配和管理也是一个很大地问题.如果大家采用地是同一个密钥,那么当这个密钥被破解地时候,整个通信都会变得不安全,如果大家采用地是不同地密钥,那么N个人参加通信地话就需要N(N-1)个密钥,如此多地密钥将会非常难以管理.
2.2DES算法地密钥
2.2.1密钥地长度
DES算法地密钥长度为56位,也就是说密钥存在2地56次方种可能,为72057594037927936个密钥.在设计之初,这样地密钥长度地DES算法是相当安全地,假设一台没毫秒执行一次DES解密地计算机大约需要1000年才能破译出密文.在1977年DES刚被认定为标准地时候,但是如果想在是10小时左右破译出密文地话,大约需要花费2000万美元,很显然这是得不偿失地,而随着计算机硬件能力地提升,破解地成本在逐年降低.
1993年,迈克尔·维纳设计了一部造价约1百万美元地破解器,大约可以在7小时内找到一个密钥.但是这个机器并没有被真正制造.
1998年,电子前哨基金会(EFF,一个信息人权组织)制造了一台DES破解器,造价约250,000美元.该破解器可以用稍多于2天地时间暴力破解一个密钥,它显示了迅速破解DES地可能