127
汕汕汕 汕汕汕汕汕汕汕 第第第 第第第 第第第 第第第

汕职院 计算机网络专业

  • Upload
    cody

  • View
    289

  • Download
    0

Embed Size (px)

DESCRIPTION

第七章 密码学. 汕职院 计算机网络专业. 7.1 密码学概述. 密码编码学 Cryptography 主要研究对信息进行编码,实现对信息的隐蔽。 密码分析学 Cryptanalysis 目的:得到密钥,而不是仅仅得到单个密文对应的明文。. 7.1.1 信息安全与密码学的关系. 加密技术是信息安全技术的核心,已经渗透到大部分安全产品中去了,而且有芯片化的趋势 信息的私密性 (Privacy) : 对称加密 信息的完整性 (Integrity) : 单向散列算法 信息的源发鉴别 (Authentication) : 数字签名 - PowerPoint PPT Presentation

Citation preview

Page 1: 汕职院 计算机网络专业

汕职院 计算机网络专业

第七章 密码学第七章 密码学

Page 2: 汕职院 计算机网络专业

7.1 7.1 密码学概述密码学概述

密码编码学 密码编码学 CryptographyCryptography

主要研究对信息进行编码,实现对信息的隐蔽。主要研究对信息进行编码,实现对信息的隐蔽。

密码分析学密码分析学 CryptanalysisCryptanalysis

目的:得到密钥,而不是仅仅得到单个密文对应的目的:得到密钥,而不是仅仅得到单个密文对应的明文。明文。

Page 3: 汕职院 计算机网络专业

7.1.1 7.1.1 信息安全与密码学的关系信息安全与密码学的关系加密技术是信息安全技术的核心,已经渗透到大部分安全产加密技术是信息安全技术的核心,已经渗透到大部分安全产

品中去了,而且有芯片化的趋势品中去了,而且有芯片化的趋势 信息的私密性信息的私密性 (Privacy)(Privacy) ::

对称加密对称加密 信息的完整性信息的完整性 (Integrity)(Integrity) ::

单向散列算法单向散列算法 信息的源发鉴别信息的源发鉴别 (Authentication)(Authentication) ::

数字签名数字签名 信息的防抵赖性信息的防抵赖性 (Non-Reputation)(Non-Reputation) ::

数字签名 + 时间戳数字签名 + 时间戳

Page 4: 汕职院 计算机网络专业

7.1.2 7.1.2 密码学的目的和加密通信模型密码学的目的和加密通信模型密码学的目的:密码学的目的: AliceAlice和和 BobBob 两个人在不安全的信两个人在不安全的信

道上进行通信,而窃听者道上进行通信,而窃听者 CharlyCharly 不能理解他们通不能理解他们通信的内容信的内容

Page 5: 汕职院 计算机网络专业

7.1.3 7.1.3 相关概念相关概念明文 plain text1

密文 cipher text2

密码算法 cipher/cryptography algorithm4

受限制的( restricted )算法:基于算法的保密3

密钥 key :基于 key 的保密5

Page 6: 汕职院 计算机网络专业

7.1.4 7.1.4 密钥密钥是用户按照一种密码体制随机选取,它通常是一是用户按照一种密码体制随机选取,它通常是一

随机字符串,是控制明文和密文变换的唯一参数随机字符串,是控制明文和密文变换的唯一参数。。

Alice 加密明文

解密密文

Bob明文

密钥源 密钥源

密钥 密钥

密钥信道

Charly

Page 7: 汕职院 计算机网络专业

如何理解密钥(如何理解密钥( 11 ))

Page 8: 汕职院 计算机网络专业

如何理解密钥(如何理解密钥( 22 ))

Page 9: 汕职院 计算机网络专业

如何理解密钥(如何理解密钥( 33 ))

Page 10: 汕职院 计算机网络专业

7.1.5 7.1.5 密码学的发展密码学的发展第第 11 阶段:(阶段:( 19491949 以前) 古典密码学以前) 古典密码学

第第 22 阶段:(阶段:( 19491949~~ 19751975 ) 现代密码学) 现代密码学 标志:标志: 19491949年年 ShannonShannon 发表的发表的《《保密系统的信息理保密系统的信息理论论》》

第第 33 阶段:(阶段:( 19761976 年至今) 公钥密码学年至今) 公钥密码学 标志:标志: 19761976年年 DiffieDiffie和和 HellmanHellman 发表了发表了《《密码学新方密码学新方向向》》

Page 11: 汕职院 计算机网络专业

7.1.6 7.1.6 密码的分类密码的分类单钥密码和双钥密码单钥密码和双钥密码私钥密码和公钥密码私钥密码和公钥密码流密码和分组密码流密码和分组密码

Page 12: 汕职院 计算机网络专业

7.1.6.1 7.1.6.1 对称加密对称加密 传统密码传统密码 // 常规密码常规密码 // 私钥密码私钥密码 // 单钥密码单钥密码

conventional / conventional / private-keyprivate-key / single-key / single-key 发送方和接收方共享一个共同的密钥发送方和接收方共享一个共同的密钥

sender and recipient share a common keysender and recipient share a common key 所有的传统密码算法都是私钥密码所有的传统密码算法都是私钥密码 KerckhoffKerckhoff 原则原则 :: 系统的保密性不依赖于对加密体制系统的保密性不依赖于对加密体制

或算法的保密,而依赖于对密钥的保密。或算法的保密,而依赖于对密钥的保密。 2020 世纪世纪 7070 年代以前私钥密码是唯一类型年代以前私钥密码是唯一类型 至今仍广泛应用至今仍广泛应用

Page 13: 汕职院 计算机网络专业

7.1.6.2 7.1.6.2 对称加密的模型对称加密的模型(( Symmetric Cipher ModelSymmetric Cipher Model ))

Page 14: 汕职院 计算机网络专业

7.1.7 7.1.7 密码体系的安全性密码体系的安全性绝对安全绝对安全 // 无条件安全,无条件安全, unconditional securityunconditional security

无论有多少可使用的密文,都不足以唯一的确无论有多少可使用的密文,都不足以唯一的确定密文所对应的明文定密文所对应的明文

除了一次一密之外,所有的加密算法都不是无除了一次一密之外,所有的加密算法都不是无条件安全的条件安全的

计算安全,计算安全, computational securitycomputational security破译密码的代价超过密文信息的价值;破译密码的代价超过密文信息的价值;破译密码的时间超出了密文信息的有效生命期。破译密码的时间超出了密文信息的有效生命期。

Page 15: 汕职院 计算机网络专业

穷举攻击穷举攻击Key Size Key Size

(bits)(bits)Number of Number of

Alternative KeysAlternative KeysTime required at 1 Time required at 1

decryption/µsdecryption/µsTime required at 10Time required at 1066

decryptions/µsdecryptions/µs

3232 223232 = 4.3 = 4.3 10 1099 223131 µs = 35.8 minutes µs = 35.8 minutes 2.15 milliseconds2.15 milliseconds

5656 225656 = 7.2 = 7.2 10 101616 225555 µs = 1142 years µs = 1142 years 10.01 hours10.01 hours

128128 22128128 = 3.4 = 3.4 10 103838 22127127 µs = 5.4 µs = 5.4 10 102424 yearsyears

5.4 5.4 10 101818 years years

168168 22168168 = 3.7 = 3.7 10 105050 22167167 µs = 5.9 µs = 5.9 10 103636 yearsyears

5.9 5.9 10 103030 years years

