当前位置:
文档之家› 《密码学分组密码》PPT课件
《密码学分组密码》PPT课件
.
8
Feistel结构定义
•加密: Li = Ri-1; Ri = Li-1F(Ri-1,Ki) •解密: Ri-1 = Li
Li-1 = RiF(Ri-1,Ki)
= RiF(Li,Ki.)
9
Feistel结构图
.
10
数据加密标准
DES描述 二重DES 两个密钥的三重DES 三个密钥的三重DES
k57= k49= k41= ……= k9= k1=0 或1
k63= k55= k47= ……= k15= k7=0 或1
• 举例:共有4种,如:0101010.101010101。
33
(2) 半弱密钥:
定义:当存在子密钥K和K’,使得: DESk ( m ) = DESk’ -1 ( m ) 或 DESk ( DESk’ ( m ) ) = m 则K和K’成对构成半弱密钥。
C 1( 28 位 )
D 1( 28 位 )
8 2 16 1
( 56 位 ) 置 换 选 择 2
k1
(48 位 )
循环左移
循环左移
C i( 2 8 位 )
D i( 2 8 位 )
置 换 选 择 2 ki
( 56 位 )
( 48 位 )
.
29
置换选择1和置换选择2
.
30
DES解密
和Feistel密码一样,DES的解密和加密使 用同一算法,只是子密钥的使用顺序相 反。
.
32
关于DES的若干问题:
1. DES的坏密钥问题:
(1)弱密钥:
定义:当密钥K所产生的子密钥满足:K1 = K2 = ……= K16 则有:DESk ( m ) = DESk -1 ( m ) , 或:DESk ( DESk ( m ) ) = m 这样的密钥K称为弱密钥。
产生条件:当密钥K满足以下条件时产生弱密钥,
的元素:Si ( b1 b6, b2 b3 b4 b5 ) 便是 Si
盒的输出。
Si
b2 b3 b4 b5
Si
b1 b6
二进制输出
.
25
选择压缩函数Si的功能:
b1 b6 10
输入到选择函数S1
1 0 1 10 0 6
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 3 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
.
20
L i-1(32比特) Li
第 i 次迭代
R i-1(32比特)
选择扩展运算E
48比特寄存器
+
48比特寄存器 选择压缩运算S
32比特寄存器
置换运算P
+
. R i-1(32比特)
Ki
21
( Ri-1,Ki )的功能:Ri-1
1 32比特 1 48比特
32
选择扩展运算
E
48
+
Ki ( 48比特 )
子密钥是独立产生的,可以独立存储。
.
31
DES中的M、K、C
明文 m 和密钥 K 的变化对密文的影响: DES的加密结果,每一比特都是明文m
和密钥K的每一比特的复杂函数,即明文m 和密钥k每改变一个比特都将对密文产生剧 烈影响。(明文m和密钥k任意改变一比特, 其结果大致有将近一半的位产生了变化。)
32 1 2 3 4 5 4 567 8 9 8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 23 24 25 26 27 28 25 28 29 30 31 32 1
E的作用:
将32比特的输入膨胀为48比特。
.
24
40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31 38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29 36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27 34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25
(1) 理论攻击法:
• 差分分析法和线性逼近法 (1990年提出):前 提条件太强:需要已知 243 = 4.398×1012 对 明文—密文对。
• 可制造专用装置,用硬件来实现对所有密钥
.
2
.
3
为了保证一个分组密码算法的有效性——安全、易于实 施。分组密码算法应满足以下要求:
1. 分组n足够大,使得明文空间足够大,防止明文穷举攻 击法奏效。
2. 密钥量足够大,尽可能消除弱密钥,使得所有密钥都一 样好,防止对密钥的穷举攻击成功。
3. 由密钥确定的算法要足够的复杂,充分实现明文与密钥 的扩散和混乱,使得算法能抵抗各种攻击。
.
6
2. 扩散和混淆
扩散和混淆是Shannon提出的设计密码系统的两个基本的 方法,目的是抵抗敌手对密码系统的统计分析。
扩散:就是将明文的统计特性散布到密文中,实现的方法是 使明文的每一位影响密文的多位,等价于说密文的每一位 均受明文中的多位影响。目的是使明文和密文的统计关系 变得尽可能的复杂,使敌手无法得到明文(密文)。
密文
123
64位
63 64
.
19
IP · IP-1 = IP-1 · IP = I
1 23 4 5 6 78 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
选择压缩函数Si的功能:
E 输出的 48 比特与子密钥异或后,顺序分成 8 组,每组 6 比特,分别通过 S1,S2,…,S8 盒 后又缩为 32 比特,即每盒输入为 6比特,输出为 4 比特。
设 Si 盒的 6 个输入端为 b1 b2 b3 b4 b5
b6,在 Si 表中找出 b1 b6 行,b2 b3 b4 b5 列
第三章 分组密码体制
分组密码概述 数据加密标准 差分密码分析与线性密码分析 分组密码的运行模式 其他分组密码体制
.
1
分组密码概述
分组密码因其实现速度较快,在许多密码 系统中是一个重要的组成部分。分组密码 与流密码在区别在于分组密码将明文的消 息编码后划分成长度为n的组,在一个密钥 的控制下变换成等长(m)的输出序列。 一般情况下,n=m。若m>n,为由数据扩 充的分组密码;若m<n,为由数据压缩的 分组密码。
16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1
E的作用:
将32比特 的输入膨 胀为48比 特。
则输出为:B = t32 t1 t2 …… t32 t1
.
23
选择扩展运算:
12 34 56 78 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
R0 = L1
IP -1
D.ES ( m’ ) = m
17
初始置换IP和初始逆置换IP—1
注:数字表示比特位
.
18
逆初始置换 (IP-1) 是简单的比特移位。
逆初始置换 IP-1
逆 初始 置换
123
64位
置换码组
63 64
40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31 38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29 36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27 34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25
方法:对数据重复执行某个置换,再对该置换作用一函数, 可获得扩散。
混淆:是使密文的统计特性和密钥取值的关系变得尽可能的 复杂,使敌手无法获得密钥。
方法:使用复杂的代换算法,可获得好的混淆结果,而使用 简单的线性代换得到的混淆效果不太理想。
.
7
Feistel密码结构
很多分组密码的结构本质上都是基于一个 Feistel密码结构。 Feistel密码结构的思想是 利用乘积密码实现扩散和混淆。乘积密码 是顺序的执行两个或多个密码系统,使得 最后结构的密码强度高于每个基本密码系 统产14
DES加解密过程
令i表示迭代次数,表示逐位模2求和,f为加密函
数。DES的加密和解密过程表示如下。
加密过程:
L0R0 IP(64bi输 t 入码)
Li Ri1
i 1,2,,16
Ri Li1 f (Ri1,ki) i 1,2,,16
64bi密 t 文IP1(R16L16)
解密过程:
:
K16
T16
R16 = L15 ( R15, K16 )
L16 = R15
IP -1
D.ES ( m ) = m’
16
m’
IP
DES
R16
L16
K16
T16
解