第一部分 密码学 四川大学 曾雪梅 [email protected] 课件下载:http://imc.scu.edu.cn/zengxm/course/ 密码学简介 密码学:以研究秘密通信为目的,研究对传 输信息采取何种秘密的变换,以防止第三者 对信息的截取。 密码编制学——研究把信息(明文)变换成没 有密钥不能解密或很难解密的密文的方法 密码分析学——研究分析破译密码的方法 四组人用到了密码学:军事人员、外交人员、 写日记者、情侣 经典密码学、现代密码学 凯撒密码 保密系统模型 非法接入者 搭线信道 (主动攻击) 搭线信道 (被动攻击) c 信源 M m 加密器 c C=EK1(M) 信道 k1 密钥源 k1 解密器 M=Dk2(C) 密码分析员 m` (窃听者) m 接收者 k2 密钥信道 密钥源 k2 K1=k2: 单钥,对称密码体制 K1≠k2: 双钥,非对称密码体制 第二章 对称加密和消息机密性 主要内容 对称加密原理 对称加密算法 密码块的操作模式 加密设备的位置 密钥分配 2.1 对称加密原理 对称加密也称为常规加密、密钥或单密钥加密 加密方案的五个组成部分(图2.1): 明文(Plaintext) 加密算法(Encryption algorithm) 密钥(Secret Key) 密文(Ciphertext) 解密算法(Decryption algorithm) 2.1 对称加密原理(2) 保密密钥K 明文M 加密 Bob 传输密文C 保密密钥K 解密 明文 Alice 加密过程: C=EK(M) 解密过程: M=DK(C) 对称加密的两个安全要求: 需要强大的加密算法
Download
Report
Transcript 第一部分 密码学 四川大学 曾雪梅 [email protected] 课件下载:http://imc.scu.edu.cn/zengxm/course/ 密码学简介 密码学:以研究秘密通信为目的,研究对传 输信息采取何种秘密的变换,以防止第三者 对信息的截取。 密码编制学——研究把信息(明文)变换成没 有密钥不能解密或很难解密的密文的方法 密码分析学——研究分析破译密码的方法 四组人用到了密码学:军事人员、外交人员、 写日记者、情侣 经典密码学、现代密码学 凯撒密码 保密系统模型 非法接入者 搭线信道 (主动攻击) 搭线信道 (被动攻击) c 信源 M m 加密器 c C=EK1(M) 信道 k1 密钥源 k1 解密器 M=Dk2(C) 密码分析员 m` (窃听者) m 接收者 k2 密钥信道 密钥源 k2 K1=k2: 单钥,对称密码体制 K1≠k2: 双钥,非对称密码体制 第二章 对称加密和消息机密性 主要内容 对称加密原理 对称加密算法 密码块的操作模式 加密设备的位置 密钥分配 2.1 对称加密原理 对称加密也称为常规加密、密钥或单密钥加密 加密方案的五个组成部分(图2.1): 明文(Plaintext) 加密算法(Encryption algorithm) 密钥(Secret Key) 密文(Ciphertext) 解密算法(Decryption algorithm) 2.1 对称加密原理(2) 保密密钥K 明文M 加密 Bob 传输密文C 保密密钥K 解密 明文 Alice 加密过程: C=EK(M) 解密过程: M=DK(C) 对称加密的两个安全要求: 需要强大的加密算法
第一部分
密码学
四川大学 曾雪梅
[email protected]
课件下载:http://imc.scu.edu.cn/zengxm/course/
密码学简介
密码学:以研究秘密通信为目的,研究对传
输信息采取何种秘密的变换,以防止第三者
对信息的截取。
密码编制学——研究把信息(明文)变换成没
有密钥不能解密或很难解密的密文的方法
密码分析学——研究分析破译密码的方法
四组人用到了密码学:军事人员、外交人员、
写日记者、情侣
2
经典密码学、现代密码学
凯撒密码
3
保密系统模型
非法接入者
搭线信道
(主动攻击)
搭线信道
(被动攻击)
c
信源
M
m
加密器
c
C=EK1(M)
信道
k1
密钥源
k1
解密器
M=Dk2(C)
密码分析员 m`
(窃听者)
m
接收者
k2
密钥信道
密钥源
k2
K1=k2: 单钥,对称密码体制
K1≠k2: 双钥,非对称密码体制
4
第二章
对称加密和消息机密性
主要内容
对称加密原理
对称加密算法
密码块的操作模式
加密设备的位置
密钥分配
6
2.1 对称加密原理
对称加密也称为常规加密、密钥或单密钥加密
加密方案的五个组成部分(图2.1):
明文(Plaintext)
加密算法(Encryption algorithm)
密钥(Secret Key)
密文(Ciphertext)
解密算法(Decryption algorithm)
7
2.1 对称加密原理(2)
保密密钥K
明文M
加密
Bob
传输密文C
保密密钥K
解密
明文
Alice
加密过程: C=EK(M)
解密过程: M=DK(C)
8
对称加密的两个安全要求:
需要强大的加密算法
用安全的方式获得保密密钥的副本
安全性依赖密钥的保密,而不是加密
算法的保密(Kerckoff原则)
9
2.1.1 密码系统
三个独立的因素:
用于从明文到密文转换的操作类型
取代(替换)、置换(重新排序)
所使用密钥的数目
对称 (单个密钥)
非对称 (双密钥加密, or 公钥加密)
处理明文的方法
分块加密(block cipher)
流密码(stream cipher)
A5、RC-4、PKZIP
10
2.1.2 密码分析
密码分析:试图发现明文或密钥的过程
11
2.1.2 密码分析 (2)
蛮力攻击:
尝试任何可能的密钥,直到能够将密文正确解释为
明文为止
Key Size
(bits)
Number of
Alternative Keys
Time required at 106
Decryption/µs
32
232 = 4.3 x 109
2.15 milliseconds
56
256 = 7.2 x 1016
10 hours
128
2128 = 3.4 x 1038
5.4 x 1018 years
168
2168 = 3.7 x 1050
5.9 x 1030 years
12
2.1.2 密码分析 (3)
加密方案是计算上安全的(computationally
secure)
破译密文的成本超过了加密信息本身的成本
破译密文所要的时间超过了信息的有效期
理论安全,或无条件安全:
攻击者无论截获多少密文,都无法得到足够的信息来唯
一地决定明文。
Shannon用理论证明:欲达理论安全,加密密钥长度必
须大于等于明文长度,密钥只用一次,用完即丢,即一
次一密,One-time Pad,不实用。
13
2.1.3 Feistel 密码结构
在1973, IBM公司的 Horst Feistel描述了大部分对称的对称密码
算法所具有的结构,包括DES.
Fesitel网络的实现依赖下列参数和设计特征的选择:
块大小: 块越大意味着越安全
密钥大小: 密钥越大越安全
循环次数: 多个循环可以提供更多的安全性
子密钥产生算法: 算法越复杂,密码分析难度就越困难.
快速软件加密/解密: 要考虑算法执行的速度
分析的容易性:算法表示简洁清晰,更易于对加密技术的缺陷进
行分析
14
2.1.3 Feistel 密码结构(3)
Fesitel密码的解密过程
实质上与加密过程相同
使用密文作为算法的输入,按照相反的顺
序使用子密钥Ki
16
2.2 对称加密算法
分块加密 p26
按照固定大小处理明文输入,而且每个明文块
产生相同的密文块
数据加密标准(DES)、三重DES(3DES)、
高级加密标准(AES)
17
2.2.1 数据加密标准
数据加密标准Data Encryption Standard
(DES)
最广泛使用的加密框架
也称为数据加密算法 Data Encryption
Algorithm (DEA)
DES is a block cipher
明文是64位块
密钥长度为56位
18
64位明文
子密钥的产生
初始置换
第 1轮
第2轮
第16轮
64位密钥
置换选择1
K1
K2
K16
置换选择2
循环左移
置换选择2
循环左移
置换选择2
循环左移
32位互换
图:DES整体解决方案
逆初始置换
64位密文
初始置换IP 和逆置换IP-1
输入为In[], 输出为Out[]
Table[64] = {58, 50, 42,
34, 26, …….23, 15, 7};
for(int i=0; i<len; ++i)
Out[i] = In[ Table[i]-1 ];
20
DES算法的单次循环
21
加密函数F
32位
扩展置换
48
位
48位子密钥
22
扩展置换和置换函数
23
S盒计算
S1
输入二进制数组中的第1和第6两位所组成的二进制数值代表选中的行号,其
余4位所组成的二进制数值代表选中的列号,而选中的行和列的交点处的数
字便是选择函数的输出
例子:
S1的输入为:101011
第1位和第6位组成11=(3)10,表示选中S1标号为3的那行
其余4位组成0101=(5)10,表示选中S1标号为5的那列
所以,S1的输出为:1001
24
子密钥的产生
64比特的密钥K,经过PC-1
后,生成56比特的串。
该比特串分为长度相等的比
特串C0和D0。然后C0和
D0分别循环左移1位,得到
C1和D1。C1和D1合并起
来生成C1D1。C1D1经过
PC-2变换后即生成48比特
的K1
25
子密钥的产生(2)
26
DES
每次迭代的处理公式:
Li = Ri-1
Ri = Li-1 F(Ri-1, Ki)
DES强度的关注点:
算法
密钥的长度 (56-bits)
对付蛮力攻击的方法:使用较长的密钥
27
DES解密
DES解密和加密使用同一算法,但子密钥的
使用顺序要倒过来,即使用K16,K15,….K1.
解密时把64位密文当作明文输入
数学描述:
Ri-1=Li
Li-1=Rif(Li,Ki)
28
DES的雪崩效应
雪崩效应
明文或密钥的一比特的变化,引起密文许多比特的改变。如
果变化太小,就可能找到一种方法减小有待搜索的明文和密文
空间的大小。
-如果用同样密钥加密只差一比特的两个明文:
3次循环以后密文有21个比特不同,16次循环后有34个比特不同
-如果用只差一比特的两个密钥加密同样明文:
3次循环以后密文有14个比特不同,16次循环后有35个比特不同
29
DES的强度
56-bit 密钥有256 = 72,057,584,037,927,936 ≈
7.2亿亿之多
蛮力搜索( brute force search ) 似乎很困难,20世纪
70年代估计要1000-2000年
技术进步使穷举搜索成为可能
1997年1月29日,RSA公司发起破译RC4、RC5、
MD2、MD5,以及DES的活动,破译DES奖励10000
美金。明文是:Strong cryptography makes the
world a safer place. 结果仅搜索了24.6%的密钥空
间便得到结果,耗时96天。
1998年在一台专用机上(EFF)只要三天时间即可
1999年在超级计算机上只要22小时!
30
图2.5 破译密码的时间
(106 decryptions/µs)
31
2.2.2 三重DEA
使用三个密钥并执行三次DES算法 (加密-解
密-加密)
C = EK3[DK2[EK1[P]]]
C = 密文
P = 明文
EK[X] = 使用密钥K加密X
DK[Y] = 使用密钥K解密Y
P= DK1[EK2[DK3[C]]]
有效密钥长度为 168 bits
32
2.2.2 三重DEA(2)
33
2.2.2 三重DEA(3)
三重DES的第二阶段并没有密码学方面的意
义,惟一好处是使得3DES用户能解密原先
单个DES用户加密的数据,即:
K1=K2=K3
C = EK1[DK1[EK1[P]]]=Ek1[P]
FIPS46-3允许使用两个密钥,即K1=K3,
这样所提供的密钥长度为112位
34
2.2.3高级加密标准(AES)
1997年NIST宣布征集AES算法
要求: 与三重DES比,要快且至少一样安全,分组128位,
密钥128/192/256位
评价准则:安全,计算有效性,内存需求,硬件和软件
的适用性以及灵活性
1998年确定第一轮15个候选者
1999年确定第二轮五个候选者: MARS, RC6,
Rijndael, Serpent, Twofish
2001年11月Rijndael作为被提议的AES算法
35
36
2.2.4 流密码和RC4
密钥K
密钥K
伪随机字节产生器
(密钥流产生器)
伪随机字节产生器
(密钥流产生器)
明文
字节流
M
明文
字节流
M
密文
字节流
C
11001100
01101100
10100000
01101100
10100000
11001100
37
RC4算法
Ron Rivest, 1987年设计的流密码
WEP和WiFi协议使用RC4
过程
初始化
初始排序
流产生
38
39
2.3 密码块的操作模式
电子密码本
(electronic
codebook,ECB):
明文分成相同长度的明文块
(64位),使用同一个密钥对
每个明文块进行加密
结果:
同样的明文块在消息中多次
出现的话,它产生的密文总是
相同的
对较长的消息来说,ECB
方法并不安全!
40
2.3 密码块的操作模式(2)
密码分块链接模式 (CBC)
加密算法的输入是当前明文块与前一个密
文块异或操作的结果.
不会暴露64位的重复块
C i E k [Ci 1 Pi ]
D K [Ci ] D K [EK (Ci 1 Pi )]
D K [Ci ] (Ci 1 Pi )
C i 1 D K [Ci ] C i 1 C i 1 Pi Pi
当Pi中发生错误时,将影响
后续所有的密文块,加密错
误传播无界;
当Ci-1中发生错误时,只影响
Pi-1和Pi,不影响其它明文块,
错误传播有界;
41
42
2.3.1密码分块链接模式(2)
初始化矢量IV
IV对发送方和接收方都是已知的
IV和密钥都要受到保护: 可以通过其他密码方式(如ECB)对
IV进行加密
对手可以修改IV值,改变接收方收到的数据
(撇号表示取反)
43
2.3.2 密码反馈方式(CFB)
通过使用CFB模式,可以将任何块密码转换
成流密码。
流密码特点:
不需要将信息填充以分成块
可以进行实时操作
流密码的一个重要优点:密文与明文的长度
是相同的
44
C1=P1
SS(E(IV))
P1=C1
SS(E(IV))
Ci=Pi
Pi=Ci
SS(E(Ci-1))
SS(E(Ci-1))
当Pi中发生错误时,将影响
后续所有的密文块,加密错
误传播无界;
当Ci-1中发生错误时,只影响
Pi-1和Pi,不影响其它明文块,
错误传播有界;
45
2.4 加密设备的位置
链路加密:
需要大量的加密设备
能够提供高度的安全性
数据包在每个交换机上都需要解密
端到端加密
源端加密、目的端解密
负载(用户数据)加密
报文头以明文方式传输
高安全性: 链路加密和端到端加密都需要 (见图 29)
46
47
2.5 密钥分配
1. A选择密钥,然后物理地传递给B.
2. 第三方选择密钥,然后物理地传递给A和B.
3. 如果A和B已使用密钥,一方可用旧密钥加
密新密钥,在传送给对方.
4. 如果A和B与第三方C都有加密连接,则C可
以通过对A和B的加密连接将密钥传送给A
和B.
48
2.5 密钥分配(2)
会话密钥:
数据采取一次性的会话密钥加密,会话结束后,
密钥失效
永久密钥:
为分配会话密钥,在两个实体之间使用的永久
密钥
49
50
小结
对称加密的原理
Feistel 密码结构
DES与3DES加密
ECB、CBC、FCB
密钥分配方法
51