当前位置:首页 >技术文章>

DES加密算法的特性及其破解方案

作者:周绯菲 潘杰;整理:超时代软件

超时代视频加密软件手机视频加密软件均采用比DES强度更高的AES加密算法加密,但是DES加密算法,仍然能给我们以启示,学习和了解它也是非常有必要的。

 

1. DES算法原理及内在特性

这种算法把要传输的明文以64比特为单位进行分组,使用64位密钥(密钥的实际有效位数是56位).

 

1.1 DES算法描述

I.1.1 加密过程

首先对明文进行初始置换;再将所得结果进16轮处理,这16轮处理完全依赖于密钥——先将64比特的数据等分为两半,其中一半数据作为某个复杂函数厂(包括通过确定的8个s盒的非线性代换)的输入,并将输出结果和另一半数据进行异或;*后再应用一个末位置换获得密文.

 

I.1.2 DES算法密钥的生成

DES算法中每一轮迭代运算都会使用一个子密钥,它由用户输人的密钥K产生.取64位K作为初始密钥(主密钥),每8位中有1位奇偶检验位,经过排列选择1(PC—1),等分成C0和D0两部分.将C0,D|0各循环左移1位得到cl,D1,再经过排列选择2(PC~2)得到密钥K1;对C1,D1作循环左移1位后得到C2,D2,经过PC-2得到子密钥K2……直到产生子密钥K16。

 

I.1.3 解密运算

解密运算与加密运算一样,只是所取子密钥的顺序不同.加密时候的顺序是K1-K2-...-k16,解密时的顺序则为Kl6-K15一...一K1。

 

1.2 DES算法的内在特性

(1)密钥有效长度是56位(第8,l6,...,64位为校验位).分组明文长度为64位,而且明文、密文与密钥存在互补关系.

(2)仅用16次循环迭代,使得相同明文会产生相同密文.

(3)存在着很好的并行结构:产生内部密钥的左移次数存在着准对称性(即内部密钥生成过程存在并行性).DES属于传统的Feistel网络结构,在DES的基本单元中能够实施并行操作.

(4)DES有16轮加密,如果将第i轮的P置换移至下一轮后会与下一轮的E扩展操作进行合并,简化算法的基本操作.(5)可以通过S盒与P置换合并的方法节省P置换的基本操作时间·

 

2. 常见的DES算法破解方法

2.1 利用密钥的使用误区进行攻击

(1)通过DES密钥的8位校验位进行攻击.DES算法只用到64位密钥中的56位,第8,16,…,64等8个位并未参与DES的运算,即计算密钥时第8,l6,…,64位等8个位被忽略.例:取密钥Key为8个0x30,明文为8个0x31,用DES算法加密后明文变为65 5e a6 28?cf 62 58 5f。若加密密钥Key变为8个0x31则执行DES后的密文也是如此.同理,若加密密文为65 5e a6 28 cf 62 58 5f,无论用8个0x30作为解密密钥还是用8个0x31作为解密密钥,均能还原出8个0x31的原始明文.由此可见,DES的安全性是依靠除密钥Key的第8,16,…,64位以外的其余56位组合变化得以保证的.如果在应用中使用密钥的第8,16,…,64位作为有效数据位,则容易被黑客利用8位校验位进行攻击.

 

(2)通过穷举法攻击.因为DES算法的明文、密文与密钥存在互补关系(若c=DESk(m),m'为m的补,c'是c的补,则c'=DESk(m'))如果用户使用互补密钥,穷举法破解的工作量会减少一半.另外,DES产生内部密钥的左移次数存在准对称性,黑客在基本单元里可以利用穷举攻击中的并行原理来加速搜索密钥空间的搜索速度.再有,用户为提高运行速度会将DES中一些基本操作合并、简化(如:P排列与扩展置换的合并以及S盒与P置换的合并),这样会降低穷举攻击的硬件代价,并且会提高黑客对密钥空间的搜索速度.

 

2.2 通过比较法攻击

因为DES算法的迭代次数少,会出现相同明文产生相同密文的现象.如果黑客获得一个真正的单词明码正文列表的字典文件,然后把这些单词用所有的符合DES标准的加密程序进行加密并把每个加密的单词与目标口令比较——如果匹配,则该目标口令很有可能被破解。另外黑客可以使用差分密码和线性密码分析方法来破解.

 

2.3 利用生成子密钥时产生的弱密钥与半弱密钥攻击

如果使用者在生成子密钥时不注意密钥的检查,会产生弱密钥或半弱密钥,黑客可以利用这些弱密钥与半弱密钥对密文进行解密.DES算法中,至少有4个弱密钥k满足DESk(DESk(m))=m

 

(因为在产生子密钥时初始密钥被分为两半,以后各自独立移位.如果每一半都是0或1,则所有子密钥都相同).这些弱密钥是

0101010101010101

1F1F1F1F0E0E0E0E

E0E0EOEOF1F1F1F1

FEFEFEFEFEFEFEFE

如果加密过程中出现弱密钥,则下一次加密的结果是将本次加密后的密文还原.另外,DES算法中存在至少l2个半弱密钥对(满足DESk(m)=DESk的-1次方(m)的密钥对k与k'),黑客可以利用半弱密钥将使用其他密钥加密的信息进行解密.所以使用者在使用DES进行加密的时候要注意子密钥的检查,以防产生弱密钥与半弱密钥.

 

如今传统的DES算法虽然已经被攻破,但其提供的加密算法思路仍可为今后设计其他加密算法提供借鉴.之后出现的加密算法如RSA等密钥位已经达到2048位以上,安全性有所提升,破解方法有所不同.