26 characters 26 characters (permutation(permutation

))26! = 4 26! = 4 10 102626 2 2 10 102626 µs µs = 6.4 = 6.4

10 101212 years years6.4 6.4 10 1066 years years

Page 16: 汕职院 计算机网络专业

非技术因素的攻击非技术因素的攻击社会工程社会工程

偷窃偷窃收买收买逼问逼问……

Page 17: 汕职院 计算机网络专业

7.2 7.2 古典密码古典密码代换技术代换技术

将明文字母替换成其他字母、数字或符号的方将明文字母替换成其他字母、数字或符号的方法法 ;;

如果把明文看成是如果把明文看成是 00或或 11 的序列,那么密文就的序列,那么密文就是是 00或或 11 比特序列的另一种表达。比特序列的另一种表达。

置换技术置换技术

Page 18: 汕职院 计算机网络专业

7.2.1 7.2.1 非典型的单表代换非典型的单表代换————恺撒密码恺撒密码加密算法:加密算法: C=EC=E(( 33,, pp)) ==(( p+3p+3)) mod 26mod 26

算法的一般化: 算法的一般化: C=EC=E(( kk,, pp)) ==(( p+kp+k)) mod mod 2626

解密算法:解密算法: P=DP=D(( 33,, cc)) ==(( p-3p-3)) mod 26mod 26

算法的一般化: 算法的一般化: P=EP=E(( kk,, cc)) ==(( c-kc-k)) mod mod 2626

Page 19: 汕职院 计算机网络专业

恺撒密码的密码分析恺撒密码的密码分析————穷举穷举 恺撒密码的三个重要特征恺撒密码的三个重要特征

已知加密和解密算法已知加密和解密算法 共有密钥共有密钥 2525个个 明文所用的语言是已知明文所用的语言是已知

的,且意义易于识别的,且意义易于识别 例:例: PHHWPHHW PHPH DIWHUDIWHU WKHWKH WRJDWRJD SDUWBSDUWB

11 oggvoggv ogog chvgtchvgt vjgvjg vqicvqic RctvaRctva

22 nffunffu nfnf bgufsbgufs uifuif uphbuphb qbsuzqbsuz

33 meetmeet meme afterafter thethe togatoga partyparty

44 lddsldds lsls zesdqzesdq SgdSgd snfzsnfz ozqsxozqsx

…… …………

Page 20: 汕职院 计算机网络专业

7.2.2 7.2.2 典型的单表代换典型的单表代换每个明文字母随机代换到一个密文字母(任意代每个明文字母随机代换到一个密文字母(任意代

换)换)密钥数目:密钥数目: 2626 !!

Page 21: 汕职院 计算机网络专业

单表代换的密码分析单表代换的密码分析————统计学统计学

Page 22: 汕职院 计算机网络专业

利用语言特征的密码分析利用语言特征的密码分析

22

UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMEUZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXAIZVUEPHZHMDZSHZOWSFPAPPDTSVPQUZWYMTSXAIZVUEPHZHMDZSHZOWSFPAPPDTSVPQUZWYMXUZUHSXXUZUHSX

EPYEPOPDZSZUFPOMBZWPFUPZHMDJUDTMOHMQEPYEPOPDZSZUFPOMBZWPFUPZHMDJUDTMOHMQ

P 13.33P 13.33 H 5.83H 5.83 F 3.33F 3.33 B 1.67B 1.67 C 0.00C 0.00

Z 11.67Z 11.67 D 5.00D 5.00 W 3.33W 3.33 G 1.67G 1.67 K 0.00K 0.00

S 8.33S 8.33 E 5.00E 5.00 Q 2.5Q 2.5 Y 1.67Y 1.67 L 0.00L 0.00

U 8.33U 8.33 V 4.17V 4.17 T 2.5T 2.5 I 0.83I 0.83 N 0.00N 0.00

O 7.5O 7.5 X 4.17X 4.17 A 1.67A 1.67 J 0.83J 0.83 R 0.00R 0.00

M 6.67M 6.67

Page 23: 汕职院 计算机网络专业

对应明文对应明文itwasdisclosedyesterdaythatseveralinformalbutdireitwasdisclosedyesterdaythatseveralinformalbutdire

ctcontactshavebeenmadewithpoliticalrepresentativctcontactshavebeenmadewithpoliticalrepresentativesofthevietconginmoscowesofthevietconginmoscow

It was disclosed yesterday that several informal but It was disclosed yesterday that several informal but direct contacts have been made with political direct contacts have been made with political representatives of the viet cong in moscowrepresentatives of the viet cong in moscow

Page 24: 汕职院 计算机网络专业

单表代换的缺点单表代换的缺点单表代换缺陷是:密文带有原始字母使用频率的单表代换缺陷是:密文带有原始字母使用频率的

一些统计学特征一些统计学特征对策:每个字母提供多种代换对策:每个字母提供多种代换

Page 25: 汕职院 计算机网络专业

7.2.3 7.2.3 非典型的多表代换非典型的多表代换———— PlayfairPlayfair 密码密码 算法基于一个由密钥词构成的算法基于一个由密钥词构成的 5×55×5 字母矩阵 字母矩阵 填写密钥单词填写密钥单词 用其他字母填写剩下的空缺用其他字母填写剩下的空缺

MM OO NN AA RR

CC HH YY BB DD

EE FF GG I/JI/J KK

LL PP QQ SS TT

UU VV WW XX ZZ

Page 26: 汕职院 计算机网络专业

PlayfairPlayfair 密码的加密码的加 // 解密步骤解密步骤加密加密

明文分组:明文分组: 22 个字母/组,相同字母间加填充个字母/组,相同字母间加填充字母字母

同行字母对加密:循环向右,同行字母对加密:循环向右, ei→FKei→FK同列字母对加密:循环向下,同列字母对加密:循环向下, cu→EMcu→EM,, xi→ASxi→AS其它字母对加密:矩形对角线字母,且按行排其它字母对加密:矩形对角线字母,且按行排

序,序, hs→BPhs→BP,, es→ILes→IL (或(或 JLJL ))解密解密

加密的逆向操作加密的逆向操作

Page 27: 汕职院 计算机网络专业

PlayfairPlayfair 密码安全性分析密码安全性分析明、密文字母不是一一对应关系明、密文字母不是一一对应关系安全性优于单表代替密码安全性优于单表代替密码在在 WW1WW1 中使用多年中使用多年虽然明文中字母的统计规律在密文中得到了降低,虽然明文中字母的统计规律在密文中得到了降低,

但密文中仍含有明文的部分结构信息但密文中仍含有明文的部分结构信息给定几百个字母,即分析出规律给定几百个字母,即分析出规律

Page 28: 汕职院 计算机网络专业
Page 29: 汕职院 计算机网络专业

7.2.4 7.2.4 非典型的多表代换非典型的多表代换———— HillHill 密码密码19291929 年由数学家年由数学家 Lester HillLester Hill 发明发明是是多表代换密码多表代换密码加密方法是由加密方法是由 mm 个线性方程决定:个线性方程决定:

cc11=(k=(k1111pp11+k+k1212pp22+k+k1313pp33)mod 26)mod 26

cc22=(k=(k2121pp11+k+k2222pp22+k+k1313pp33)mod 26)mod 26

cc33=(k=(k3131pp11+k+k3232pp22+k+k3333pp33)mod 26)mod 26

用列向量和矩阵表示为:用列向量和矩阵表示为:

26mod

3

2

1

333231

232221

131211

3

2

1

p

p

p

kkk

kkk

kkk

c

c

c

