第3讲 对称密钥密码体制(1)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

f
R16= L15⊕f(R15,K16) IP-1 L16=R15
K16
密文
(1)IP置换表和IP-1逆置换表

输入的64位数据按IP表置换进行重新组合,并把输出分为L0和R0两部分, 每部分各32位,其IP表置换如表3-1所示
3-2 IP置换表
58 60 62 64 57 59 61 63 50 52 54 56 49 51 53 55 42 44 46 48 41 43 45 47 34 36 38 40 33 35 37 39 26 28 30 32 25 27 29 31 18 20 22 24 17 19 21 23 10 12 14 16 9 11 13 15 2 4 6 8 1 3 5 7
59 58
29 28
27 26
33
1
41
9
49
17
57
25
逆置换正好是初始置的逆运算,例如,第1位经过初始置换 后,处于第40位,而通过逆置换IP-1,又将第40位换回到第1位, 其逆置换IP-1规则表如3-2所示。
初始置换IP和IP-1MBiblioteka 20 M '14IP
IP-1
M '14 M ''20
路收费站等领域被广泛应用,以此来实现关键数据的保密。
DES的生命周期
1975 年,NBS最终采纳了 IBM 的 LUCIFER 方案,公开发表DES。 1977 年正式颁布为数据加密标准(DES - Data Encryption Standard)。
1979 年,美国银行协会批准使用 DES。
轮 数 1 2 3 循环左移 位数 1 1 2 轮 数 5 6 7 循环左移 位数 2 2 2 轮 9 10 11 数 循环左移 位数 1 2 2 轮 数 13 14 15 循环左移 位数 2 2 2
4
2
8
2
12
2
16
1
3-9 PC-2选位表 14 17 11 24 1 5
3
23 16 41 30 44 46
(2) 函数 f的内部流程
Ri-1(32bit) E 48bit Ki(48bit)
S1
S2
S8
32bit P f( Ri-1,ki ) (32bit)
E变换的算法是从Ri-1的32位中选取某些位,构成48位,即E将
32位扩展为48位。变换规则根据E位选择表,如表3-3所示。
表3-4 E位选择表
L0=D58D50…D8,R0=D57D49…D7
3-10 IP-1逆置换表
40 8 48 16 56 24 64 32
39
38
7
6
47
46
15
14
55
54
23
22
63
62
31
30
37 36
35 34
5 4
3 2
45 44
43 42
13 12
11 10
53 52
51 50
21 20
19 18
61 60
分组密码

分组密码算法实际上就是在密钥的控制下,简单而迅速地找 到一个置换,用来对明文分组进行加密变换,一般情况下对 密码算法的要求是:
分组长度m足够大(64~128比特)
密钥空间足够大(密钥长度64~128比特)
密码变换必须足够复杂(包括子密钥产生算法)
分组密码的设计思想

扩散(diffusion)
57 1 10 49 58 2 41 50 59 33 42 51 25 34 43 17 26 35 9 18 27
19
63 7
11
55 62
3
47 54
60
39 46
52
31 38
44
23 30
36
15 22
14
21
6
13
61
5
53
28
45
20
37
12
29
4
第1轮:对C0作左移LS1得到C1,对D0作左移LS1得到D1,对C1D1应用PC2 进行选位,得到K1。其中LS1是左移的位数,如表3-6所示。 第2轮:对C1和D1作左移LS2得到C2和D2,进一步对C2D2应用PC2进行选 位,得到K2。如此继续,分别得到K3,K4,…,K16。 。。。。。。。。。。。。。。。。。。。 表3-2 LS移位表
28
19 7 52 40 49 42

密钥长度:密钥较长意味着安全性较高,但会降低加解密的
速度。一般需要128位密钥,64位密钥通常不够。

迭代轮数: Feistel密码的本质在于单轮不能提供足够的安全
性,多轮可取得很高安全性。迭代轮数的典型值为16。

