1.DES算法
DES(Data Encryption Standard),是IBM在上世纪70年代开发的单密钥对称加解密算法。该算法用56位密钥+8位奇偶校验位=64位的密钥对以64位为单位的数据块进行16轮加解密处理。DES的安全性不依懒于算法的保密,安全性仅以加密密钥的保密为基础。
1.1子密钥生成过程
用户输入的密钥被转化成64比特的二进制,然后按照密钥置换函数PC-1(8X7)压缩置换成56位,输出前28位为C0输出后28位为D0。然后将C0和D0进行16轮的循环左移及压缩置换PC-2(8X6),生成16个48位的字密钥。
Ø PC-1(8X7)压缩置换
假设密钥K(64位)=133457799BBCDFF1,红色部分为奇偶校验位。
K(64位)=00010011 00110100 01010111 01111001
10011011 10111100 11011111 11110001
表1密钥置换函数PC-1(8X7)
PC-1 |
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 |
23 |
15 |
|
7 |
62 |
54 |
46 |
38 |
30 |
22 |
|
14 |
6 |
61 |
53 |
45 |
37 |
29 |
|
21 |
13 |
5 |
28 |
20 |
12 |
4 |
对K使用PC-1(8X7)压缩置换,去掉8个校验位,从而得到K'。
K