問題:證明DES解密過程是加密過程的逆運(yùn)算
證明:
對于DES算法來說,其基本結(jié)構(gòu)和Feistel密碼的結(jié)構(gòu)相同摸航,只不過多了個S盒子闸度。
結(jié)論①:Feistel密碼的解密過程是加密過程的逆過程侣肄。
說明如下:
在DES算法中叉弦,其用到了Feistel密碼的經(jīng)典結(jié)構(gòu)丐一,如下:
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
之后再按上圖進(jìn)行運(yùn)算洋满,
即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輪輸入左右部分互換的值正罢。
結(jié)論:所以對于Feistel密碼來說,其解密過程正是加密過程的逆過程驻民。
故而我們有第二個結(jié)論:
結(jié)論②:對于采用了Feistel密碼為基礎(chǔ)結(jié)構(gòu)的DES密碼來說翻具,其解密過程正是加密過程的逆運(yùn)算。
只不過在DES密碼中回还,在進(jìn)行(XOR)運(yùn)算后會通過S盒子進(jìn)行代替和選擇裆泳,不過這個不是證明要點(diǎn),故而證明到此結(jié)束柠硕。