17、对称加密中的Feistel结构及主流算法解析

对称加密中的Feistel结构及主流算法解析

1. Feistel函数概述

Feistel函数是众多分组密码的核心,也被称为Feistel网络或Feistel密码,以其发明者、德裔物理学家和密码学家Horst Feistel命名。Horst Feistel不仅对DES算法有重要贡献,还发明了Lucifer密码(DES的前身),并且曾在美国空军从事敌我识别(IFF)设备的工作。他拥有麻省理工学院的学士学位和哈佛大学的硕士学位,两个学位均为物理学专业。

2. Feistel函数的工作原理
  • 数据分割 :将明文数据块分割为两部分,传统上称为L0和R0。不同算法的明文块大小不同,常见的有64位和128位。例如,使用64位块时,L0和R0各为32位,数字0表示这是初始轮。
  • 轮函数应用 :对其中一半数据应用轮函数F。轮函数是Feistel密码每次迭代执行的函数,其具体细节因实现而异,通常是相对简单的函数,以提高算法速度。在轮函数的某个阶段,会将轮密钥与输入到轮函数的文本块进行异或(XOR)操作,这通常是轮函数的第一步。
  • 异或与换位 :将轮函数F的输出与另一半数据进行异或操作,然后交换两部分的位置。例如,将L0通过轮函数F,结果与R0异或,然后L0移到右侧,R0移到左侧。

以下是Feistel函数一轮操作的mermaid流程图:

graph TD;
    A[明文块] --> B[分割为L0和R
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值