DES加密可粗略分为初始置换、16轮F函数作用、逆初始置换三步。其中由矩阵的性质PAA^(-1)=P可以说明初始置换和逆初始置换的共同作用并不会影响结论的正确性。所以只需证明其中16轮的函数作用的解密过程是加密过程的逆过程即可。
在加密过程的最后一轮迭代后,密文输出会将左右部分交换,所以解密过程的输入应将第16轮迭代后左右部分交换。即解密过程输入左半部分LD0=RE16,右半部分RD0=LE16。
其中加密过程有:
LE(i+1)=RE(i) //括号内为下标
RE(i+1)=F(RE(i),K(i+1)) XOR LE(i) //除F函数括号为参数,其他括号均为下标,XOR为异或。
将LD0和RD0代入上式,有:
LD1=RD0=LE16=RE15
RD1=F(RD0,K16) XOR LD0 = F(RE15,K16) XOR RE16 = F(RE15,K16) XOR [F(RE15,K16) XOR LE15]=LE15
由上述可得出解密过程经过第一轮迭代后输出的结果左半部分LD1=RE15,右半部分RD1=LE15,正好是第15轮输出左右部分交换的值。同理可以对解密过程继续进行迭代,得到最后一轮输出的结果:左半部分LD16=RE0,RD16=LE0,在经过32位的左右互换即可得到明文LE0||RE0。
从而证明了DES解密是加密的逆过程。
网友评论