子密钥产生算法:子密钥越复杂,密码分析攻击越困难。
轮函数:轮函数越复杂,抗攻击的能力就越强。
1 到密文c,即 c IP (L16 R16 ) 。
Li-1 Ri-1
+
Li Ri
f
ki
一轮DES加密过程
明文 L0
IP
R0
f
K1 R1= L0⊕f(R0,K1)
加 密 流 程 图
DES
L1=R0 f L2= R1
K2
R2= L1⊕f(R1,K2)
L15= R14
R15= L14⊕f(R14,K15)
3.2 数据加密标准 DES ( Data Encryption Standard )
DES(Data Encryption Standard)算法于1977年得到美国政 府的正式许可,是一种用56位密钥来加密64位数据的方法, 其密文的长度也为64位。
DES算法在ATM、磁卡及智能卡(IC卡)、加油站、高速公
32
4 8 12 16 20 24 28
1 5
2 6
3 7
4 8
5
9 13 17 21 25 29 1
9 13
17 21 25 29
10 14
18 22 26 30
11 15
19 23 27 31
12 16
20 24 28 32

Ki是由密钥产生的48位比特串,具体的算法是:将E的选位 结果与Ki作异或操作,得到一个48位输出。分成8组,每组6 位,作为8个S盒的输入。
将明文及密钥的影响尽可能迅速地散布到较多个输出的密
文中。产生扩散的最简单方法是通过“置换 (Permutation)”(比如:重新排列字符)。

混淆(confusion)
其目的在于使作用于明文的密钥和密文之间的关系复杂化,
是明文和密文之间、密文和密钥之间的统计相关特性极小
化,从而使统计分析攻击丌能奏效。通常的方法是“代换 (Substitution)”(回忆恺撒密码)。
是1到16,用16轮来 构造。构造过程如 图所示。
LS16 C16
LS16 D16 PC-2 K16(48bit)
子密钥的产生
28
产生子密钥Ki具体描述为:

首先,对于给定的密钥K,应用PC1变换进行选位,选定后
的结果是56位,设其前28位为C0,后28位为D0。PC1选位如
表3-5所示。
表 3-8 PC-1选位表
通常是一个多阶段的乘积变换;
与密钥 Key 相关;
必须是非线性变换; 实现对密码分析的扰乱; 是密码设计安全性的关键。
3. DES的加密过程
第一步:初始置换IP。
对于给定的明文m,通过初始置换IP获得m0 ,并将
m0 分为两部分,
前面32位记为 L0,后面32位记为 R0 ,即 m0 IP(m) L0 R0
流密码不分组密码

流密码每次加密数据流中的一位或一个字节。
分组密码,就是先把明文划分为许多分组,每个明文分组被

当作一个整体来产生一个等长(通常)的密文分组。通常使
用的是64位或128位分组大小。

