P.121 Problems 4.7?? Show that DES decryption is,in fact ,the inverse of DES encryption.
證明:解密過(guò)程規(guī)則如下:將密文作為算法的輸入,但是逆序使用子密鑰Ki。也就是說(shuō),第一輪使用子密鑰K15,第二輪K14,......,最后一輪使用K0,而算法本身并沒有任何變化。
用LEi 和REi 表示加密過(guò)程的中間數(shù)據(jù),用LDi 和RDi 表示解密過(guò)程的中間數(shù)據(jù)。通過(guò)DES算法可知,第 i 輪加密的輸出是LEi || REi ,解密的第(16 - i)輪的相應(yīng)輸入是REi || LEi 或 LD16-i || RD16-i 。
對(duì)于加密過(guò)程的第16輪:
LE16=RE15
RE16 =LE15? XOR? F(RE15 ,K16)
對(duì)于解密過(guò)程的第1輪:
LD1 =RD0 =LE16 =RE15
RD1=LD0?? XOR ? F(RD0,K16)=RE16? XOR? F(RE15,K16)
?????? =[ LE15? XOR? F(RE15 , K16) ]? XOR? F(RE15,K16)
因此,得出LD1=RE15,RD1=LE15。所以,解密過(guò)程的第一輪輸出為RE15 || LE15,左右互換的結(jié)果是加密過(guò)程第16輪輸入的值。解密過(guò)程的最后一輪的輸出是RE0 || LE0,左右互換的結(jié)果正是原始明文。
一般化形式,對(duì)于第 i 輪加密算法:
LEi =REi-1
REi =LEi-1? XOR? F(REi-1 ,Ki)
又可寫為:
REi-1 =LEi
LEi-1= REi? XOR? F(REi-1 ,Ki)=REi? XOR? F(LEi ,Ki)
因此,第 i 輪的輸入是輸出的函數(shù)。
因此,DES密碼的解密算法與加密算法是相同的,只是子密鑰的使用次序相反。此外,初始置換和最終置換是相反的。即,DES解密算法實(shí)際上是DES加密算法的逆。