- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
置换选择 1
C0(28 位)
循环左移
D0(28 位)
循环左移
1 2 2 2 2 2 2 1
C1(28 位)
D1(28 位)
(56 位) 置换选择 2
k1
(48 位)
循环左移
循环左移
Ci(28 位)
Di(28 位)
置换选择 2 (56 位)
ki
(48 位)
密钥置换算法的构造准则
设计目标:子密钥的统计独立性和灵活性 实现简单
行=10 坐标为(2,6),然后在S1表中查得对应的数为2,以4位二 进制表示为0010,此即选择函数S1的输出。
数据加密标准
使用选择函数S的例子 10 2 1 0 1 1 0 0 输入6位
S1
0 1 2 3 0 1 2 14 4 13 0 15 7 4 1 14 15 12 8 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 15 11 8 3 10 6 12 5 9 0 7 4 14 2 13 1 10 6 12 11 9 5 3 8 8 13 6 2 11 15 12 9 7 3 10 5 0 2 4 9 1 7 5 11 3 14 10 0 6 13
S-盒的构造准则
S盒的每一行是整数0,…,15的一个置换 没有一个S盒是它输入变量的线性函数
改变S盒的一个输入位至少要引起两位的输出改变
对任何一个S盒和任何一个输入X,S(X)和 S(X001100)至少有两个比特不同(这里X是长度为6的比特串)
对任何一个S盒,对任何一个输入对e,f属于{0,1},
组密码设计和分析中的难题
非线性度、差分均匀性、严格雪崩准则、可逆性、没有陷门
置换p-盒的构造
p-盒的构造准则
P置换的目的是提供雪崩效应 明文或密钥的一点小的变动都引起密文的较大变化
DES中的子密钥的生成
64 位密钥 密钥表的计算逻辑 循环左移: 1 1 9 2 1 10 3 2 11 4 2 12 5 2 13 6 2 14 7 2 15 8 2 16
S-盒1
S-盒5
S-盒2 S-盒3 S-盒4
S-盒6 S-盒7 S-盒8
S-盒的构造
b1b2b3b4b5b6 行:b1b6 112 3 S6 -盒子 3行9列 110011 列:b2b3b4b5 10012 9 值:14=1100
S-盒的构造 DES中其它算法都是线性的,而S-盒运算则是非线性的 S-盒不易于分析,它提供了更好的安全性 所以S-盒是算法的关键所在
速度
不存在简单关系:( 给定两个有某种关系的种子密钥,能预测它们轮子密 钥之间的关系)
种子密钥的所有比特对每个子密钥比特的影响大致相同
从一些子密钥比特获得其他的子密钥比特在计算上是难的 没有弱密钥
DES的 一轮迭代
Li-1(32比特)
Ri-1(32比特)
选择扩展运算E 48比特寄存器 子密钥Ki (48比特) 48比特寄存器 选择压缩运算S 32比特寄存器 置换运算P
Li(32比特)
Ri(32比特)
Li=Ri-1
扩展置换E-盒-32位扩展到48位
扩展
压缩替代S-盒-48位压缩到32位
共8个S盒
S(X)
S(X11ef00)
对任何一个S盒,如果固定一个输入比特,来看一个固定输出比特的值, 这个输出比特为0的输入数目将接近于这个输出比特为1的输入数目
S-盒的构造要求 S-盒是许多密码算法的唯一非线性部件,因此,它的密码强度
决定了整个算法的安全强度
提供了密码算法所必须的混乱作用 如何全面准确地度量S-盒的密码强度和设计有效的S-盒是分
2
4
3
1
它的输出就是F函数的输出。
数据加密标准
使用选择函数S
将以上第j个(1≤j≤6)二进制的块(记为Z j=zj1 zj2 zj3 zj4 zj5 zj6) 输入第j个选择函数Sj。各选择函数Sj的功能是把6位数变换成4位 数,做法是以zj1zj6为行号,zj2 zj3 zj4 zj5为列号,查找Sj,行列交 叉处即是要输出的4位数。 在此以S1为例说明其功能,我们可以看到:在S1中,共有4行数据, 命名为0,1、2、3行;每行有16列,命名为0、1、2、3,......, 14、15列。现设输入为: D=101100 令:列=0110
第3章 分组密码理论
目录
1. 2.
数据加密标准
公开密钥算法
数据加密标准
(Data Encryption Standard,DES)
现代与古典密码学采用的基本思想相同:替换与变 位。 古典:算法简单,长密钥。 现代:算法复杂。
3.1 分组密码概述
P14
分组密码,就是一个明文分组被当作一个整 体来产生一个等长(通常)的密文分组的密 码,通常使用的是128位分组大小。 分组密码的实质是,设计一种算法,能在密 钥控制下,把n比特明文简单而又迅速地置 换成唯一n比特密文,并且这种变换是可逆 的(解密)。
按照上述条件,若K选为(1010000010), 产生的两个子密钥 分别为K1=(1 0 1 0 0 1 0 0),K2=(0 1 0 0 0 0 1 1)
S-DES的密钥生成
10-bit密钥 P10 LS-1 LS-1 P8 LS-2 5 P8 K2 8
5
K1 8 LS-2 5
5
(2)
S-DES的加密运算:
S盒按下述规则运算: 将第1和第4的输入比特做为2- bit数,指示为S盒的一 个行;将第2和第3的输入比特做为S盒的一个列。如此 确定为S盒矩阵的(i,j)数。 例如:(P0,0, P0,3)=(00),并且(P0,1,P0,2)=(1 0) 确定了S0中的第0行2列(0,2)的系数为3,记为 (1 1)输出。 由S0, S1输出4-bit经置换 P4
3.1 分组密码概述(Cont.)
分组密码的设计思想(C.E. Shannon): 扩散(diffusion) 将明文及密钥的影响尽可能迅速地散布到 较多个输出的密文中(将明文冗余度分散 到密文中)。产生扩散的最简单方法是通 过“置换(Permutation)”(比如:重新排 列字符)。 信息论的创始人克劳德· 艾尔伍德· 香农(Claude Elwood Shannon)
上述第一行4位输入进S-盒S0,产生2-位的输 出;第二行的4位输入进S盒S1,产生2-位的 输出。
两个S盒按如下定义:
0 1 2 3 0 1 0 3 2 3 2 1 0 S0 1 2 0 2 1 3 3 3 1 3 2
0 0 0 2 S1 1 2 3 3 2 1 2 3 1 2 3 0 1 3 0 1 0 1 0 3
0 0 1 0
输出4位
DES概述
分组加密算法:明文和密文为64位分组长度 对称算法:加密和解密除密钥编排不同外,使用同一算法 密钥长度:56位,但每个第8位为奇偶校验位,可忽略 密钥可为任意的56位数,但存在弱密钥,容易避开 采用混乱和扩散的组合,每个组合先替代后置换,共16轮 只使用了标准的算术和逻辑运算,易于实现
单钥密码体制
DES加密算法的一般描述
单钥密码体制
3.2数据加密标准(Cont.)
4.2.1 简化的DES Simplified DES方案,简称S-DES方案。它是 一个供教学而非安全的加密算法,它与DES的 特性和结构类似,但参数小。
注:1.* 加密算法涉及五个函数: (1)初始置换IP(initial permutation) (2)复合函数fk1,它是由密钥K确定的,具有置换和代 换的运算。 (3)置换函数SW (4)复合函数fk2 (5)初始置换IP的逆置换IP-1
对S-DES的深入描述
(1) S-DES的密钥生成:
设10bit的密钥为( k1,k2,…,k10 ) 置换P10是这样定义的 P10(k1,k2,…,k10)=(k3,k5,k2,k7,k4,k10,k1,k9,k8,k6) LS-1为循环左移1位, LS-2为循环左移2位
P8= (k1,k2,…,k10)=(k6,k3,k7,k4,k8,k5,k10,k9 )
加密 8bit明文 IP fk
K1
10bit密钥 P10 移位 P8
解密 8bit明文 IP-1 fk
K1
S-DES
SW fk IP-1 8bit密文
移位
SW fk IP 8bit密文
方 案 示 意 图
P8
K2 K2
2*. 加密算法的数学表示: IP-1*fk2*SW*fk1*IP 也可写为 密文=IP-1(fk2(SW(fk1(IP(明文))))) 其中 K1=P8(移位(P10(密钥K))) K2=P8(移位(移位(P10(密钥K)))) 解密算法的数学表示: 明文=IP-1(fk1(SW(fk2(IP(密文)))))
分组密码的设计思想(Cont.)
混淆(confusion) 其目的在于使作用于明文的密钥和密文之 间的关系复杂化,是明文和密文之间、密 文和密钥之间的统计相关特性极小化,从 而使统计分析攻击不能奏效。通常的方法 是“代换(Substitution)”(回忆恺撒密 码)。
3.1 分组密码概述(Cont.)
初始置换用IP函数: IP= 1 2 3 4 5 6 7 8 26314857 末端算法的置换为IP的逆置换: IP-1= 1 2 3 4 5 6 7 8 41357286 易见IP-1(IP(X))=X
S-DES加密图
8-bit 明文
IP
E/P R 4 8
fk
L 4 +
F
S0
4
4
S1