分组密码的实质,是设计一种算法,能在密钥控制下,把n比 特明文简单而又迅速地置换成唯一n比特密文,并且这种变换 是可逆的(解密)。
1980 年,DES 成为美国标准化协会 (ANSI) 标准。
1984 年,ISO 开始在 DES 基础上制定数据加密的国际标准。
1994年,决定1998年12月之后不再使用DES 。 现已经确定了选用Rijndael算法作为高级加密算法AES。
1. DES的特点
DES算法具有以下特点:
子密钥ki产生流程图
K(64bit) PC-1 C0 D0
假设初始密钥为K,
长度为64位,但是 其中第8,16,24,
LS1
C1 LS2 C2
LS1
D1 PC-2 LS2 D2 PC-2 K2(48bit) K1(48bit)
32,40,48,64作
奇偶校验位,实际 密钥长度为56位。
K下标i的取值范围
10
18 26 34 42 50 58
15
23 31 39 47 55
57
59
60
61
62
63
64
将输入的64位明文的第58位换到第1位,第50位换到第2 位,依此类推,最后一位是原来的第7位。L0和R0则是换位输 出后的两部分,L0是输出的左32位,R0是右32位。比如:置换 前的输入值为D1D2D3…D64,则经过初始置换后的结果为:
11
4
25
(3)DES的密钥Ki计算
DES在各轮中所用的密钥均为由初始密钥(即种子密钥)导 出的48位密钥。 初始密钥为64位,其中第8、16、24、32、40、48、56、64 位均为校验位。 如此设置校验位的目的是使每8个字节所含的字符“1”个数为 奇数,以便能够检测出每个字节中的错误。
第二步:乘积变换( 16轮)。
在每一轮中依据下列方法计算 Li Ri 1 i 16)(16轮中的计算方法相 (
同):Li Ri 1,Ri Li 1 f ( Ri 1 , K i )
其中, i 为第i轮使用的子密钥,各 K i 均为 K 的一个置换选择,所有 K i K
置换过程
1 9 17 25 33 41 49 2 3 11 19 27 35 43 51 4 12 20 28 36 44 52 5 13 21 29 37 45 53 6 14 22 30 38 46 54 7 15 23 31 39 47 55 8 16 24 32 40 48 56
10
18 26 34 42 50 58
构成密钥方案。函数 f ( X 1 , X 2 )中的变量 X 1 为32位字符串, 2 为48位字 X
符串, 函数 f ( X 1 , X 2 )输出的结果为32位字符串。
DES的加密过程
第三步:初始置换 IP 的逆置换 IP 1。
应用初始置换
IP 的逆置换 IP 1对 L16 R16 进行置换,得
(1)DES算法是分组加密算法:以64位为分组。 (2)DES算法是对称算法:加密和解密用同一密钥。 (3)DES算法的有效密钥长度为56位。 (4)换位和置换。 (5)易于实现。
2. DES算法要点
算法设计中采用的基本变换和操作:
置换(P):重新排列输入的比特位置。
交换(SW):将输入的左右两部分的比特进行互换。 循环移位:将输入中的比特进行循环移位,作为输出。 一个复杂变换( fK )

每个S盒输出4位,共32位,S盒的工作原理将在第4步介绍。
S盒的输出作为P变换的输入,P的功能是对输入进行置换,
P换位表如表3-4所示。
3-6 P换位表如表 16 29 7 12 20 28 21 17
1
5 2 32 19
15
18 8 27 13
23
31 24 3 30
26
10 14 9 6
22
网络与信息安全Ⅰ
第3讲 对称密钥密码体制
1
主要内容

分组密码
数据加密标准DES 高级加密标准AES 序列密码 其他对称加密算法




概述

对称密码体制就是在加密和解密是用到的密
钥相同,或者加密密钥和解密密钥之间存在 着确定的转换关系。

对称密码体制又有两种丌同的实现方式,即 分组密码和序列密码(或称流密码)。
Feistel密码结构
加密: Li = Ri-1 Ri = Li-1F(Ri-1,Ki) 解密: Ri-1 = Li Li-1 = RiF(Ri-1,Ki) = RiF(Li,Ki)
Feistel结构依赖参数和特征

分组长度:分组长度越长意味着安全性越高(其他条件不变
),但是会降低加解密的速度。一般64位的分组长度。
57
59
60
61
62
63
64
置换过程
1 9 17 25 33 41 49 2 3 11 19 27 35 43 51 4 12 20 28 36 44 52 5 13 21 29 37 45 53 6 14 22 30 38 46 54 7 8 16 24 32 40 48 56 58 60 62 64 57 59 61 63 50 52 54 56 49 51 53 55 42 44 46 48 41 43 45 47 34 36 38 40 33 35 37 39 26 28 30 32 25 27 29 31 18 20 22 24 17 19 21 23 10 12 14 16 9 11 13 2 4 6 8 1 3 5
相关文档
最新文档