加密算法五虎上将之DES

DES(Data Encryption Standard, 数据加密标准)对称加密算法,即加密解密采用相同的密钥。1972年美国IBM公司研制的对称密码体制加密算法,1977年美国政府正式采用此算法,故而DES又称美国数据加密标准。1983年公开免费使用。

DES算法安全性
一.安全性比较高的一种算法,目前只有一种方法可以破解该算法,那就是穷举法. 
二.采用64位密钥技术,实际只有56位有效,8位用来校验的.譬如,有这样的一台PC机器,它能每秒计算一百万次,那么256位空间它要穷举的时间为2285年.所以这种算法还是比较安全的一种算法.
因为以上两点,DES曾经号称是绝对安全的算法,但作为安全人员,都有个认识,这世上没有绝对的安全,随着技术的改进,及对算法的研究,DES也不得不承认它的不足。为什么DES不再安全呢?请看:
1、计算机运算速度的提升,降低了DES的安全性。
2、分布式穷举很大程度上缩短了DES穷举所需要的时间。
3、专用的DES破解仪器,计算机是通用设备,破解DES或许需要很长的时间,但是在1998年,EFF为了向世人证明DES不再安全,耗资20万美元打造了一款专用的DES解密设备(Deep Crack),1536个CPU,每秒920亿个KEY的速度对DES进行破解,4天左右可以破解DES的加密,这对DES来说是致命的,至此,廉颇老矣。
4、1980年,牛B的马丁.赫尔曼提出了一个牛B的构想,用海量的存储预先将所有有可能的KEY(A)与可能的明文进行加密得到密文B,把(A,B)存储起来,那么我们就可以通过索引来获取我们想要的结果(现代的MD5解密就是这么作的,当然MD5同样号称被破解了),但这样来说我们需要一个近乎不可能存在的存储空间来存储这样一个海量的信息库。当然牛B的马丁提出了一种稍次的替代方案,选择一定的KEY(通过一定的规则)把(A,B)存储起来,当然这时候就不会是那么精确了,会有一个范围,我们通过索引索引到这个小的范围,再在这个小的范围里进行穷举。这就像树(分层的概念)如果你想作这么一件事,或许你可以多分几层,这样更加能缩短你需要的存储空间。
5、继马丁之后,牛B的以色列人发明了一种微分算法来对DES进行破解(以色列在密码方面挺牛叉的),只需要对特殊的明文、密文采样247对,就可以短时间获取到需要的信息。
6、日本一个年轻科学家发明了一种线性分析方法,也很大程度上削弱了DES的安全性。
综上所述,DES己经不再安全了,我们需要一种更安全的替代方案,但是DES作为一种相当优秀的加密算法,还是需要学习一下。

早先提过DES是一种对称密码,因此DES有三个参数(KEY、DATA、MODE),KEY和DATA都是8字节,64位,得到的密文也是64位,MODE是指工作模式(包含加密、解密)。
1初始置换
其功能是把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长3 2位,其置换规则为将输入的第58位换到第一位,第50位换到第2位……依此类推,最后一位是原来的第7位。L0、R0则是换位输出后的两部分,L0是输出的左32位,R0是右32位,例:设置换前的输入值为D1D2D3……D64,则经过初始置换后的结果为:L0=D58D50……D8;R0=D57D49……D7。
2逆置换
经过16次迭代运算后,得到L16、R16,将此作为输入,进行逆置换,逆置换正好是初始置换的逆运算,由此即得到密文输出。
DES实际上只用到64bit中的56bit第8、16、24、32……等8位未参与加密,因此需要避免这些位为有效位的密钥。

针对DES的不安全性,也为了安全性需要,人们亟待一种更加强壮的加密算法来保障我们生产的需要,因此一种过渡性算法诞生了-3DES
在EFF公布DES破解设备后的一年(1999年)NIST公布了3-DES(Triple DES)作为一种过渡的加密算法,它采用了3对64bit(或许称之为56bit更合适,因为它只有56位是有效的)对数据进行三次运算,用第一对密钥对K1数据进行加密,得到的密文用第二对密钥对K2进行解密,再用第三对密钥K3对结果进行加密,得到的最终输出就是3-DES加密结果。同样它的解密过程是互逆的,用第一对密钥对密文进行解密后,再用第二对密钥对密文进行加密,最后用第三对密文进行解密。那么,在三对密钥全不相同的前提下(注意第无效位),相当于把密钥由64bit提升到了168bit,在很大程度上提升了DES算法的安全性,但这仅仅在密钥上作了加强,没有根本上解决3-DES的不安全性,所以它注定只能担当过渡者的身份,终于在2000年的10月,享年28岁的它与世长辞,另一个牛B的接班人AES正式走上舞台。

 

posted @ 2011-12-19 19:07  0x0001  阅读(432)  评论(0)    收藏  举报