Page 30: 汕职院 计算机网络专业

HillHill 密码的加密码的加 // 解密过程解密过程

明文分组编码明文分组编码C≡KP mod 26C≡KP mod 26 ,其中,,其中, KK 为密钥矩阵,为密钥矩阵, PP、、 CC分别为明、密文列向量分别为明、密文列向量

加密加密 ::

解密解密 ::密文分组编码P≡K-1C mod 26 对密钥矩阵 K 的要求:在 mod 26下可逆 .

Page 31: 汕职院 计算机网络专业

加密:加密: paymoremoneypaymoremoney

密钥矩阵 K=

922

211821

51717

明文分组 P=“ pay mor emo ney”

y

a

p

24

0

15明文编码 P= =

1922

211821

51717

486

819

375

18

13

11

加密 C≡ Mod 26≡ ≡

C=“ LNS”全文加密后是: lnshdlewmtrw

17024

61715

1594

K - 1=

24

0

15

Page 32: 汕职院 计算机网络专业

解密解密 lnshdlewmtrw

密钥矩阵 K=

922

211821

51717

密文分组 C=“ lns hdl ewm trw”

s

n

l

18

13

11密文编码 C= =

4

0

15加密 C≡ Mod 26≡

P=“ pay”

17024

61715

1594

K - 1=

18

13

11

17024

61715

1594

Page 33: 汕职院 计算机网络专业

Hill 的安全性分析明、密文字母不是一一对应关系明、密文字母不是一一对应关系连续连续 mm 个明文替换成个明文替换成 mm 个密文个密文完全隐藏了单字母的频率特性完全隐藏了单字母的频率特性随着矩阵的增大,字母的统计规律进一步降低随着矩阵的增大,字母的统计规律进一步降低足以抗唯密文攻击,但容易被已知明文攻击破解足以抗唯密文攻击,但容易被已知明文攻击破解

数学可解出密钥数学可解出密钥

Page 34: 汕职院 计算机网络专业

7.2.5 典型的多表代换多表代换的共同点:多表代换的共同点:

采用单表代换规则采用单表代换规则多个代换表规则多个代换表规则密钥决定使用具体规则密钥决定使用具体规则

目的目的使得字母的频率分布更加使得字母的频率分布更加平坦平坦

典型例子典型例子VigenèreVigenère (维吉利亚)密码((维吉利亚)密码( 18581858 ))VernamVernam (唯尔南)密码((唯尔南)密码( 19181918 ))

Page 35: 汕职院 计算机网络专业

VigenèreVigenère (维吉利亚)密码(维吉利亚)密码

Page 36: 汕职院 计算机网络专业

加密过程加密过程 假设密钥假设密钥 kk ,明文,明文 pp ,则密文为,则密文为 kk行行 pp 列的元素:列的元素: zz

例如:例如: we are discovered save yourselfwe are discovered save yourself KK :: deceptivedeceptivedeceptivedeceptivedeceptivedeceptive PP :: wearediscoveredsaveyourselfwearediscoveredsaveyourself CC :: zicvtwqngrzgvtwavzhcqyglmgjzicvtwqngrzgvtwavzhcqyglmgj

加密算法描述:加密算法描述: ccii==(( ppii+k+kii)) mod26mod26 i=1i=1,, 22,,……,, nn ;; 说明:若明文长度大于说明:若明文长度大于 nn ,则,则 KK 重复使用。重复使用。

解密算法描述解密算法描述 PPii==(( ccii-k-kii)) mod26mod26 i=1i=1,, 22,,……,, nn ;;

Page 37: 汕职院 计算机网络专业

VigenèreVigenère 的攻击方法的攻击方法观察密文字母频率,如果与明文字母频率非常观察密文字母频率,如果与明文字母频率非常

接近,则可能是单表代换接近,则可能是单表代换

如果认为是采用维吉尼亚加密,则破译能否取如果认为是采用维吉尼亚加密,则破译能否取得进展取决于:能否判定密钥词的长度得进展取决于:能否判定密钥词的长度如何判定长度?观察上例如何判定长度?观察上例

如果知道了如果知道了 KK 的长度的长度 LL ,则上例中,,则上例中, 11,, 1010,, 19……19…… 为单表代换,以此类推为单表代换,以此类推

Page 38: 汕职院 计算机网络专业

VigenèreVigenère 的攻击方法的攻击方法 VigenèreVigenère 的改进:密钥生成系统的改进:密钥生成系统

KK :: deceptivedeceptivewearediscoveredsavwearediscoveredsav PP :: wearediscoveredsaveyourselfwearediscoveredsaveyourself CC :: zicvtwqngrzgvtwavzhcqyglmgjzicvtwqngrzgvtwavzhcqyglmgj

对改进的对改进的 VigenèreVigenère 的攻击:的攻击: PP和和 kk 具有相同的频率分布特征,则用具有相同的频率分布特征,则用 ee 加密加密 ee 的发生概的发生概

率接近率接近 0.127*0.1270.127*0.127 ,以此类推,以此类推

最终的反破译手只能是采用和最终的反破译手只能是采用和 PP 一样长的一样长的 kk

Page 39: 汕职院 计算机网络专业

VigenèreVigenère 密码的安全性密码的安全性

强度在于:每个明文字母对应着多个密文字母,强度在于:每个明文字母对应着多个密文字母,明、密文字母不是一一对应关系,字母的统计规明、密文字母不是一一对应关系,字母的统计规律进一步降低律进一步降低

VigenéreVigenére 本人建议:密钥与明文一样长本人建议:密钥与明文一样长观察上例:仍然保留了频率信息观察上例:仍然保留了频率信息

特例:当特例:当 kk1 1 == kk2 2 == … … == kkn n == kk时,是时,是 CaesarCaesar密码密码

Page 40: 汕职院 计算机网络专业

VernamVernam (唯尔南)密码(唯尔南)密码ci=pi kici=pi kipi=ci kipi=ci ki

关于关于 vernamvernam基于二进制基于二进制技术的关键在于构建技术的关键在于构建 KK 的方式的方式VernamVernam 提出使用连续磁带提出使用连续磁带

Page 41: 汕职院 计算机网络专业

7.2.6 7.2.6 一次一密一次一密与明文等长的随机密钥与明文等长的随机密钥安全强度取决于密钥的随机性安全强度取决于密钥的随机性理论上不可破理论上不可破实际上不可行实际上不可行

产生大量的随机密钥难产生大量的随机密钥难密钥分配与保护更难密钥分配与保护更难

Page 42: 汕职院 计算机网络专业

7.2.7 7.2.7 置换技术置换技术——栅栏密码(栅栏密码( Rail Fence cipherRail Fence cipher ))思想:以列(行)优先写出明文,以行(列)优先读出各思想:以列(行)优先写出明文,以行(列)优先读出各

字母作为密文字母作为密文例例 11 :先行后列:先行后列例例 22 :先列后行:先列后行

明文:明文: meet me after the toga partymeet me after the toga party写做写做 ::

m e m a t r h t g p r ym e m a t r h t g p r y e t e f e t e o a a te t e f e t e o a a t

读出密文为:读出密文为:MEMATRHTGPRYETEFETEOAATMEMATRHTGPRYETEFETEOAAT

Page 43: 汕职院 计算机网络专业

栅栏密码的改进栅栏密码的改进改进:带有密钥改进:带有密钥例:例:

KK ::PP ::

C:TTNAAPTMTSUOAODWCOIXKNLYPETZC:TTNAAPTMTSUOAODWCOIXKNLYPETZ

