|
DES算法第六步
把L(i)与X(i)按位相加,形成R(i+1),且令R(i)为L(i+1),即得到经第i+1次迭代加密后的输出L(i+1)R(i+1),其中
L(i+1)=
R(i)
R(i+1)=
L(i)⊕f(R(i),K(i+1))
(2.1)
(i=0,1,2,…,15)
我们可以看出,DES密码体制的每一次迭代都用替代法和换位法和换位法对上一次迭代的输出进行加密变换。用硬件实现DES算法时,实际上用替代盒实现替代函数Sj(1≤j≤8),用换位盒实现换位函数P。为了使最后输出的密码文与原始输入的明码文没有明显的函数关系,DES算法采用16次迭代。在前15次迭代中,式(2.1)中的L(i)表示左32位,R(i)表示右32位。对最后一次迭代,L(16)表示右32位,R(16)表示左32位,即在最后一次迭代时不再左右交换,以保证加密和解密的对称性。
DES算法第七步
对R(16)L(16)作逆初始换位IP-1,得到密码文。
逆初始换位表IP-1
|
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 |
52 |
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 |
由式(2.1)知
R(i)=
L(i+1)
L(i)=
R(i+1)⊕f (L(i),K(i+1))
(i=15,14,…,0)
因此解密算法与加密算法相同,仅密钥的使用顺序相反而已。
|