第十九讲 Feistel密码结构

1 Feistel密码设计思想

乘积密码指顺序地执行两个或多个基本密码系统,使得最后结果的密码强度高于每个基本密码系统产生的结果.

Feistel还提出了实现代换和置换的方法。其思想实际上是Shannon提出的利用乘积密码实现混淆和扩散思想的具体应用。

Feistel密码实现的参数

Feistel网络的实现与以下参数和特性有关:

① 分组大小: 分组越大则安全性越高,但加密速度就越慢。

② 密钥大小:密钥越长则安全性越高,但加密速度就越慢。

③ 轮数:单轮结构远不足以保证安全性,但多轮结构可提供足够的安全性。 典型地,轮数取为16。

④ 子密钥产生算法:该算法的复杂性越大,则密码分析的困难性就越大。

⑤ 轮函数:轮函数的复杂性越大,密码分析的困难性也越大。

设计Feistel密码的两个要求

在设计Feistel网络时,还有以下两个方面需要考虑:

① 快速的软件实现:在很多情况中,算法是被镶嵌在应用程序中,因而无法用硬件实现。此时算法的执行速度是考虑的关键。

② 算法容易分析:如果算法能被无疑义地解释清楚,就可容易地分析算法抵抗攻击的能力,有助于设计高强度的算法。

2 Feistel密码加解密结构

Feistel加密结构

输入是分组长为2w的明文和一个密钥K。将每组明文分成左右两半L_0R_0,在进行完n轮迭代后,左右两半再合并到一起以产生密文分组。第 i 轮迭代的输入为前一轮输出的函数:

其中K_i是第i轮用的子密钥,由加密密钥K得到。一般地,各轮子密钥彼此不同而且与K也不同。

Feistel解密结构

Feistel解密过程本质上和加密过程是一样的,算法使用密文作为输入

但使用子密钥K_i的次序与加密过程相反,即第1轮使用K_n,第2轮使用K_{n-1},……,最后一轮使用K_1。这一特性保证了解密和加密可采用同一算法。

Feistel加解密过程

Feistel密码解密的正确性

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值