标签:spl 简单 strong 结构 bit 本质 异或运算 alt 复杂
假设加密过程的输入为分组长2w的明文和一个密钥K(K在运算过程中将分成多个子密钥Ki),将明文分为两部分,左边记为L0,右边记为R0.以下是加密过程图:
第一轮:R0与子密钥k0进行运算,记为F(R0,k0),得到的结果与L0进行异或运算。
最终得到的结果将作为第二轮运算的右半部分记为R1,而R0直接作为第二轮的左半部分记为L1。
第二轮:L1和F(R1,K1)(R1和K1运算的结果)进行异或运算,产生的结果为第三轮的R2,R1直接变为L2
第三轮以后一次类推,n轮迭代之后,左右两边再合并到一起为最后的密文分组
每轮的置换可以由以下函数表示:
Li = Ri-1
Ri = Li-1⊕F(Ri-1,Ki)
与Feistel有关的参数:
1、分组大小。分组越多安全性越高,加密速度越慢,分组密码中普遍使用的分组大小为64bit。
2、密钥大小。密钥越长安全性越高,加密速度越慢,一般使用128bit的密钥或者更长。
3、轮数。轮数越多安全性越高,一般为16轮。
4、子密钥产生算法。该算法越复杂安全性越高。
5、轮函数。轮函数越复杂安全性越高。
本质上与加密过程一样,就是把加密过程反过来。
标签:spl 简单 strong 结构 bit 本质 异或运算 alt 复杂
原文地址:https://www.cnblogs.com/OneFriday/p/11470210.html