证明:
DES加密先经过初始置换IP重新排列,然后进行16轮加密,每轮都有置换和替代。最后一轮输出明文和密钥的函数,其左半部分和右半部分互换产生预输出。最后预输出再与初始置换IP互逆的置换IP^(-1)作用产生密文。除了初始和末尾的置换,DES结构与Feistel密码结构完全相同。
因为DES结构与Feistel密码结构相同
所以要证明DES的解密算法实际上是DES加密算法的逆,只需证明对应轮次的加密和解密的结果相等
DES加密每轮都有,且设第i轮:
LEi=REi-1
REi=LEi-1⊕F(REi-1,Ki)
又可写为:
REi=LEi-1
LEi=REi-1⊕F(REi-1,Ki)=REi⊕F(LEi,Ki)
对于解密则有:
LD1=RD0=LE16=RE15
RD1=LD0⊕F(RD0,K16)=RE16⊕F(RE0,K16)=(LE15⊕F(RE15,K16)⊕F(RE15,K16)
所以
D1=RE15
RD1=LE15
所以解密的第一轮输出LE15、RE15和加密第16轮输入相等
其他轮同理
所以DES解密算法是DES加密算法的逆