深入了解Feistel网络及其相关加密算法
1. Feistel函数概述
Feistel函数是许多分组密码的核心,也被称为Feistel网络或Feistel密码,以德国出生的物理学家和密码学家Horst Feistel命名。Horst Feistel不仅对DES有重要贡献,还发明了Lucifer密码(DES的前身),并曾为美国空军从事敌我识别(IFF)设备的工作。他拥有麻省理工学院的学士学位和哈佛大学的硕士学位,两个学位均为物理学。
1.1 Feistel函数的工作流程
Feistel函数的工作过程并不复杂,具体步骤如下:
1. 数据分割 :将明文数据块分割成两部分,传统上称为L0和R0。明文块的具体大小因算法而异,常见的有64位和128位。例如,使用64位块时,L0和R0各为32位,数字0表示这是初始轮。
2. 轮函数应用 :对其中一半数据应用轮函数F。轮函数是Feistel密码每次迭代执行的函数,其具体细节因实现而异,通常是相对简单的函数,以提高算法速度。在轮函数的某个阶段,会将轮密钥与输入的文本块进行异或(XOR)操作,这通常是轮函数的第一步。
3. 异或与交换 :将轮函数F的输出与另一半数据进行异或操作,然后交换两部分数据的位置。例如,将L0通过轮函数F,结果与R0异或,然后L0移到右侧,R0移到左侧。
1.2 Feistel函数的安全性与应用
这种基本结构为加密算法提供了强大的基础,两部分数据的交换保证了一定的置换操作。Feistel函数是许多算法的基础,包括DES、CAST -
超级会员免费看
订阅专栏 解锁全文
41

被折叠的 条评论
为什么被折叠?



