证明DES解密是加密的逆。

2017-10-10  本文已影响0人  33cfda5d4c25

DES 算法利用一个56+8奇偶校验位(第8, 16, 24, 32, 40, 48, 56, 64位)=64位的密钥对以64位为单位的块数据进行加解密。它是一个迭代的分组密码,利用了使用 Feistel 结构。

下图为Feistel结构。

其中Plaintext(2w bits)是2w长度的明文分组和密钥K,其被分为等长的两部分L0和R0。明文组会经过轮函数F和密钥的N轮迭代后合并成密文组。第i轮迭代的两部分数据是由上一轮数据迭代后的结果,而密钥Ki是Ki-1经过不同的密钥生成算法得出的。

第i轮加密算法用公式表示为(E代表加密过程):(1)、Li(E)=Ri-1(E)  (2)、Ri(E)=Li-1(E)⊕F(Ri-1(E),Ki)。但最后一轮迭代后,有一个附加的左右置换过程。

而DES是迭代16轮,明文经过加密后得到该密文为R(E)-L(E)。

解密过程:(D为解密过程)

第一轮:                                                                                                                          

  输入为:L0(D)=R16(E),R0(D)=L16(E);将上述的公式的加密过程改为解密过程。而把密钥的顺序倒序使用。可得:(3)、Li(D)=Ri-1(D)  (4)、Ri(D)=Li-1(D)⊕F(Ri-1(D),K17-i)。                                       

输出为:                                                                                                                                        

   L1(D)=R0(D)且R0(D)=L16(E)又因为有加密算法公式可得L16(E)=R15(E)所以L1(D)=R0(D)=L16(E)=R15(E)  即是  L1(D)= R15(E) 。                                                                                                               

     R1(D)=L0(D)⊕F(R0(D),K16)因为上式可知L0(D)=R16(E)且R0(D)=R15(E)所以R1(D)=R16(E)⊕F(R15(E),K16)又因为有加密算法公式可得R16(E)=L15(E)⊕F(R15(E),K16)所以R1(D)=L15(E)⊕F(R15(E),K16)⊕F(R15(E),K16)=L15(E) 所以可以得出R1(D)=L15(E)。

以下剩下的15轮迭代依次类推。可以得出的结论是:

Li(D)=R16-i(E)

Ri(D)=L16-i(E)

则第16轮的迭代结果为L16(D)-R16(D)=R0(E)-L0(E)。                   

 最后还有一次左右置换过程。即得到L0(E)-R0(E)(为加密前的明文组)。

综上所述:可证得DES加密和解密的过程相同,密钥的使用顺序相反,即DES的解密是加密的逆。

上一篇下一篇

猜你喜欢

热点阅读