44 33 11 22 55 66 77

aa tt tt aa cc kk pp

oo ss tt pp oo nn ee

dd uu nn tt ii ll tt

ww oo aa mm xx yy zz

Page 44: 汕职院 计算机网络专业

再改进再改进再改进:重复加密,多步置换再改进:重复加密,多步置换例:例:

KK ::PP ::

C:NSCYAUOPTTWLTMDNAOIEPAXTTOKZC:NSCYAUOPTTWLTMDNAOIEPAXTTOKZ

44 33 11 22 55 66 77

tt tt nn aa aa pp tt

mm tt ss uu oo aa oo

dd ww cc oo ii xx kk

nn ll yy pp ee tt zz

Page 45: 汕职院 计算机网络专业

7.2.8 7.2.8 轮转机轮转机在现代密码之前,转轮密码是最广泛使用的复杂在现代密码之前,转轮密码是最广泛使用的复杂

的密码的密码广泛用在第二次世界大战中广泛用在第二次世界大战中

German Enigma, Allied Hagelin, Japanese PurpleGerman Enigma, Allied Hagelin, Japanese Purple实现了复杂多变的实现了复杂多变的多表代换多表代换密码,密码,多层加密多层加密采用一系列转轮,每一个都是一个代替表,转轮采用一系列转轮,每一个都是一个代替表,转轮

可以依次旋转加密每个字母可以依次旋转加密每个字母用用 33 个转轮就有 个转轮就有 262633=17576 =17576 代换表代换表

Page 46: 汕职院 计算机网络专业

23/4/21 06:03 西安电子科技大学计算机学院 46

Page 47: 汕职院 计算机网络专业
Page 48: 汕职院 计算机网络专业

7.2.9 7.2.9 隐写术隐写术隐藏信息的存在隐藏信息的存在

““藏头诗”藏头诗”字符标记字符标记用不可见的墨水用不可见的墨水打字机的色带校正打字机的色带校正

缺点缺点需要额外的付出来隐藏相对较少的信息需要额外的付出来隐藏相对较少的信息

Page 49: 汕职院 计算机网络专业

Dear George,Dear George,Greetings to all at oxford.many thanks for your letter and for Greetings to all at oxford.many thanks for your letter and for

the Summer examination package. All Entry Forms and Fees the Summer examination package. All Entry Forms and Fees Forms should be ready for final despaetch to the syndicate Forms should be ready for final despaetch to the syndicate by Friday 20th or at the very latest, I’m told.by the 21st. by Friday 20th or at the very latest, I’m told.by the 21st. Admin has improve here, though there’s room for Admin has improve here, though there’s room for improvvement still; just give us two or three more years and improvvement still; just give us two or three more years and we’llreally show you! Please don’t let these wretched 16t we’llreally show you! Please don’t let these wretched 16t proposals destroy sort of change, if implemented proposals destroy sort of change, if implemented immediately, would bring chaos.immediately, would bring chaos.

sincerely yourssincerely yours

Page 50: 汕职院 计算机网络专业

23/4/21 06:03 50

Page 51: 汕职院 计算机网络专业

7.3 7.3 现代密码学现代密码学古典密码学古典密码学

安全性取决于算法的保密安全性取决于算法的保密主要技术:代换和置换主要技术:代换和置换

现代密码学现代密码学安全性取决于密钥的保密安全性取决于密钥的保密主要技术:主要技术:

DES:DES: 代换、置换代换、置换AES:AES: 代换、置换、混淆(复杂代换)代换、置换、混淆(复杂代换)

Page 52: 汕职院 计算机网络专业

7.3.17.3.1 对称加密对称加密 传统密码传统密码 // 常规密码常规密码 // 私钥密码私钥密码 // 单钥密码单钥密码

conventional / conventional / private-keyprivate-key / single-key / single-key 发送方和接收方共享一个共同的密钥发送方和接收方共享一个共同的密钥

sender and recipient share a common keysender and recipient share a common key 所有的传统密码算法都是私钥密码所有的传统密码算法都是私钥密码 KerckhoffKerckhoff 原则原则 :: 系统的保密性不依赖于对加密体制系统的保密性不依赖于对加密体制

或算法的保密,而依赖于对密钥的保密。或算法的保密,而依赖于对密钥的保密。 2020 世纪世纪 7070 年代以前私钥密码是唯一类型年代以前私钥密码是唯一类型 至今仍广泛应用至今仍广泛应用

Page 53: 汕职院 计算机网络专业

对称加密的模型对称加密的模型(( Symmetric Cipher ModelSymmetric Cipher Model ))

Page 54: 汕职院 计算机网络专业

7.3.2 7.3.2 分组密码和流密码分组密码和流密码流密码模型:流密码模型:每次加密数据流的一位或一个字节

密钥流产生器

密钥 k

明文 m 密文 c

流密码体制模型

异或运算

Page 55: 汕职院 计算机网络专业

分组密码分组密码将一个明文组作为整体加密且通常得到的是与

之等长的密文组典型分组大小: 64位或 128位

分组密码的应用范围比流密码要广泛绝大部分基于网络的对称密码应用使用的是分

组密码

Page 56: 汕职院 计算机网络专业

7.3.3 DES7.3.3 DES 算法算法DESDES 是使用最广泛的加密体制,是使用最广泛的加密体制, 7777 年被美国国家年被美国国家

标准局采纳为信息处理标准。这个算法本身值得标准局采纳为信息处理标准。这个算法本身值得是是 DEADEA (数据加密算法)。(数据加密算法)。

Page 57: 汕职院 计算机网络专业

DESDES 算法的发展(算法的发展( 11 ))2020 世纪世纪 6060 年代,年代, IBMIBM 公司成立了由公司成立了由 Horst FeistelHorst Feistel 负负责的计算机密码学研究项目。责的计算机密码学研究项目。

19711971 年设计出了算法年设计出了算法 LUCIFERLUCIFER ,后来给出了修订版:,后来给出了修订版:Tuchman-MeyerTuchman-Meyer 。。

19731973 年,美国国家标准局年,美国国家标准局 NBSNBS 征求国家密码标准方征求国家密码标准方案,案, IBMIBM 提交了该算法。提交了该算法。

1977 1977 年正式颁布为数据加密标准(年正式颁布为数据加密标准( DES - Data DES - Data Encryption StandardEncryption Standard )。)。

1979 1979 年,美国银行协会批准使用 年,美国银行协会批准使用 DESDES。。

Page 58: 汕职院 计算机网络专业

DESDES 算法的发展(算法的发展( 22 ))1980 1980 年,年, DES DES 成为美国标准化协会 成为美国标准化协会 (ANSI) (ANSI) 标准。标准。1984 1984 年,年, ISO ISO 开始在 开始在 DES DES 基础上制定数据加密的基础上制定数据加密的国际标准。国际标准。

美国国家安全局美国国家安全局 NSANSA 每隔年对该算法进行评每隔年对该算法进行评估 ,估 , 19941994 年,决定年,决定 19981998年年 1212 月之后不再使用月之后不再使用DES DES 。。

现已经确定了选用现已经确定了选用 RijndaelRijndael 算法作为高级加密算法算法作为高级加密算法AESAES 。 。

Page 59: 汕职院 计算机网络专业

Feistel Feistel 密码结构密码结构 原理原理乘积密码:一次使用两个或以乘积密码:一次使用两个或以

上基本密码上基本密码 ,, 所得的密码强度大所得的密码强度大于所有单个密码的强度于所有单个密码的强度

