证明Feistel解密过程是正确的

1、请结合教材关于Feistel密码结构图,证明图中的解密过程是正确的。

答:Feistel解密算法的规则是:将密文作为算法的输入,但是逆序使用子密钥Ki。下面证明解密过程的正确性

证明:首先证明解密过程第一轮的输入等于加密过程第16轮的输出左右部分互换的值。

      首先,对于加密过程有:

                         LE16=RE15

                         RE16=LE15+FRE15K16

      对于解密则有:

                         LD1=RD0=LE16=RE15

                         RD1=LD0+FRD0K16

                                =RE16+ FRE15K16

                                =LE15+FRE15K16)】+ FRE15K16

      XOR运算有以下性质:

                        A+B+C=A+B+C】

                          D+D=0

                          E+0=E

因此我们有LD1=RE15RD1=LE15。所以解密过程的第一轮输出为LE15||RE15,正是加密过程第16轮输入左右部分互换的值,对于其他各轮亦是如此。我们把他表示成一般形式。对于第i轮加密算法:

                         LEi=REi-1

                        REi=LEi-1+FREi-1Ki

       又可写为:

                       REi-1=LEi

                       LEi-1=REi+FREi-1Ki=REi+FLEiKi

       因此我们已经描述了第i轮的输入是输出的函数。

  最后,我们注意到解密过程最后一轮的输出是RE0||LE0,左右互换的结果正是原始明文,说明Feistel密码的解密过程是正确的。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值