杨丽娜 齐鲁工业大学信息学院
随着现代计算机的飞速发展,网络安全等问题的出现给广大用户带来了较大的影响。在过去的时间里,DES是主流的密码,但是因为它的密钥空间太小,已经被进行了攻击。所以我们在其存在的问题上进行改进,使DES算法的功能更加强大。
DES是对称密码,即加解密采用同样的密钥,密钥长度为64比特,8比特是奇偶校验位,所以有用长度为56比特。DES对明文中每一个分组的加密过程都包括16轮,且每一轮都相同。过程如下:
1.初始置换IP(X)。将64位的明文x进行初始置换IP 后,此明文会被分成两部分,L0代表左半部分,R0代表右半部分。在初始置换过程中并没有增加DES的安全性。
2.密钥生成。1.首先输入64位密钥,密钥分别记为1-64。从64位当中选择56位作为有效密钥。2.将所得56位密钥进行置换并分别生成C0和D0两部分。3. 每轮进行迭代时,Ci-1和Di-1分别循环左移一位或者两位,具体规则是:在第i=1,2,9,16轮中,左右两部分向左移动一位;在其他轮中,向左移动两位。4.对移位后产生值再做一次置换。以上便生成了一个48位的密钥。
3.加密过程。将初始置换IP产生的32位的左右两部分做为下一部分的输入。从 到 L0 到 L16,R0到 R16 共进行 的16次加密变换 。经过 i次变化后的左 、右 32比特分别为 Li和 Ri。Li和 Ri计算公式为:Li=Ri-1,Ri=Li-1XORf(Ri-,ki)。( 注:K是第二步中的密钥; f是以 Ri-1和 K 为变量输出的由S盒置换构成 的 32比特函数.)
4.逆初始置换。进行16轮加密变化之后,将L16和R6进行逆置换,最终得到64位密文。加密过程完成。
DES密钥空间过小,密钥长度是56位,利用穷尽搜索就可以轻易得破解标准的DES。在2006年,一个研究小组基于商业集成电路构建了COPACBANA.使破解DES的时间平均不到7天。总之,它的空间大小已经不足以保证当今数据的安全。
在DES算法中有12个半弱密钥和4个弱密钥。子密钥的生成过程中,密钥被分解了两个部分,若这两个部分是全0或全1,那每轮生产的子密钥都一样。当密钥全0或全1时,或者一半时1或0时,就会产生弱密钥或半弱密钥[3]。
S-盒是DES的核心,是唯一非线性的。它的安全强度影响DES安全。
X-DES中的X是指密钥个数是不确定的。在加密时手动输入密钥的长度,达到了一次一密的结果。只要添加密钥的位数,就会使破解的难度成指数增加,对于将要进行攻击的攻击者来说根本不知道密钥的长度,这样就会使穷举的时间增长。
密钥分为两种,一种是默认的密钥,另一种是随机密钥[3]。随机密钥有(X-1)*64位。加密时用户输入随机密钥个数n,程序进行(n+1)次加密(其中有一个密钥是固定的)。
S-盒是DES的核心。对S-盒的结构进行优化,让S-盒的顺序能够跟着密钥情况的不同进行变化,如果该系统密钥位是未知的,那系统就很难被攻击。特别是能有效地避免对差分密码的破密。这使DES加密算法更安全。
本文介绍了DES算法和对DES做出的改进。在当今社会中,DES算法已经被广泛的应用,所以对DES算法进行改进具有重要意义。
[1] Christof Paar,Jan Pelzl.深入浅出密码学.清华大学出版社,2012.
[2] 张春晖.DES算法原理及改进.电脑知识与技术.2009.vol.5
[3] CSDN.DES算法缺陷和改进.2006.12
[4] 冯登园.网络安全原理与技术.北京:科学出版社,2003.