-
DES算法大致流程如下:
用公式表示即:
M = IP^-1 ( f { IP(P) } )
其中,M表示密文,IP^-1表示算法结尾的逆置换操作,f表示加密过程中的16次操作组合,IP表示算法初始的置换操作,P表示明文。
假设DES解密算法既是DES加密算法,则其可表示为:
P = IP^-1 ( f { IP(M) } )
将解密算法公式展开如下:
P = IP^-1 ( f { IP ( IP^-1 ( f { IP(P) } ) ) } )
容易得出,进行置换操作IP和逆置换操作IP^-1后,矩阵将保持不变,
因此,解密算法公式可进一步化简如下:
P = IP^-1 ( f { f { IP(P) } } )
- 现在,为了进一步简化,我们需要得出进行两次 f 操作后,解密算法公式右边将会变成什么。
为了方便理解和解释,我们只选取 f 操作中的其中一轮进行说明。
加密算法中,f操作的其中一轮如下:
由图可以得出结论:
Li+1 = Ri Ri+1 = F(Ri , Ki) ⊕ Li
在解密算法中,我们令Ri' = Li+1,Li' = Ri+1,其过程如下:
则:
Li+1' = Ri' = Li+1 = Ri Ri+1' = F(Ri' , Ki) ⊕ Li' = F(Li+1 , Ki) ⊕ Ri+1 = F(Ri , Ki) ⊕F(Ri , Ki) ⊕ Li = Li
所以,可以得出,经过相同的一轮过程之后,密文可以还原回明文。同理,16轮也如此。
所以,经过两次 f 操作后,信息应保持不变,即
P = IP^-1 ( f { f { IP(P) } } ) = IP^-1 ( IP(P) ) = P
所以,上诉假设成立,可得出结论:DES加密算法既是DES解密算法。