第四章作业P.121 Problems 4.7

P.121 Problems 4.7   Show that DES decryption is,in fact ,the inverse of DES encryption.

证明:解密过程规则如下:将密文作为算法的输入,但是逆序使用子密钥Ki。也就是说,第一轮使用子密钥K15,第二轮K14,......,最后一轮使用K0,而算法本身并没有任何变化。

用LEi 和REi 表示加密过程的中间数据,用LDi 和RDi 表示解密过程的中间数据。通过DES算法可知,第 i 轮加密的输出是LEi || REi ,解密的第(16 - i)轮的相应输入是REi || LEi 或 LD16-i || RD16-i 。

对于加密过程的第16轮:

LE16=RE15

RE16 =LE15  XOR  F(RE15 ,K16)

对于解密过程的第1轮:

LD1 =RD0 =LE16 =RE15

RD1=LD0   XOR   F(RD0,K16)=RE16  XOR  F(RE15,K16)

       =[ LE15  XOR  F(RE15 , K16) ]  XOR  F(RE15,K16)

因此,得出LD1=RE15,RD1=LE15。所以,解密过程的第一轮输出为RE15 || LE15,左右互换的结果是加密过程第16轮输入的值。解密过程的最后一轮的输出是RE0 || LE0,左右互换的结果正是原始明文。

一般化形式,对于第 i 轮加密算法:

LEi =REi-1

REi =LEi-1  XOR  F(REi-1 ,Ki)

又可写为:

REi-1 =LEi

LEi-1= REi  XOR  F(REi-1 ,Ki)=REi  XOR  F(LEi ,Ki)

因此,第 i 轮的输入是输出的函数。

因此,DES密码的解密算法与加密算法是相同的,只是子密钥的使用次序相反。此外,初始置换和最终置换是相反的。即,DES解密算法实际上是DES加密算法的逆。



你可能感兴趣的:(第四章作业P.121 Problems 4.7)