Slide 1

Slide 1 text

密码学基础 (上) 1

Slide 2

Slide 2 text

内容提要 1 密码学的基本概念 2 对称密钥密码算法 3 非对称密钥密码算法 4 单向散列函数 5 数字签名 6 密钥管理和公钥基础设施(PKI) 7 OpenSSL简介 2

Slide 3

Slide 3 text

内容提要 1 密码学的基本概念 1.1 密码学的历史 1.2 密码学的基本概念 1.3 算法的分类 1.4 密码分析 1.5 密码技术的用途 2 对称密钥密码算法 3 非对称密钥密码算法 4 单向散列函数 5 数字签名 6 密钥管理和公钥基础设施(PKI) 7 OpenSSL简介 3

Slide 4

Slide 4 text

1.1 密码学的历史 • 古罗马:Caesar 密码 4 ABCDEFGHIGKLMNOPQRSTUVWXYZ DEFGHIGKLMNOPQRSTUVWXYZABC Caesar was a great soldier 密码本 密文 Fdhvdu zdv d juhdw vroglhu 明文 密文 CAESAR 密码 : c=( m+ 3) Mod 26

Slide 5

Slide 5 text

1.1 密码学的历史(Cont.) • 美国南北战争 C A N Y O U U N D E R S T A N D 5 输入方向 输 出 方 向 明文: Can you understand 密文: codtaueanurnynsd

Slide 6

Slide 6 text

1.1 密码学的历史(Cont.) 6 • 转轮密码机ENIGMA,由 Arthur Scherbius于1919年 发明,4 轮ENIGMA在1944 年装备德国海军.

Slide 7

Slide 7 text

1.1 密码学的历史(Cont.) 英国的TYPEX打字密码机,是德国3轮ENIGMA的改进型密 码机。它在英国通信中使用广泛,且在破译密钥后帮助 破解德国信号。 7

Slide 8

Slide 8 text

1.1 密码学的历史(Cont.) • 图灵(Alan Mathison Turing) • Alan Mathison Turing,1912~1954. 英国数 学家。 一生对智能与机器之间的关系进行着 不懈探索。 • 1936年,24岁的图灵提出 “图灵机”的设想。 二战期间成功地破译了纳粹德国的密码,设 计并制造了 COLOSSUS,向现代计算机迈进了 重要一步。 • 1952年,图灵遭到警方拘捕,原因是同性恋。 1954年6月8日,服毒自杀,年仅42岁。 • 图灵去世12年后,美国计算机协会以他的名 字命名了计算机领域的最高奖“图灵奖”。 8

Slide 9

Slide 9 text

一个简单的加密算法—异或 1 1 0 1 0 1 0 1 1 0 0 0 = Å = Å = Å = Å 1 1 0 0 1 1 = Å = Å = Å = Å - - x x x x x x x x 9

Slide 10

Slide 10 text

一个简单的加密算法—异或 • 异或 10 密文: 0 1 1 0 解密: 密钥: 0 1 0 1 明文: 0 0 1 1 • 已知明文、密文,怎样求得密钥? C=P K P=C K 异或运算(不带进位加法): 明文: 0 0 1 1 加密: 密钥: 0 1 0 1 密文: 0 1 1 0 K=C P • 只知道密文,如何求得密文和密钥?

Slide 11

Slide 11 text

1.2 密码学的基本概念 • 密码学基本模型 11 发 送 方 接 收 方 Encryption Decryption 加密:c= EK (m) 解密:m= DK (c) 不安全信道 密码分析 (Cryptanalysis) plaintex t ciphertext plaintex t Key Key

Slide 12

Slide 12 text

1.2 密码学的基本概念(Cont.) • 密码编码:通过信息编码使信息保密 • 密码分析:用分析方法解密信息 • 基本术语 • 明文(plain text),密文(cipher text) • 加密(encrypt, encryption), 解密(decrypt, decryption) • 密码算法(Algorithm),密码(Cipher):用来加密和解密的 数学函数 c=E(m), m=D(c) , D(E(m))= m • 密钥(Key): 算法中的一个变量 c=EKe (m), m=DKd (c) , DKd (EKe (m))= m 12

Slide 13

Slide 13 text

1.3 密码算法的分类 • 古典密码算法和现代密码算法 • 按照算法和密钥是否分开 • 对称密钥密码和非对称密钥密码 • 加密和解密是否使用相同的密钥 • 分组密码和序列密码 • 每次操作的数据单元是否分块 13

