赞
踩
分组密码是将明文消息经过二进制编码后的序列分割为固定长度的组,用同一秘钥和算法对每一组加密。且通常情况是密文、明文等长。
安全性原则
实现性原则
迭代分组密码
可以允许生成最大量的加密映射,来映射明文分组,即用加密和解密映射用表定义 对于n比特到n比特的可逆置换,共有2^n!种可能的置换表 秘钥的长度2n^n比特。
DES算法是属于对称密码的分组加密算法
秘钥长64位,56位参与运算,其余8位为效验位( 8 , 16 , 32 , 40 , 48 , 56 , 64 )
当n个64位明文数据块都经过DES加密处理后,所得到的n个64位密文数据块串在一起就是密文。
DES算法的基本流程如下图所示,对于一个64位的分组,首先对它进行初始置换,然后进行16圈的迭代,迭代中每一圈的密钥不同,之后对结果进行逆初始置换,得到密文。
将明文块进行换位,置换表示是固定的。使用64位秘钥将64位的明文输入块变成密文输出块。
(下表)第一位58表示该位置存放明文中的第58位字符。
58 | 50 | 42 | 34 | 26 | 18 | 10 | 02 |
---|---|---|---|---|---|---|---|
60 | 52 | 44 | 36 | 28 | 20 | 12 | 04 |
62 | 54 | 46 | 38 | 30 | 22 | 14 | 06 |
64 | 56 | 48 | 40 | 32 | 24 | 16 | 08 |
57 | 49 | 41 | 33 | 25 | 17 | 09 | 01 |
59 | 51 | 43 | 35 | 35 | 27 | 11 | 03 |
61 | 53 | 45 | 37 | 37 | 29 | 13 | 05 |
63 | 55 | 47 | 39 | 39 | 31 | 15 | 07 |
由于初始置换是固定公开的函数,因此没有密码的意义。作用不大,它们的作用在于打乱原来输入x的ASCII码字划分的关系。经过初始置换之后,64位明文分成了两组L和R,各32位。由于这种方法软件实现较为麻烦,所有很多软件实现都删去了初始置换。经过初始置换,64位的输入得到了两个32位的输出。
例如:
64位明文输入块是 x1,x2…x64,经过初始置换后是x58,x50…x7,则 L0=x58,x50…x8;
R0=x57,x49…x7;
经过IP处理后,进行16轮完全相同的迭代运算。每一次迭代都要压缩秘钥参与。
轮函数F由3个部分组成:扩展置换(E盒),非线性代换(S盒)和线性置换(P盒)。
将32位输入扩展为48位输出
其扩展规则按下表进行:
经过扩展置换,32位的输入得到48位的输出。
例如:
![在这里插入图片描述](https://img-blog.csdnimg.cn/51ada4353f2a4334958351cdf914d875.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5oKfMjPvvIjvvIk=,siz
第三行15列对应上表(8个6进4出S盒)的值是13再转换为二进制1101,也就是说将111111—>1101。
S盒所得的结果再经过P盒置换。至此,一次轮函数操作完毕。
P盒作用只是进行简单的位置置换,把一位换成另一位。
和初置换一样,将经过16轮变换后的明文从高到低编号(最高位为1号,最低位为64号),按照编号填在逆初始置换表中进行一次换位。
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 |
初始置换和逆初始置换是互逆的,所以经过逆初始置换将换位后的64位二进制数变回原来的顺序。
DES的初始64位密钥通过置换选择PC-1得到有效的56位密钥。这56位分为2个28位数据C0和D0。每轮迭代中Ci-1和Di-1分别循环左移1位或2位,移位后的值作为下一轮的输入,同时也作为置换选择PC-2的输入,通过置换选择PC-2产生一个48位的输出,即为一个子密钥。64位密钥生成了16个48位的子密钥。
例如:
PC-1表(用于置换选择)
移位次数表
PC-2(用于置换选择2)
4. DES算法安全性分析
一般来说,密码攻击手段有两种:蛮力攻击(穷尽密钥搜索)和分析攻击。DES算法遭受批评的原因主要有:
密钥空间太小,易受蛮力攻击
S-盒设计准则保密的,有可能已经存在利用S-盒数学属性的分析攻击,但是只有DES设计者知道(详见DES历史)
然而到目前为止,尚未发现能高效破解DES的攻击方式,不过通过蛮力攻击的方式能够比较容易的破解单重DES,因此对大多数程序而言,单重DES已经不再使用,取而代之的是3DES和AES。
部分图片来源于网络,新手小白,如果有错误,请大佬指点。谢谢!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。