問題:證明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盒子進行代替和選擇,不過這個不是證明要點,故而證明到此結束。