Slide 14

Slide 14 text

古典密码和现代密码 • 古典密码 • 代替密码(Substitution Cipher) • 换位密码 (transposition Cipher) • 代替密码与换位密码的组合 • 古典密码(受限密码)的缺陷 • 密码体制的安全性在于保持算法本身的保密性 • 受限算法的缺陷 • 不适合大规模生产 • 不适合较大的或者人员变动较大的组织 • 用户无法了解算法的安全性 14

Slide 15

Slide 15 text

古典密码和现代密码(Cont.) • 现代密码算法 • 把算法和密钥分开 • 密码算法可以公开,密钥保密 • 密码系统的安全性在于保持密钥的保密性 15 发 送 方 接 收 方 m m 加密 E 解密 D c= Ek (m) m= Ek (c) 密码分析 密钥分配(秘密信道) k k

Slide 16

Slide 16 text

对称密码算法和非对称密码算法 • 对称密钥密码算法,又称传统密码算法、秘密密钥密码算法 • 加密和解密使用相同的密钥 Ke =Kd • 常用算法:DES, IDEA, Blowfish, RC2等 • 优点 • 加密速度快,便于硬件实现和大规模生产 • 缺点 • 密钥分配:必须通过保密的信道 • 密钥个数:n(n-1)/2 • 无法用来签名和抗抵赖(没有第三方公证时) 16

Slide 17

Slide 17 text

对称密码和非对称密码(Cont.) • 非对称密码,又称公开密钥密码算法 • 加密和解密使用不同的密钥(Kp , Ks ),把加密密钥公开,解 密密钥保密: c= EKp (m) , m=DKs (c) • 常用算法:RSA, DSA, 背包算法,ElGamal , 椭圆曲线等 • 优点: • 密钥分配:不必保持信道的保密性 • 密钥个数:n pair • 可以用来签名和抗抵赖 • 缺点 • 加密速度慢,不便于硬件实现和大规模生产 17

Slide 18

Slide 18 text

分组密码和序列密码 • 分组密码(Block Cipher) • 一次加密或解密操作作用于一个数据块,比如64位 • 序列密码(Stream Cipher) • 一次加密或解密操作作用于一位或者一个字节 18 随机序列 随机序列 密钥序列发生器 Pi Ci Ci Pi Key 密钥序列发生器

Slide 19

Slide 19 text

1.4 密码分析 • 在未知密钥的前提下,从密文恢复出明文、或者推导出密钥 • 对密码进行分析的尝试称为攻击 • 攻击方法分类(根据已知信息量的多少) • 唯密文攻击 • 已知明文攻击 • 选择明文攻击 • 自适应选择明文攻击 • 选择密文攻击 • 选择密钥攻击 19

Slide 20

Slide 20 text

1.4 密码分析(Cont.) • Success in dealing with unkown ciphers is measured by these four things in the order named, perseverance, careful methods of analysis, intuition, luck. The ability at least to read the language of the original text is very desirable but not essential. • Parker Hitt ‘‘ 军事密码破译指南’’ 的开场白 • 毅力、审慎的分析方法、直觉、运气。 20

Slide 21

Slide 21 text

1.4 密码分析(Cont.) • 密码算法的安全性 • 如果破译算法的代价大于加密数据本身的价值,或者在信息的生命期内 无法破解,那么你的算法可能是安全的。 • 一个算法被称为是计算上安全的,如果一个算法用可得到的资源不能破 解。 • 处理复杂性:计算量,CPU时间 • 数据复杂性:所需输入数据量 • 存储复杂性:计算所需的存储空间 21

Slide 22

Slide 22 text

1.4 密码技术的主要用途 • 数据保密—数据加密/解密 • 数据加密(存储和传输) • 认证技术 • 实体身份认证 • 数据源发认证 • 信息完整性保护 • 数据在传输过程中没有被插入、篡改、重发; • 数字签名和抗抵赖(Non-repudiation ) • 源发抗抵赖 • 交付抗抵赖 22

Slide 23

Slide 23 text

内容提要 1 密码学的基本概念 2 对称密钥密码算法 2.1 对称密钥算法简介 2.2 DES 算法原理 2.3算法模式 2.4 DES的安全性和速度 2.5 其他对称密码算法简介 3 非对称密钥密码算法 4 单向散列函数 5 数字签名 6 密钥管理和公钥基础设施(PKI) 7 OpenSSL简介 23

Slide 24

