首先要知道DES算法其实是一种Feistel加密算法,只不过DES算法多了两步----初始置换IP和最终置换IP-1。而Feistel算法的解密过程就是其加密过程的逆运算,具体地说,Feistel的加密算法和解密算法一样,只不过加密和解密时用的子密钥的顺序刚好相反,即(假设16轮轮转换)加密时子密钥顺序为K1,K2,...,K16,解密时子密钥顺序为K16,K15,...,K1。如下图所示:
(设16轮轮换+最后一轮交换)
只要证明加密过程第i轮的输出为LEi || REi和解密过程第(16 - i)轮的输出RD16 - i || LD16 - i相等就可证明Feistel算法的加/解密过程互逆。又LEi = REi - 1, REi = LEi - 1 ⊕ F(REi - 1, Ki),LDi
网友评论