第三章分组密码:3.1分组密码概述 3.1.4分组密码设计中的常用计算组件 9解决办法 实际中分组n往往较大, 因此常将分组分成较小的段 如可选=rno,其中r和n都是正整数,将设计n个变量 的代换变为设计个较小的子代换,而每个子代换只有 n,个输入变量 一般o都不太大,称每个子代换为代换盒,简称为S盒 例如DES中将输入为48比特、输出为32比特的代换用8 个S盒来实现,每个S盒的输入端数仅为6比特,输出端 数仅为4比特。 X5X4 X3X2X1X0 S盒 历些毛子代技大学 y3 y2 y1y0 22/
3.1.4 分组密码设计中的常用计算组件 解决办法 ⚫ 实际中分组n往往较大,因此常将分组n分成较小的段 ⚫ 如可选n=r·n0,其中r和n0都是正整数,将设计n个变量 的代换变为设计r个较小的子代换,而每个子代换只有 n0个输入变量 ⚫ 一般n0都不太大,称每个子代换为代换盒,简称为S盒 ⚫ 例如DES中将输入为48比特、输出为32比特的代换用8 个S盒来实现,每个S盒的输入端数仅为6比特,输出端 数仅为4比特。 22/ 第三章 分组密码:3.1 分组密码概述 S盒 x5 x4 x3 x2 x1 x0 y3 y2 y1 y0
第三章分组密码:3.1分组密码概述 3.1.4分组密码设计中的常用计算组件 9代换置换网络SPN SPN是代换-置换乘积密码的现代形式,集掩蔽、混淆、扩散为一体 的综合性部件,一般分组密码的单轮变换都是SPN Shannon在1949的文章中介绍了SPN的思想,把代换和置换这两 种基本运算组合在一起,将一些S-boxes由P-boxes连接,这种 变换叫做混合变换(mixing transformations) SP的网络结构非常清晰,例如Safer+、Serpent、IDEA、AES等 S一般被称为混淆层,主要起混淆作用 P一般被称为扩散层,主要起扩散作用。 在明确S和P的某些密码指标后,设计者能估计SP型密码抵抗差分 密码分析和线性密码分析的能力。 SPN可以得到快速的扩散,容易求逆,但是SP密码的加/解密通常 不相似。通过精心设计可以使用基本的相同编码或硬件用于加密和 解密 历粤毛子代枝大 23/
3.1.4 分组密码设计中的常用计算组件 代换置换网络 SPN ⚫ SPN是代换-置换乘积密码的现代形式,集掩蔽、混淆、扩散为一体 的综合性部件,一般分组密码的单轮变换都是SPN ⚫ Shannon在1949 的文章中介绍了SPN的思想,把代换和置换这两 种基本运算组合在一起,将一些S-boxes 由 P-boxes 连接,这种 变换叫做混合变换(mixing transformations) ⚫ SP的网络结构非常清晰,例如Safer+、Serpent、IDEA、AES等 ⚫ S一般被称为混淆层,主要起混淆作用 ⚫ P一般被称为扩散层,主要起扩散作用。 ⚫ 在明确S和P的某些密码指标后,设计者能估计SP型密码抵抗差分 密码分析和线性密码分析的能力。 ⚫ SPN可以得到快速的扩散,容易求逆,但是SP密码的加/解密通常 不相似。通过精心设计可以使用基本的相同编码或硬件用于加密和 解密 23/ 第三章 分组密码:3.1 分组密码概述
第三章分组密码:3.1分组密码概述 3.1.5 Feistel密码结构 9密码结构是指加密算法的组成结构,典型的有如下几种: 91.乘积密码与多轮迭代结构 乘积密码指顺序地执行两个或多个基本密码系统,使得最后结果的 密码强度高于每个基本密码系统产生结果 ·乘积密码的特例是迭代密码,采用多个相同的基本密码系统顺次执 行(如Feistel结构) 若以一个简单函数f,进行多次迭代,就称其为迭代密码。 每次迭代称作一轮(Roud)。相应函数f称作轮函数。 每一轮输出都是前一轮输出的函数,即y(0=几y位1),k()川,其中k是 第轮迭代用的子密钥,由秘密密钥k通过密钥生成算法产生。 92.其他密码结构(例如Frog和HPC)。 ·采用非正规结构,安全性不好 24/
3.1.5 Feistel 密码结构 密码结构是指加密算法的组成结构,典型的有如下几种: 1. 乘积密码与多轮迭代结构 ⚫ 乘积密码指顺序地执行两个或多个基本密码系统,使得最后结果的 密码强度高于每个基本密码系统产生结果 ⚫ 乘积密码的特例是迭代密码,采用多个相同的基本密码系统顺次执 行(如Feistel结构) ⚫ 若以一个简单函数f,进行多次迭代,就称其为迭代密码。 ⚫ 每次迭代称作一轮(Round)。相应函数f称作轮函数。 ⚫ 每一轮输出都是前一轮输出的函数,即y(i)=f[y(i-1), k(i)],其中k(i)是 第i轮迭代用的子密钥,由秘密密钥k通过密钥生成算法产生。 2. 其他密码结构(例如Frog和HPC)。 ⚫ 采用非正规结构,安全性不好 24/ 第三章 分组密码:3.1 分组密码概述
第三章分组密码:3.1分组密码概述 3.1.5 Feistel密码结构 s3.Feistel密码结构(一种特殊的SPN结构) 早期,很多成功的分组密码的结构从本质上说都是基于一个称为 Feistel网络的结构,例如DES、CAST-256、DEAL、DFC、E2等 ● 加解密相似是Feistel型密码的一个实现优点,但它在密码的扩散似 乎有些慢,例如需要两轮才能改变输入的每一个比特。不过在实用 中似乎并不会形成较大的影响,只要轮数足够多。 Feistel:提出利用乘积密码可获得简单代换密码 多轮迭代 ●每一轮变换实际上是一种SPN Feistel:还提出了实现代换和置换的方法。 。其思想实际上是Shannon提出的利用乘积密码实现混淆和扩散思想 的具体应用 历粤毛子代牧大学 25/
3.1.5 Feistel 密码结构 3. Feistel密码结构(一种特殊的SPN结构) ⚫ 早期,很多成功的分组密码的结构从本质上说都是基于一个称为 Feistel网络的结构,例如DES、CAST-256、DEAL、DFC、E2等 ⚫ 加解密相似是Feistel型密码的一个实现优点,但它在密码的扩散似 乎有些慢,例如需要两轮才能改变输入的每一个比特。不过在实用 中似乎并不会形成较大的影响,只要轮数足够多。 Feistel提出利用乘积密码可获得简单代换密码 ⚫ 多轮迭代 ⚫ 每一轮变换实际上是一种SPN Feistel还提出了实现代换和置换的方法。 ⚫ 其思想实际上是Shannon提出的利用乘积密码实现混淆和扩散思想 的具体应用 25/ 第三章 分组密码:3.1 分组密码概述
第三章分组密码:3.1分组密码概述 3.1.5 Feistel密码结构 明文(2 w bits) 1.Feistel加密结构 Low比特 w比特Ro K 第1轮 Horst Feistel在70年代初设计 了这样的结构,我们现在叫做 R Feistel cipher 第轮 K 每组明文分成左右两半L和Ro 其第轮迭代的输入为前一轮输 出的函数: 第n轮 Kn 0L=R-1 0R;=Li-1⊕FR;-1,K) Rn 。K是第轮用的子密钥,各 轮不同,由密钥产生 Ln+i. Rn+i ●最后一轮完成后再左右交换 密文(2 w bits) Feistel网络示意图 历些毛子代枝大学 26/
3.1.5 Feistel 密码结构 26 / 第三章 分组密码:3.1 分组密码概述 1.Feistel 加密结构 ⚫ Horst Feistel在70年代初设计 了这样的结构,我们现在叫做 Feistel cipher ⚫ 每组明文分成左右两半L 0 和 R 0 ⚫ 其第 i轮迭代的输入为前一轮输 出的函数: ⚫ Li=Ri- 1 ⚫ R i = L i - 1 F(R i - 1 , Ki) ⚫ Ki是第i 轮用的子密钥,各 轮不同,由密钥 K产生 ⚫ 最后一轮完成后再左右交换 明 文 ( 2 w b i t s ) 第 1 轮 F L 0 w 比 特 w 比 特 R 0 L 1 R 1 ... ... K 1 第 i 轮 F L i R i ... ... Ki 第 n 轮 F L n R n Kn L n + 1 R n + 1 密 文 ( 2 w b i t s ) F e i s t e l 网 络 示 意 图