Slide 24 text

2.1 对称密钥算法简介 • 加密和解密使用相同的密钥:KE =KD • 密钥必须使用秘密的信道分配 24 发 送 方 接 收 方 m m 加密 E 解密 D c= Ek (m) m= Dk (c) 密钥分配(秘密信道) k k

Slide 25

Slide 25 text

2.1 对称密钥算法简介(Cont.) • 常用对称密钥密码算法 • DES (Data Encryption Standard )及其各种变形 • IDEA (International Data Encryption Algorithm) • RC2, RC4, RC5, • AES(Advanced Encryption Standard) • CAST-128 • Blowfish 25

Slide 26

Slide 26 text

2.2 DES算法原理 • IBM 公司,70年代初提出,80年代成为国家标准 • DES是一种对称密钥算法,密钥长度为56bits (加上奇偶校验,通 常写成64bits) • 是一种分组加密算法,64 bits为一个分组 • 基本思想: • 混乱(Confusion) 和扩散(Diffusion ) • 使用标准的算术和逻辑运算 26

Slide 27

Slide 27 text

DES 加密过程 首先把明文分成以64 bit为单位的块m,对于每个m, 执行如下操 作 DES(m)=IP-1 • T16 • T15 •..... T2 • T1 • IP(m) • 初始置换, IP • 16轮迭代,Ti , i=1,2,…16 • 末置换,IP-1 27

Slide 28

Slide 28 text

DES算法概要 28 Round16 IP-1 Roud1 Roud1 Initial Permutation Plaintext 64bits ciphertext 64bits Permuted Choice1 Left Circular Shift Left Circular Shift Left Circular Shift Permuted Choice2 Permuted Choice2 Permuted Choice2

Slide 29

Slide 29 text

初始换位(IP) • 初始换位(IP) 58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7 29 M=m1 m2 ,……m62 m63 ,m64 M’=m58 m50 ,……m23 m15 ,m7 IP(M)

Slide 30

Slide 30 text

一轮迭代 30 Li-1 Ri-1 Li =Ri-1 Ri =Li-1 f (Ri-1 ,Ki ) Ki ( 48bits) 32 bits 32 bits 32 bits E-盒置换 S-盒代替 P-盒置换 32 bits f 48 32

Slide 31

Slide 31 text

扩展置换(E) • 将Ri从32位扩展到48位 • 目的:输入的一位影响下一步的两个替换,使得输 出对输入的依赖性传播得更快,密文的每一位都依 赖于明文的每一位 31 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 32 48 32 1 2 3 4 5 4 5 6 7 8 9 8 9…. 31 32 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ……46 47 48

Slide 32

Slide 32 text

S-盒 置换 • 将48比特压缩成32比特 32 E S1 S2 S3 S4 S5 S6 Ri-1 (32 bits) Ki ( 48bits) 48 bits S7 S8

Slide 33

Slide 33 text

S-盒 置换 • 输入6比特: b1 b2 b3 b4 b5 b6 • 输出4比特:S(b1 b6 , b2 b3 b4 b5 ) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 S1 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 S2 0 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10 1 . . .. .. .. .. 2 3 33 S1 b1 b2 b3 b4 b5 b6 举例: S 1 ( 100110 ) = 1000

Slide 34

Slide 34 text

P-盒置换 • 32比特输入,32比特输出 1 2 3 4 5 6 7 8 9 30 31 32 16 7 20 21 29 12 28 17 1 15 . . .. . . 11 4 25 34 P-盒的输出:

Slide 35

Slide 35 text

子密钥的生成 35 PC-1 C0 D0 LS1 LS1 C1 D1 LS2 LS2 C2 D2 LS16 LS16 C16 D16 PC-2 K1 (48bits) 密钥 K, 64 bits 28 28 PC-2 K2 (48bits) PC-2 K16 (48bits)

Slide 36

Slide 36 text

子密钥生成 36 Ci Di 移位(LS) 移位 压缩置换(PC) Ci+1 Di+1 Ki

Slide 37

Slide 37 text

子密钥生成 • 拆分:56 bits 的密钥分成两部分,Ci , Di , 各28bits • 循环左移:根据迭代的轮数,分别左移一位或两位 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1 14 17 11 24 1 5 3 28 15 6 21 10 23 19 12 4 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 37 • 压缩置换(置换选择):从56bits中选择48bits

Slide 38

Slide 38 text

末置换 • 末置换 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 58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7 38 • 初始置换 IP-1(IP(M))=M

