问题:证明DES解密过程是加密过程的逆运算
证明:
对于DES算法来说,其基本结构和Feistel密码的结构相同,只不过多了个S盒子。
结论①:Feistel密码的解密过程是加密过程的逆过程。
说明如下:
在DES算法中,其用到了Feistel密码的经典结构,如下:
Li=Ri-1
Ri=Li-I(XOR)F(Ri-1,Ki)
下面是具体的图说明:
在Feistel加密的最后一轮,也就是i=16时,输入为LE15||RE15,而输出为:
LE16=RE15
RE16=LE15(XOR)F(RE15,K16)
而后交换R和L作为密文输出
即:LE17=RE16,RE17=LE16
而在Feistel解密的第一轮,即i=1时,先将输出的密文交换回来作为输入,即LD0=LE17=RE16,RD0=RE17=LE16
之后再按上图进行运算,
即LD1=RD0=LE16=RE15;
RD1=LD0 (XOR) F(RD0,K16)=RE16 (XOR) F(RD0,K16)=LE15 (XOR) F(RE15,K16) (XOR) F(RD0,K16)=LE15,所以解密的第一轮输出为RE15||LE15,这正是加密过程第16轮输入左右部分互换的值。
结论:所以对于Feistel密码来说,其解密过程正是加密过程的逆过程。
故而我们有第二个结论:
结论②:对于采用了Feistel密码为基础结构的DES密码来说,其解密过程正是加密过程的逆运算。
只不过在DES密码中,在进行(XOR)运算后会通过S盒子进行代替和选择,不过这个不是证明要点,故而证明到此结束。