特别地,特别地, FeistelFeistel 建议交替地使建议交替地使用代换和置换。这是用代换和置换。这是 ShannonShannon提出的交替使用提出的交替使用混淆混淆和和扩散扩散乘乘积密码的实际应用。积密码的实际应用。

第 i轮的输出: LEi = REi-1 REi = LEi-1 F(REi-1, ki)

Page 60: 汕职院 计算机网络专业

FeistelFeistel 的解密的解密

Page 61: 汕职院 计算机网络专业

DESDES 算法框架算法框架

Page 62: 汕职院 计算机网络专业

General depictionGeneral depiction

Page 63: 汕职院 计算机网络专业

细化细化

Page 64: 汕职院 计算机网络专业

分解:初始置换分解:初始置换

Page 65: 汕职院 计算机网络专业

分解:单轮变换分解:单轮变换

函数函数 FF

第 i 轮输入

第 i 轮输出

函数F

Page 66: 汕职院 计算机网络专业

Expansion: 32 -> 48S-box: 48 -> 32Permutation: 32 -> 32

分解:分解: FF函数函数

Page 67: 汕职院 计算机网络专业

分解:分解: FF函数函数

Page 68: 汕职院 计算机网络专业

分解:扩展置换分解:扩展置换 EE:: 32bit→48bit32bit→48bit

Page 69: 汕职院 计算机网络专业

分解:压缩置换(分解:压缩置换( SS盒):盒): 6bit→4bit , 48bit→32bit6bit→4bit , 48bit→32bit

Page 70: 汕职院 计算机网络专业

分解:分解: 88个个 SS盒盒

Page 71: 汕职院 计算机网络专业

分解:其中一个分解:其中一个 SS盒盒

8S

2110101b

21001

00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 1500 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15

00112233

13 02 08 04 06 15 11 01 10 09 03 14 05 00 12 0713 02 08 04 06 15 11 01 10 09 03 14 05 00 12 0701 15 13 08 10 03 07 04 12 05 06 11 00 14 09 0201 15 13 08 10 03 07 04 12 05 06 11 00 14 09 0207 11 04 01 09 12 14 02 00 06 10 13 15 03 05 0807 11 04 01 09 12 14 02 00 06 10 13 15 03 05 0802 01 14 07 04 10 08 13 15 12 09 00 03 05 06 1102 01 14 07 04 10 08 13 15 12 09 00 03 05 06 11

输入

输出

Page 72: 汕职院 计算机网络专业

分解:分解: PP 置换(置换( PP盒):盒): 32bit→32bit32bit→32bit

Page 73: 汕职院 计算机网络专业

分解:子密钥生成分解:子密钥生成

Page 74: 汕职院 计算机网络专业

分解:置换选择分解:置换选择 11 ,置换选择,置换选择 22

Page 75: 汕职院 计算机网络专业

分解:分解:循环移位

Page 76: 汕职院 计算机网络专业

DES 解密逆序使用密钥逆序使用密钥

Page 77: 汕职院 计算机网络专业

7.3.4 雪崩效应

明文或密钥的微小改变将对密文生成很大的影响。这是任何加密算法需要的一个好的性质

DES 满足严格雪崩满足严格雪崩准则(准则( 1—>50%1—>50% ))

Page 78: 汕职院 计算机网络专业

7.3.5 DESDES 的强度的强度 5656位密钥: 位密钥: 225656 = 7.2 x 10 = 7.2 x 1016 16 (( 穷举空间穷举空间 ))

