第一部分 密码学 四川大学 曾雪梅 [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=Rif(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