Slide 39

Slide 39 text

DES解密过程 • DES解密过程与加密过程完全相似,只不过将16次迭代的子密钥 顺序倒过来,即 m = DES-1(c) = IP-1 • T1 •T2 •.....T15 • T16 • IP(c) • 可以证明, DES(DES-1(m) )=m 39

Slide 40

Slide 40 text

2.3 DES的算法模式 • 电子密码本(Eletronic CoodBook, ECB) • 密码分组链(Cipher Block Chaining , CBC) • 密文反馈( Cipher FeedBack , CFB) • 输出反馈(Output FeedBack , OFB ) 40

Slide 41

Slide 41 text

电子密码本模式(ECB) • 基本的DES算法就是ECB 模式 • 相同的输入永远产生相同的输出 • 相当于加密、解密双方各有一个密码本,对于一个密钥,密码本 有264个表项 • 存在重放(Replay)类型的攻击,特别是对于结构化的报文: • 攻击者可以在不知道密钥的情况下修改被加密过的消息 1 2 3 4 5 6 7 8 9 10 11 12 13 41 时间 标记 发送 银行 接受 银行 储户姓名 帐号 存款 金额

Slide 42

Slide 42 text

密码分组链模式(CBC) ) ( ) ( 1 1 1 i i i i i i C E C P P C E C - - - Å = Å = 42 Ek Ek Pi-1 Pi Ek Pi+1 Ek Ci-1 Ek Ci-1 Ek Ci-1 Ci-1 Ci Ci+1 Pi-1 Pi Pi+1 IV

Slide 43

Slide 43 text

密码分组链模式(CBC)(续) i i i i i i i i i i P P C C P P C P C E E C E = Å Å = Å = Å = - - - - - - 1 1 1 1 1 1 )) ( ( ) ( 43

Slide 44

Slide 44 text

2.4 DES的安全性和速度 • 弱密钥 • 产生的子密钥相同,4个 , 如 0000…00, 11111…111, 0101010101…01, 101010…10 • 半弱密钥 • 用不同的密钥加密产生相同的密文,即用一个密钥加密的信息可以用其 他密钥解开,12个 • 密钥的长度 • 1976年,耗资2000万美元的计算机,可以在一天中找到密钥。 • 1993年,设计100万美元的计算机,3.5小时用穷举法找到密钥。 44

Slide 45

Slide 45 text

2.5 DES的变形 • 三重DES加密,密钥长度为112比特, k=k1 k2 45 DES DES-1 DES DES-1 DES DES-1 m m c c k1 k2 k1 k1 k2 k1 密钥长度2112

Slide 46

Slide 46 text

软硬件实现的速度 • 硬件实现:商业DES芯片 • VLSI 公司 VM009 1993年制造 200M Bytes/s • 软件实现: • 80486 , CPU 66Hz, 每秒加密43000个DES分组,336K Bytes/s • HP 9000/887 ,CPU 125 Hz, 每秒加密196,000个分组, 1.53M Bytes/s 46

Slide 47

Slide 47 text

2.6 其他密码算法 算法 密钥 长度 迭代 次数 数学操作 应用 DES 56 16 XOR, S-Box Kerberos,SET 3DES 112 or 168 48 XOR,S-Box PGP,S/MIME IDEA 128 8 XOR, +, × PGP BlowFish 最大448 16 XOR, S-Box,+ RC5 最大2048 <255 +,—,XOR CAST-128 40-128 16 +,—,S-Box PGP 47

Slide 48

Slide 48 text

IDEA算法简介 • 1990年,Xuejia Lai(赖学家),James Massey, International Data Encryption Algorithm • “依我看来,该算法是目前一公开的最好和最安全的分 组密码算法” ——《应用密码学》,p226 • 目前已经最为PGP的一部分 48

Slide 49

Slide 49 text

IDEA算法简介(cont.) • 分组长度64bits, 密钥长度128bits • 同一算法即可以加密,也可用于解密 • 只需要简单的混合运算 • 异或 • 模216加 • 模216+1乘 • 软件实现IDEA比DES快两倍 • 安全性:弱密钥有251, 1/277 • 赢得彩票头等奖并在同一天被闪电杀死的可能性 1/255 49

Slide 50

Slide 50 text

小结 • 基本操作:代替、换位、异或 • 密码学基本模型 • 算法的分类 • 常用的对称密码 • DES算法的基本原理 • DES算法的四种模式 50