DESDES 破译机破译机 ((DES Cracker) :: 19981998

计时攻击:利用加密算法或解密算法对于不同的输入所花计时攻击:利用加密算法或解密算法对于不同的输入所花的时间的细微的差异。的时间的细微的差异。

差分分析和线性分析差分分析和线性分析

Page 79: 汕职院 计算机网络专业

7.3.6 AES7.3.6 AESAESAES 是一种分组密码,用以取代是一种分组密码,用以取代 DESDES 的商业应用的商业应用比较两种分组密码:比较两种分组密码:

DES 64 56 FeistelDES 64 56 FeistelAES 128 128/192/256 AES 128 128/192/256 非非

Page 80: 汕职院 计算机网络专业

7.3.6.1 AES7.3.6.1 AES 起源起源 NISTNIST在在 9999 年发布了新版本年发布了新版本 DESDES 标准:标准: DESDES 仅能用于遗留的系仅能用于遗留的系

统,同时统,同时 3DES3DES将取代将取代 DESDES 成为新标准成为新标准 3DES3DES优点:优点: keykey长度足够长度足够 (112,168)(112,168);; DESDES 算法经过了长算法经过了长

时间的分析,未有比穷举攻击更有效的攻击方法时间的分析,未有比穷举攻击更有效的攻击方法 3DES3DES 缺点:软件实现的速度比较慢;分组长度缺点:软件实现的速度比较慢;分组长度 6464

NISTNIST在在 9797 年征集高级加密标准(年征集高级加密标准( AESAES ):安全性能不低于):安全性能不低于3DES3DES ,具有更好的执行性能,分组长度必须是,具有更好的执行性能,分组长度必须是 128128 ,支持密,支持密钥长度钥长度 128128、、 192192、、 256256

在在 20012001 年发布了最终标准:选择年发布了最终标准:选择 RijndaelRijndael 算法作为算法作为 AESAES 算(算(比利时密码学家比利时密码学家 joan daemen ,vicent rijmenjoan daemen ,vicent rijmen )法)法

Page 81: 汕职院 计算机网络专业

7.3.6.2 AES7.3.6.2 AES 的评估的评估 AESAES 的安全性:最短密钥是的安全性:最短密钥是 128128 ,穷举攻击不可能,重点,穷举攻击不可能,重点考虑密码分析考虑密码分析

成本:全世界免费使用,能广泛应用于各种实际应用,计成本:全世界免费使用,能广泛应用于各种实际应用,计算效率高算效率高

算法和执行特征:算法灵活;适用于软件和硬件实现;算算法和执行特征:算法灵活;适用于软件和硬件实现;算法简洁,容易分析法简洁,容易分析

rijndaelrijndael 算法的特性:分组长度和密钥长度可以为算法的特性:分组长度和密钥长度可以为128128,, 192192,, 256256 对所有已知的攻击免疫;对所有已知的攻击免疫; 在各种平台上执行速度快,代码紧凑;在各种平台上执行速度快,代码紧凑;设计简单设计简单

Page 82: 汕职院 计算机网络专业

7.3.7 3DES7.3.7 3DES3DES3DES :多重加密(多个密钥):多重加密(多个密钥)

22个个 key:112key:112 C=E(k1,D(k2,E(k1,p)))C=E(k1,D(k2,E(k1,p))) 33个个 key:key: C=E(k3,E(k2,E(k1,p)))C=E(k3,E(k2,E(k1,p)))

internetinternet 应用:应用: PGP,S/MIMEPGP,S/MIME

Page 83: 汕职院 计算机网络专业

7.3.8 RC47.3.8 RC4流密码流密码可变密钥长度,面向字节操作可变密钥长度,面向字节操作密码周期大于密码周期大于 1010100100

RSARSA 公司公司 19871987 年设计该密码并列为商业机年设计该密码并列为商业机密,密, 19941994年年 99月算法被匿名公开月算法被匿名公开

internetinternet 应用:应用: ssl/tslssl/tsl,, ieee802.11 WEPieee802.11 WEP强度:没有哪种方法对攻击使用足够长度密钥强度:没有哪种方法对攻击使用足够长度密钥(( 128128位)的位)的 RC4RC4 有效;有效; WEBWEB协议漏洞在于密钥协议漏洞在于密钥的产生途径有漏洞,通过修改密钥产生途径可避的产生途径有漏洞,通过修改密钥产生途径可避免,该攻击方法不适用于其他使用免,该攻击方法不适用于其他使用 RC4RC4 的应用的应用

Page 84: 汕职院 计算机网络专业

7.3.87.3.8 用对称密钥实现保密用对称密钥实现保密 安全隐患安全隐患

被动攻击和主动攻击:被动攻击和主动攻击: 比较各种载体的安全性:比较各种载体的安全性:

传输加密:链路加密和端到端加密传输加密:链路加密和端到端加密

密钥分配:密钥分配: 密钥由密钥由 AA 产生,亲自交给产生,亲自交给 BB 第三方产生密钥,亲自交给第三方产生密钥,亲自交给 AA和和 BB 如果如果 ABAB 之前使用过某密钥,用它来加密新密钥传送之前使用过某密钥,用它来加密新密钥传送 ABAB 与第三方与第三方 CC 有秘密渠道,有秘密渠道, CC 可以产生密钥后分别发送给可以产生密钥后分别发送给 AA和和 BB

。。 KDCKDC :密钥分配中心:密钥分配中心

Page 85: 汕职院 计算机网络专业

典型的典型的 KDCKDC 密钥分配模式密钥分配模式

Page 86: 汕职院 计算机网络专业

思考题思考题有人提出一种方法,可以用来确认你的密钥和对有人提出一种方法,可以用来确认你的密钥和对

方的是否相同。首先你产生一个与密钥等长的二方的是否相同。首先你产生一个与密钥等长的二进制串,并且用来和密钥异或,并将结果通过某进制串,并且用来和密钥异或,并将结果通过某渠道发出。对方将受到的位串与自己的密钥异或渠道发出。对方将受到的位串与自己的密钥异或,并将结果发回来。你将发回的结果与开始的随,并将结果发回来。你将发回的结果与开始的随机位串核对,就可以知道你的密钥是否与对方相机位串核对,就可以知道你的密钥是否与对方相同,而且整个过程没有发送密钥,对密钥是保密同,而且整个过程没有发送密钥,对密钥是保密的。这种方法有一个缺点,分析一下。的。这种方法有一个缺点,分析一下。

Page 87: 汕职院 计算机网络专业

7.3.9 7.3.9 随机数随机数 随机数的特性:随机性和不可预测性随机数的特性:随机性和不可预测性

随机性随机性 ::具有良好的统计特性,即分布一致性和独立性具有良好的统计特性,即分布一致性和独立性 不可预测:多用伪随机数不可预测:多用伪随机数

伪随机数发生器(伪随机数发生器( PRNGPRNG ))线性拟合发生器:线性拟合发生器: Xn+1=Xn+1=(( AXn+CAXn+C)) mod mmod m

解决:利用内部系统时间来修正随机数流解决:利用内部系统时间来修正随机数流 密码学方法:密码学方法: BBSBBS 发生器:发生器:

真随机数发生器:离子辐射,漏电容真随机数发生器:离子辐射,漏电容

Page 88: 汕职院 计算机网络专业

7.4 7.4 公钥密码学公钥密码学公钥密码学公钥密码学

密码学发展历史中最伟大的一次革命密码学发展历史中最伟大的一次革命 采用两个密钥:一个公钥,一个私钥采用两个密钥:一个公钥,一个私钥参与方不对等,所以是非对称的;参与方不对等,所以是非对称的;基于数论中的结论基于数论中的结论 是私钥密码的补充而不是代替是私钥密码的补充而不是代替

Page 89: 汕职院 计算机网络专业

对称密码体系的缺陷对称密码体系的缺陷 密钥分配问题:通信双方要进行加密通信,需要通过秘密密钥分配问题:通信双方要进行加密通信,需要通过秘密

的安全信道协商加密密钥,而这种安全信道可能很难实现的安全信道协商加密密钥,而这种安全信道可能很难实现;;

密钥管理问题:在有多个用户的网络中,任何两个用户之密钥管理问题:在有多个用户的网络中,任何两个用户之间都需要有共享的秘密钥,当网络中的用户间都需要有共享的秘密钥,当网络中的用户 nn很大时,需很大时,需要管理的密钥数目是非常大 。要管理的密钥数目是非常大 。

没有签名功能:当主体没有签名功能:当主体 AA 收到主体收到主体 BB 的电子文挡(电子数的电子文挡(电子数据)时,无法向第三方证明此电子文档确实来源于据)时,无法向第三方证明此电子文档确实来源于 BB 。。

Page 90: 汕职院 计算机网络专业

公钥密码体制及其误解公钥密码体制及其误解 公钥公钥 //双钥双钥 //非对称 密码都是指使用两个密钥非对称 密码都是指使用两个密钥 : :

公钥:可以对任何人公开的密钥,用于加密消息或验证签名。公钥:可以对任何人公开的密钥,用于加密消息或验证签名。

私钥:只能由接收者私存,用于解密消息或签名。私钥:只能由接收者私存,用于解密消息或签名。 非对称非对称

用于加密消息或验证签名的人不能进行消息的解密或消息的签名。用于加密消息或验证签名的人不能进行消息的解密或消息的签名。

三种误解三种误解 比传统密码更安全;比传统密码更安全; 传统密码已过时;传统密码已过时; 公钥密码分配非常简单公钥密码分配非常简单

Page 91: 汕职院 计算机网络专业

公钥密码体制示意图公钥密码体制示意图

Page 92: 汕职院 计算机网络专业

公钥密码体制:保密性和认证公钥密码体制:保密性和认证模型模型

Page 93: 汕职院 计算机网络专业

公钥密码的应用公钥密码的应用 分为三类分为三类 ::

加密加密 // 解密 解密 ((提供保密性提供保密性 )) 数字签名数字签名 ((提供认证提供认证 )) 密钥交换 密钥交换 (( 会话密钥会话密钥 ))

一些算法可用于上述三类,而有些只适用用于其中一类或一些算法可用于上述三类,而有些只适用用于其中一类或两类。两类。

Page 94: 汕职院 计算机网络专业

公钥密码的要求公钥密码的要求公私钥对产生在计算上容易;公私钥对产生在计算上容易; 加密在计算上容易;加密在计算上容易; 解密在计算上容易;解密在计算上容易; 已知公钥,求私钥在计算上不可行;已知公钥,求私钥在计算上不可行; 已知公钥和密文,恢复明文计算上不可性。已知公钥和密文,恢复明文计算上不可性。 加密和解密函数的顺序可以交换(附加条件)加密和解密函数的顺序可以交换(附加条件)

Page 95: 汕职院 计算机网络专业

公钥密码体制安全性分析公钥密码体制安全性分析 一样存在穷举攻击一样存在穷举攻击

使用的密钥一般都非常大使用的密钥一般都非常大 ( >512bits ) ( >512bits )

为了便于实现加解密,密钥又必须足够短。为了便于实现加解密,密钥又必须足够短。 公钥密码目前仅限与密钥管理和签名中。公钥密码目前仅限与密钥管理和签名中。

另外一种攻击方法:从给定的公钥计算出私钥的另外一种攻击方法:从给定的公钥计算出私钥的方法。方法。 到目前为止,还未在数学上证明对一特定公钥算法这种攻击是不到目前为止,还未在数学上证明对一特定公钥算法这种攻击是不

可行的。(包括可行的。(包括 RSARSA ))

公钥体制特有的攻击公钥体制特有的攻击 穷举消息攻击穷举消息攻击

Page 96: 汕职院 计算机网络专业

7.5 7.5 RSARSA

19771977由由 MITMIT的的 Rivest, Shamir Rivest, Shamir 和和 AdlemanAdleman 发明发明 已知的且被广泛使用的公钥密码方案已知的且被广泛使用的公钥密码方案 有限域中的乘方运算有限域中的乘方运算

乘方运算需要乘方运算需要 O((log n)O((log n)33) ) 操作操作 (( 容易的容易的 ) )

使用一些大的整数 使用一些大的整数 (( 例如例如 . 1024 bits). 1024 bits)

安全性基于大数的素因子分解的困难性安全性基于大数的素因子分解的困难性 素因子分解需要 素因子分解需要 O(e O(e log n log log nlog n log log n) ) 操作操作 ((困难困难的的 ) )

Page 97: 汕职院 计算机网络专业

RSARSA三剑客三剑客

Page 98: 汕职院 计算机网络专业

RSA RSA 密钥的建立密钥的建立 每一个用户通过以下方法产生一个公钥每一个用户通过以下方法产生一个公钥 //私钥对私钥对 : :

随机地选择两个大的素数随机地选择两个大的素数 p, q p, q 计算方案中的模数计算方案中的模数 n = p.qn = p.q

ø(n) = (p-1) (q-1) ø(n) = (p-1) (q-1) 随机地选择一个加密密钥随机地选择一个加密密钥 ee

满足满足 1< e < ø(n), gcd (e, ø(n)) = 1 1< e < ø(n), gcd (e, ø(n)) = 1 求解下面的方程,以得到解密密钥求解下面的方程,以得到解密密钥 d d

e.d ≡ 1 mod ø(n) and 0 e.d ≡ 1 mod ø(n) and 0 ≤ ≤ d ≤n d ≤n 公开公钥公开公钥 : PU = {e, n} : PU = {e, n} 保密私钥保密私钥 : PR = {d, n} : PR = {d, n}

Page 99: 汕职院 计算机网络专业

RSA RSA 的使用的使用 为了加密消息为了加密消息 MM ,发送方,发送方 ::

获得接收方的公钥 获得接收方的公钥 PU = { e, n } PU = { e, n } 计算计算 : C = M: C = Mee mod n, mod n, 其中其中 0 0 ≤ ≤ M < nM < n

为了解密密文为了解密密文 CC ,接收者,接收者 :: 使用自己的私钥使用自己的私钥 PR = { d, n } PR = { d, n } 计算计算 : M = C: M = Cdd mod n mod n

消息消息 MM 一定要比模数 一定要比模数 nn小 小 (( 如果需要的话,可以如果需要的话,可以进行分组进行分组 ))

Page 100: 汕职院 计算机网络专业

23/4/21 西安电子科技大学计算机学院 100

RSARSA 举例举例 – – 密钥的建立密钥的建立1.1. 选择素数选择素数 : : p p = 17 & = 17 & q q = 11= 11

2.2. 计算 计算 n n = = p q p q =17=17 x x 11 = 11 = 187187

3.3. 计算计算 ø(ø(nn) = () = (p–p–1) (1) (q-q-1) = 161) = 16 x x 10 = 16010 = 160

4.4. 选择选择 e: e: gcd(e, 160) = 1; gcd(e, 160) = 1; 选择 选择 e e = 7= 7

5.5. 确定确定 d:d: d e = d e = 1 mod 160 1 mod 160 且且 d d < 160 < 160

d = 23 d = 23 因为因为 23 23 x x 7=161= 107=161= 10xx160+1160+1

6.6. 公钥 公钥 PU = { 7, 187 }PU = { 7, 187 }

7.7. 私钥 私钥 PR = { 23, PR = { 23, 187 }187 }

Page 101: 汕职院 计算机网络专业

23/4/21 西安电子科技大学计算机学院 101

RSA RSA 举例举例 – – 加密加密 //加密加密明文消息明文消息 M = 88 ( M = 88 ( 注意注意 88 < 187)88 < 187)

加密加密 ::

C = 88C = 8877 mod 187 ≡ 11 mod 187 ≡ 11

解密解密 ::

M = 11M = 112323 mod 187 ≡ 88 mod 187 ≡ 88

Page 102: 汕职院 计算机网络专业

23/4/21 西安电子科技大学计算机学院 102

RSA RSA 密钥的产生密钥的产生

RSARSA 的用户必须的用户必须 :: 随机确定两个素数随机确定两个素数 p, q p, q 选择选择 ee或或 dd ,并求出另一个,并求出另一个

素数 素数 p, q p, q 一定不能从一定不能从 n = p . qn = p . q轻易得到轻易得到 意味着数要足够大意味着数要足够大 典型地用猜测或可能性测试(典型地用猜测或可能性测试( Miller-Miller-

RabinRabin ))指数指数 e, d e, d 是互逆的 (欧几里得扩展算法)是互逆的 (欧几里得扩展算法)

Page 103: 汕职院 计算机网络专业

7.6 7.6 公钥密码体制的公钥分配公钥密码体制的公钥分配公钥分配方法:公钥分配方法:

公开发布公开发布公开可访问目录公开可访问目录公钥授权公钥授权公钥证书公钥证书

Page 104: 汕职院 计算机网络专业

公钥的公开发布公钥的公开发布

Page 105: 汕职院 计算机网络专业

公开可访问的目录公开可访问的目录

Page 106: 汕职院 计算机网络专业

公钥授权公钥授权

Page 107: 汕职院 计算机网络专业

公钥证书公钥证书

Page 108: 汕职院 计算机网络专业

7.7 7.7 公钥体系的应用:分配密钥公钥体系的应用:分配密钥简单的秘密钥分配(简单的秘密钥分配( 19791979由由 MerkleMerkle提出)提出)

A A 产生一个公钥对产生一个公钥对 A A 发送自己的标识和公钥给 发送自己的标识和公钥给 BB B B 产生一个会话密钥,并用 产生一个会话密钥,并用 A A 的公钥加密后的公钥加密后

发送给 发送给 AA A A 解密会话密钥解密会话密钥

问题是容易受到主动攻击,而通信双方却毫无察问题是容易受到主动攻击,而通信双方却毫无察觉。觉。

Page 109: 汕职院 计算机网络专业

应用:分配密钥应用:分配密钥具有保密性和真实性的密钥分配:假设双发已安具有保密性和真实性的密钥分配:假设双发已安

全交换了各自的公钥全交换了各自的公钥

Page 110: 汕职院 计算机网络专业

应用:分配密钥应用:分配密钥 混合方式的密钥分配混合方式的密钥分配

保留私钥配发中心保留私钥配发中心 ( KDC )( KDC ) 公钥公钥用于分配主密钥用于分配主密钥 每用户与每用户与 KDCKDC 共享一个共享一个主密钥主密钥 用主密钥分配用主密钥分配会话密钥会话密钥

在大范围分散用户的情况下尤其有用在大范围分散用户的情况下尤其有用 三层结构三层结构 基本依据基本依据

性能性能 向后兼容性向后兼容性 : : 只需要花很小的代价,我们就可以很容易将混合只需要花很小的代价,我们就可以很容易将混合

方法用于现有的方法用于现有的 KDCKDC 中。中。

Page 111: 汕职院 计算机网络专业

7.8 7.8 消息认证和消息认证和 HashHash函数函数 对认证的需求:可能的攻击对认证的需求:可能的攻击

1. 1. 泄密泄密 2. 2. 传输分析传输分析 ( ( 面向连接:频率、持续时间,无连接:面向连接:频率、持续时间,无连接:消息的数量和长度)消息的数量和长度)

3. 3. 伪装伪装 4. 4. 内容修改(插入、删除、转换和修改)内容修改(插入、删除、转换和修改) 5. 5. 顺序修改(插入、删除和重新排序)顺序修改(插入、删除和重新排序) 6. 6. 计时修改(延时和重放)计时修改(延时和重放) 7. 7. 发送方否认发送方否认 8. 8. 接收方否认接收方否认

Page 112: 汕职院 计算机网络专业

7.8.1 7.8.1 消息认证和数字签名 消息认证和数字签名 消息认证:验证所收到的消息消息认证:验证所收到的消息确实确实是来自真实的发送是来自真实的发送

方且未被修改的消息,它也可验证消息的顺序和及时方且未被修改的消息,它也可验证消息的顺序和及时性。性。

数字签名:是一种数字签名:是一种认证技术认证技术,其中的一些方法可用来,其中的一些方法可用来抗发送方否认攻击。(接收者可验证但不能伪造)抗发送方否认攻击。(接收者可验证但不能伪造)

消息认证 数字签名

Page 113: 汕职院 计算机网络专业

7.8.2 7.8.2 认证函数认证函数两层:产生认证符 + 验证两层:产生认证符 + 验证产生认证符的函数类型:产生认证符的函数类型:

消息加密:消息的密文作为认证符。消息加密:消息的密文作为认证符。消息认证码:消息和密钥的函数,产生定长的消息认证码:消息和密钥的函数,产生定长的值作为认证符。 值作为认证符。 MAC: message authentication codeMAC: message authentication code

HashHash函数:将任意长消息映射为定长的函数:将任意长消息映射为定长的 hashhash值作为认证符。值作为认证符。

Page 114: 汕职院 计算机网络专业

114

7.8.2.1 7.8.2.1 消息加密消息加密

消息加密也能提供一种认证的方法消息加密也能提供一种认证的方法

对称密码,既可以提供认证又可以提供保密性,对称密码,既可以提供认证又可以提供保密性,但不是绝对的。但不是绝对的。 只有消息具有适当的结构、冗余或含有校验和,只有消息具有适当的结构、冗余或含有校验和,

接收方才可能对消息的任何变化进行检测。接收方才可能对消息的任何变化进行检测。 否则,认证难以完成。否则,认证难以完成。

Page 115: 汕职院 计算机网络专业

115

消息加密消息加密

公钥体制中公钥体制中 :: 加密不能提供对发送方的认证(公钥是公开的)加密不能提供对发送方的认证(公钥是公开的) 发送方可用自己的私钥进行签名发送方可用自己的私钥进行签名 接收方可用发送方的公钥进行验证接收方可用发送方的公钥进行验证 保密性和可认证性 保密性和可认证性

Page 116: 汕职院 计算机网络专业

116

Page 117: 汕职院 计算机网络专业

117

7.8.2.2 7.8.2.2 消息认证码 消息认证码 (MAC)(MAC)

一种认证技术一种认证技术 利用密钥来生成一个固定长度的短数据块(利用密钥来生成一个固定长度的短数据块( MACMAC ),并),并

将该数据块附加在消息之后。将该数据块附加在消息之后。 MACMAC 的值依赖于消息和密钥的值依赖于消息和密钥

MAC = CMAC = Ckk(M)(M)

MACMAC 函数于加密类似,但函数于加密类似,但 MACMAC 算法算法 不要求不要求可逆性,而加密算法必须是可逆的。可逆性,而加密算法必须是可逆的。

接收方进行同样的接收方进行同样的 MACMAC 码计算并验证是否与发送过来的码计算并验证是否与发送过来的MACMAC 码相同码相同

Page 118: 汕职院 计算机网络专业

118

Message Authentication CodeMessage Authentication Code

Page 119: 汕职院 计算机网络专业

119

MAC MAC 特性特性 MACMAC 码是一个密码校验和码是一个密码校验和

MAC = CMAC = CKK(M)(M)

消息消息 MM 的长度是可变的的长度是可变的 密钥密钥 KK 是要保密的,且收发双方共享。是要保密的,且收发双方共享。 产生固定长度的认证码产生固定长度的认证码

MACMAC 算法是一个多对一的函数算法是一个多对一的函数 多个消息对应同一多个消息对应同一 MACMAC 值值 但是找到同一但是找到同一 MACMAC 值所对应的多个消息应值所对应的多个消息应该是该是困难困难的。的。

Page 120: 汕职院 计算机网络专业

120

对对 MACsMACs 的要求:的要求: 抗多种攻击(例如穷举密钥攻击)抗多种攻击(例如穷举密钥攻击) 且满足且满足 ::

1.1. 已知一条消息和已知一条消息和 MAC, MAC, 构造出另一条具构造出另一条具有同样有同样 MACMAC 的消息是不可行的的消息是不可行的

2.2. MACsMACs 应该是均匀分布的应该是均匀分布的3.3. MACMAC 应该依赖于消息的所有比特位应该依赖于消息的所有比特位

Page 121: 汕职院 计算机网络专业

121

Page 122: 汕职院 计算机网络专业

122

7.8.2.3 Hash7.8.2.3 Hash 函数函数浓缩任意长的消息浓缩任意长的消息 MM 到一个固定长度的取到一个固定长度的取值 值 h = H(M)h = H(M)

通常假设通常假设 hashhash 函数是公开的且不使用密钥函数是公开的且不使用密钥(( MACMAC 使用密钥)使用密钥)

HashHash函数用户检测对消息的改变函数用户检测对消息的改变 多种工作方式多种工作方式 常用于产生数字签名常用于产生数字签名

Page 123: 汕职院 计算机网络专业

123

保密性和认证性

认证性

认证性和数字签名

Page 124: 汕职院 计算机网络专业

124

保密性、认证性和数字签名

认证性

Page 125: 汕职院 计算机网络专业

125

HashHash函数和数字签名函数和数字签名

Page 126: 汕职院 计算机网络专业

126

对对 HashHash函数的要求函数的要求1.1. 可用于任何尺寸的消息可用于任何尺寸的消息 MM2.2. 产生固定长度的输出 产生固定长度的输出 hh3.3. 对任何消息对任何消息 MM ,, 计算计算 h=H(M)h=H(M) 是容易的。是容易的。4.4. 给定 给定 h h ,计算满足,计算满足 H(x)=hH(x)=h的的 xx 在计算上是不可行的在计算上是不可行的

• 单向性单向性5.5. 给定给定 xx ,计算满足,计算满足 H(y)=H(x)H(y)=H(x)的的 yy 在计算上是不可行的在计算上是不可行的

• 抗弱碰撞性(抗弱碰撞性( weak collision resistanceweak collision resistance ))6.6. 找到任何满足 找到任何满足 H(y)=H(x)H(y)=H(x) 的偶对( 的偶对( x,yx,y ),在计算上是不),在计算上是不

可行的。 可行的。 • 抗碰撞性(抗碰撞性( strong collision resistancestrong collision resistance ))

Page 127: 汕职院 计算机网络专业

127

简单简单 HashHash函数举例函数举例

最简单的最简单的 HashHash函数:函数: 分组之后按位异或分组之后按位异或已有的算法已有的算法

MD4MD4 MD5MD5 SHA-1SHA-1 SHA-256SHA-256 SHA-SHA-