证明Fesitel 结构的正确性

来源:互联网 发布:淘宝卖家进入 编辑:程序博客网 时间:2024/06/05 03:50

在加密算法中,Fesitel 结构应用在很多领域中,实现对信息的加密,那么如何证明Fesitel 结构的正确性成为一个问题,接下来本文将证明Fesitel 结构的正确性。

  1. 推导Feistel分组加密算法解密结果的正确性。

        加密过程是:明文m = LE0||RE0,进行n轮迭代。

    按下列规则计算LEn||REn1in,轮函数为F

    LEi = REi-1

    REi = LEi-1F(REi-1,Ki)

    进行n轮迭代运算后,得LEnREn,输出密文c = REn||LEn

    解密过程与加密过程采用相同的算法:密文分组c = REn||LEn = LD0||RD0

    按下述规则计算LDn||RDn1in,轮函数为F

    LDi = RDi-1

    RDi = LDi-1F(RDi-1,Kn-i+1)

    进行n轮迭代运算后,得LDnRDn,输出明文m = RDn||LDn

    只要证明RDn =LE0LDn =RE0即可。显然,LD0= REnRD0 = LEn,根据加、解密算法,有

    LD1 = RD0 = LEn = REn-1, RD1 =LD0F(RD0,Kn) = REnF(LEn,Kn) = LEn-1

    LD2 = RD1 = LEn-1 = REn-2,RD2 = LD1F(RE1,Kn-1) = REn-1F(LEn-1,Kn-1) = LEn-2

    以此推导下去,有:

    LDn-1 = RDn-2 = LE2 = RE1RDn-1 = LDn-2F(RDn-2,K2) = RE2F(LE2,K2) = LE1

    LDn= RDn-1 = LE1 = RE0RDn = LDn-1F(RDn-1,K1)  = RE1F(LE1,K1) = LE0

    所以解密算法是正确的。

  2. Fesitel 结构加密算法,加密的轮数,明文的分组长度和密钥长度等等,这些内容决定了加密算法的安全性和效率,一般来说在考虑加密算法的的安全性时,效率会相对没那么的重要。

  3. 在证明Fesitel 时候,应该注意到对于异或运算而言,我们在得到加密的密文后,将密文和密钥(逆顺序使用)进行异或运算即可得到每一轮迭代的REi,LEi足,n轮迭代后即可得到最初的明文LE0||RE0=M.

0 0
原创粉丝点击