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加密算法的逆。