4.7、證明DES解密算法實(shí)際上是DES加密算法的逆。
答:由于DES算法是在Feistel網(wǎng)絡(luò)結(jié)構(gòu)的輸入輸出階段分別初始置換IP和初始逆置換IP^-1而構(gòu)成的。因此要證DES解密過程是DES加密過程的逆可以先證Feistel網(wǎng)絡(luò)結(jié)構(gòu)中的解密過程是加密過程的逆過程。
證明如下:
加密過程是:將明文P等分成兩半L0和R0,進(jìn)行L輪迭代。然后按下列規(guī)則計(jì)算:LiRi,1<=i<=L,Li=Ri-1,Ri=Li-1 F(Ri-1,Ki)進(jìn)行L輪迭代運(yùn)算后將Li和Ri再交換,輸出密文分組。輪函數(shù)為F。
解密過程是:將密文分組C=RiLi等分成兩半記為L0’和R0’。然后按下列規(guī)則計(jì)算L1’Ri’,1<=i<=L,Li'=Ri-1',Ri=Li-1' F(Ri-1',Ki'),最后輸出Ri’Li’。這里Ki’=Ki-1.只用證明R1’=L0和L1’=R0即可。顯然L0’=R1且R0’=Li,根據(jù)加、解密規(guī)則,有
L11=R01=L1=R1-1,R11=L01 ?異或 F(R01,K11)=R1 異或?F(L1,K1-1)=L1-1
L21=R11=L1-1=R1-2,R21=L11異或 ?F(R11,K21)=R1-1 異或 ?F(L1-1,K1-2)=L1-2
遞歸,有L11-1=R11-2=L2=R1,R11-1=L11-2 ?異或 F(R11-2,K11-1)=R2 ?異或 ?F(L2,K1)=L1
L11=R11-1=L1=R0,R11=L11-1 異或 ? F(R11-1,K1)=R11 異或 ?F(L1,K0)=L0
這就驗(yàn)證了解密過程的正確性。