Presentation is loading. Please wait.

Presentation is loading. Please wait.

第11讲 密码学与信息加密 此为封面页,需列出课程编码、课程名称和课程开发室名称。

Similar presentations


Presentation on theme: "第11讲 密码学与信息加密 此为封面页,需列出课程编码、课程名称和课程开发室名称。"— Presentation transcript:

1 第11讲 密码学与信息加密 此为封面页,需列出课程编码、课程名称和课程开发室名称。
第11讲 密码学与信息加密 此为封面页,需列出课程编码、课程名称和课程开发室名称。 要求:每个子课程(6位编码的课程)要求做一个这样的胶片,胶片文件命名为“课程编码 课程名称.ppt”。 此页胶片仅在授课时使用,胶片+注释中不使用。 封面页按产品分为4个,各产品使用自己的封面,把其他封面直接删除即可。

2 本讲主要内容 密码学基础 DES对称加密体制 RSA公钥密码体制 PGP加密 数字签名 数字水印 PKI 2
此页为了让学员和老师对课程安排有一个大致的了解。 此页列出本课程的主要培训标题,列出每章的名称即可。如果章下面的节不多,在此页可以一并列出。 此页胶片仅在授课时使用,胶片+注释中有专门的目录和标题,不需要重复使用该页面。   2      

3 §1 密码学概论主要内容 密码体制基本形式 移位密码 替换密码 仿射密码 一次一密方案 密码分析 3
§1 密码学概论主要内容 密码体制基本形式 移位密码 替换密码 仿射密码 一次一密方案 此页为了让学员和老师对课程安排有一个大致的了解。 此页列出本课程的主要培训标题,列出每章的名称即可。如果章下面的节不多,在此页可以一并列出。 此页胶片仅在授课时使用,胶片+注释中有专门的目录和标题,不需要重复使用该页面。 密码分析   3      

4 §1 密码体制基本形式 加密通信的模型 Alice 加密机 解密机 Bob 安全信道 密钥源 Oscar x y k1 k2 不安全信道
密码分析 密码学的目的:Alice和Bob两个人在不安全的信道上进行通信,而破译者Oscar不能理解他们通信的内容。   4      

5 §1 密码体制基本形式 密码系统的定义: 5 密码体制是这样的一个5元组 {M,C,K,E,D}, 且满足如下的条件:
4. 满足以下定义:   5      

6 §1 密码体制基本形式 密码系统的定义: 并且有: 注意:所有算法的安全性基于密钥的安全性,而不是基于算法细节的安全性,即算法可以公开! 6
加密: 解密: 并且有: 注意:所有算法的安全性基于密钥的安全性,而不是基于算法细节的安全性,即算法可以公开!   6      

7 §1 密码体制基本形式 1)Alice要将明文X在不安全信道上发给Bob,
设X=x1 x2… xn ,其中 xi∈P , Alice用加密算法ek   作yi=ek(xi) (1≤ i≤ n),结果的密文是 Y=y1y2…yn 在信道上发送,Bob收到后解密:xi=dk(yi) 得到明文X=x1 x2… xn。 2)加密函数ek必须是单射函数,就是一对一的函数。 3)若P=C,则ek为一个置换。 4)好的密钥算法是唯密钥而保密的。 5)若Alice和Bob在一次通信中使用相同的密钥,则这个 加密体制为对称的,否则称为非对称的。   7      

8 ----密码学相关术语 8 消息(Message)被称为明文(PlainText);
用某种方法伪装消息以隐藏它的内容的过程称为加密(Encryption); 被加密的消息称为密文(Cipher); 把密文转变为明文的过程称为解密(Decryption); 使消息保密的技术和科学叫做密码编码学(Cryptography); 从事此行的叫密码编码者(Cryptographer); 密码分析者是从事密码分析的专业人员(cryptanalyst); 破译密文的科学和技术密码分析学(Cryptanalysis); 密码学(Cryptology)作为数学的一个分支,包括密码编码学和密码分学两部分,密码编码技术和密码分析技术是相互依存、相互支持、密不可分的两个方面。   8      

9 密码系统(Cryptography System)的分类
§1 密码体制基本形式 密码系统(Cryptography System)的分类 1、用于转换纯文本到密码的类型 替代 (substitution) 移位 (transposition) 2、密钥的种类 对称,单密钥,秘密密钥 不对称,双密钥, 公开密钥加密 3、以处理纯文本文件的方法 分组密码(block cipher) 流密码(stream cipher)   9      

10 ----根据密钥的种类分类: 相同 不同 明文 abc 加密器 密文 解密器 明文 abc 加密器 密文 解密器 10 单钥体制(对称密码)
解密器 相同 单钥体制(对称密码)   K1=K2 双钥体制(非对称密码)   K1≠K2 明文 abc 加密器 密文 解密器 不同   10      

11 密码学及相关概念 密码编码学是密码体制的设计学,而密码分析学则是在未知密钥的情况下从密文推演出明文或密钥的技术。密码编码学与密码分析学合起来即为密码学 如果不论截取者获得了多少密文,但在密文中都没有足够的信息来惟一地确定出对应的明文,则这一密码体制称为无条件安全的,或称为理论上是不可破的。   但是在无任何限制的条件下,目前几乎所有实用的密码体制均是可破的。因此,人们关心的是要研制出在计算上(而不是在理论上)是不可破的密码体制。如果一个密码体制中的密码不能被可以使用的计算资源破译,则这一密码体制称为在计算上是安全的。   11      

12 §1 密码体制基本形式 密码体制的特征 : 对密文破译攻击极为困难; 在有效地防破译的前提下,密钥长度应很小;
加密、解密的操作流程简便易行; 错码率及错码的扩散程度低; 加密后原信息的长度不受影响。   12      

13 §1 密码体制基本形式 近代密码学发展 数据加密标准DES(Data Encryption Standard)
公开密钥密码体制(public key crypto-system) 成为近代密码学发展史上的两个重要里程碑。 一个密码系统采用的基本工作方式称为密码体制。 密码体制从原理上可分为两大类:   对称密钥密码体制(单钥、常规)   非对称密钥密码体制(双钥、公开)   13      

14 对称(常规)密码体制 14 在发端,明文X用加密算法E和加密密钥K得到密文 CEK (P)
在传送过程中可能出现密文截取者。截取者又称为攻击者或入侵者。 P’ 或 K’ 在收端,利用解密算法D和解密密钥K,解出明文为 DK(C) DK(EK(P)) P   14      

15 对称密钥密码体制 k k 15 明文 密文 解密后的明文 加密 E 解密 D 密 钥 产生器 加密和解密表示为: EK(M)=C
明文 密文 解密后的明文 加密 解密 密 钥 产生器 加密和解密表示为: EK(M)=C DK(C)=M 解密算法是加密算法的逆运算; 加密密钥和解密密钥相同; 加密算法强度高; 密钥传递需专用通道;   15      

16 对称密钥密码体制 由对称算法可分为两类: 序列算法(stream algorithm)或序列密码(stream cipher):明文中的单个位(有时对字节)运算的算法。 分组算法(block algorithm)或分组密码( block cipher):把明文信息分割成块结构,逐块予以加密和解密;块的长度由算法设计者预先确定。   16      

17 公开密钥密码体制 每个用户产生一对密钥PK和SK 加密密钥(即公开密钥)PK 公开 解密密钥(即私有密钥)SK 保密
解密密钥(即私有密钥)SK 保密 加密算法E和解密算法D也都是公开 私有密钥SK由公开密钥PK决定,但 却不能根据PK计算出SK   17      

18 公开密钥密码体制 P’ 破译者 K’ 加密 算法 解密 算法 发方 收方 密钥通道 密钥源 公开密钥体制模型   18      

19 两种密码体制的对比 单钥密码体制中,收发双方使用同一密钥,系统的保密性主要取决于密钥的安全性。系统的密钥管理、传输和分配是一个重要且十分复杂的问题。体制的优点是:保密强度高,运算速度快;缺点是密钥数目大,密钥分配困难,无法实现不可否认服务。 公钥密码体制中,加密密钥KU是公开的,解密密钥KP必须保密。公钥体制的密钥产生、分配和管理相对简单,尤适用于计算机网络系统中。   公钥体制的特点:实现信息公开加密,实现不可否认服务,但缺点是加解密运算复杂其速度较慢。   19      

20 密码学应用 信息加密 信息认证 数字签名 密钥管理 20 用加密来保护信息 采用数字证书来进行身份鉴别 数字指纹
采用密码技术对发送信息进行验证 利用数字签名来完成最终协议 信息加密 信息认证 数字签名 密钥管理   20      

21 ----密码学数据加密 我需要转帐,这是我的帐号和密码。 田景成 业务服务器 成景田
38ighwejb.。 成景田 这是什么?! 我们用相关的密码协议建立一个安全的加密信道,这个加密信道的密钥只有你我知道。   21      

22 ----密码学数据加密 加密 解密 明文 密文 K 加密 解密 K K的密文 B公钥 B私钥   22      

23 ----密码学身份认证 我是田景成,你是网上银行服务器吗? 嗨,我是网上银行服务器。 你真的是田景成吗? 田景成 你真的是网上银行服务器吗?
业务服务器 田景成 使用对方公钥验证对方签名确定对方身份。   23      

24 ----基于非对称密钥的挑战应答方式 拥有正确私钥,则认为其声明身份与证书中的身份一致。 田景成 24 1、获得公钥(数字证书);
认证服务器 2、请求登录 田景成 3、随机数r 4、ED(r)+证书P 5、DP(ED(r))=r’ 6、比较r和r’   24      

25 ----密码学数据完整性 业务服务器 田景成 转帐200万到关晓阳的帐号。 转帐100万到关晓阳的帐号,转帐100万到成景田的帐号。 篡改
有了签名,改了可能会被人发现。 田景成,你传送的数据在传送过程中被修改过,请重新发送你的要求。   25      

26 ----密码学数据完整性 明文摘要 数字摘要算法 散列算法 明文摘要◎ 相等? A公钥 加密 摘要的密文 A私钥 明文 解密   26      

27 ----密码学不可否认性和审计 我的钱呢? 转走了! 银行职员 田景成 转哪去了? 您自己忘了! 岂有此理,我要告你们!你们没有我的签名。
成景田 什么也没捞到! 我们查看了系统审计库,你的200万转到了关晓阳帐号。这是所有交易的数字签名。   27      

28 密码学的作用总结 1、机密性:提供只允许特定用户访问和阅读信息,任何非授权用户对信息都不可理解的服务[通过数据加密实现]
2、鉴别:提供与数据和身份识别有关的服务。[通过数据加密、数据散列或数字签名来实现] 3、数据完整性:提供确保数据在存储和传输过程中不被未授权修改(窜改、删除、插入和重放等)的服务。[通过数据加密、数据散列或数字签名来实现] 4、抗否认性:提供阻止用户否认先前的言论或行为的服务。[通过对称加密或非对称加密,以及数字签名等,并借助可信的注册机构或证书机构的辅助,提供这种服务]   28      

29 §2 移位密码 移位密码是采用移位法进行加密的。它把明文中的字母重新排列,本身不变,但位置变了,移位密码是靠重新安排字母的次序,而不是隐藏他们。   常见的移位密码主要有:  倒置法  列换位法  矩阵换位法。   29      

30 §2 移位密码---倒置法 (1)完全倒置法 把明文中的字母按顺序倒过来写,然后以固定长度的字母组发送或记录。
明文:computer systems 密文:smet sysr etup moc (2)分组倒置法 把明文中的字母按固定长度分组后每组字母串倒过来写。 分组:comp uter syst ems 密文:pmoc retu tsys sme   30      

31 §2 移位密码---换位法 (1)列换位法 将明文字符分割成为若干个(例如5个)一行的分组,并按一组后面跟着另一组的形式排好,形式如下:
c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 …… 最后,不全的组可以用不常使用的字符或a,b,c…填满。 密文是取各列来产生的: c1c6…c2c7…c3c8….c4c9…. c5c10….   31      

32 §2 移位密码---换位法 例:明文:WHAT YOU CAN LEARN FROM THIS BOOK 进行排列: W H A T Y
O K X X X 则密文为:WOFHOHURIKACOSXTAMBXYNTOX 这里的密钥是数字5。   32      

33 §2 移位密码---换位法 (2)矩阵换位法 把明文中的字母按给定的顺序安排在一矩阵中,然后用 另一种顺序选出矩阵的字母来产生密文。
例:明文ENGINEERING按行排在3 × 4矩阵中,最后一行 不全用ABC…填充,如下所示。 给定置换 1 2 3 4 E N G I R A   33      

34 §2 移位密码---换位法 现在根据给定的置换,按第2列、第4列、第1列、第3列的次序排列,就得到密文: NIEGERNENAIG
  在这个加密方案中,密钥就是矩阵的行数m和列数n, 即m*n=3*4,以及给定的置换矩阵: 也就是:k=(m*n,f) 1 2 3 4 N I E G R A   34      

35 §2 移位密码---换位法 其解密过程是将密文根据3*4矩阵,按行、列的顺序写出,
再根据给定置换产生新的矩阵,恢复明文为:ENGINEERING 1 2 3 4 N I E G R A 1 2 3 4 E N G I R A   35      

36 §3 替换密码 替换密码是使用替换法进行加密所产生的密码。替换密码
就是明文中每一个字符被替换成密文中的另外一个字符,代替后的各字母保持原来位置。接收者对密文进行逆替换就恢复出明文来。在替换法加密体制中,使用了密钥字母表。它可以由明文字母表构成,也可以由多个字母表构成。 在传统密码学中,有四种类型的代替密码: (1)单表(简单)替换密码   就是明文的一个字符用相应的一个密文字符替换。加密过程中是从明文字母表到密文字母表的一一映射。 例:恺撒(Caesar)密码。   36      

37 §3 替换密码 (2)同音(多名码)替换密码   与简单替换密码系统相似,唯一的不同是单个字符明文可以映射成密文的几个字符之一,同音替换的密文并不唯一。 (3)多字母组替换密码   字符块被成组加密,例如“ABA”可能对应“RTQ”,ABB可能对应“SLL”等。例:Playfair密码。 (4)多表替换密码   由多个单字母密码构成,每个密钥加密对应位置的明文。 例:维吉尼亚密码。   37      

38 §3.1 单表替换密码 1、恺撒(Caesar)密码
§3.1 单表替换密码 1、恺撒(Caesar)密码   又叫循环移位密码。它的加密方法就是把明文中所有字母都用它右边的第k个字母替代,并认为Z后边又是A。   这种映射关系表示为如下函数: F(a)=(a+k) mod 26 其中:a表示明文字母;k为密钥。   38      

39 §3.1 单表替换密码 设k=3;则有 明文:a b c d e f g h i j k l m n o p q r s t u v w x y z 密文:d e f g h i j k l m n o p q r s t u v w x y z a b c 对于明文P=computer systems 有密文C=frpsxwhuv bvwhpv 显然,由密文C恢复明文非常容易,只要知道密钥K,就可构造一张映射表。其加密和解密均可根据此映射表进行。 凯撤密码的优点是密钥简单易记。但它的密码文与明码文的对应关系过于简单,密钥空间为26,故安全性很差。   39      

40 §3.1 单表替换密码 2、密钥短语密码   选择一组有助于记忆的英文字符串作为密钥,从中筛选无重复的字符按原顺序记下字符串,写在明文字母表下,然后将未出现在字符串的字母按顺序依次写在密钥短语后。   如选择密钥短语network security,则有: 明文:a b c d e f g h i j k l m n o p q r s t u v w x y z 密文:n e t w o r k s c u i y a b d f g h j l m p q v x z    若明文为data access    则密文为wnln nttojj 除了凯撒密码,在其他的单表替代法中,有的字母表被打乱, 用长的密钥字,则距离变大,因而便难于判断是何文字密钥。   40      

41 §3.2 多表替换密码 多表替换密码是一种用多组替换表依次对明文消息的字母进行替换的加密方法。
§3.2 多表替换密码 多表替换密码是一种用多组替换表依次对明文消息的字母进行替换的加密方法。 维吉尼亚(Vigenere)密码是一种常用的多表替换密码。 这种替代法是循环地使用有限个字母来实现替代的一种方法。这种加密的加密表是以字母表移位为基础把26个英文字母进行循环移位,排列在一起,形成26×26的方阵。该方阵被称为维吉尼亚表。采用的算法为  F(a)=(a+Bi)mod (其中 i=(1,2,…,26)) 优点:能抵抗简单的字母频率分析攻击。   41      

42 §3.2 Vigenere密码表   42      

43 §3.2 多表替换密码---Vigenere密码
加密过程: 以明文字母选择列,以密钥字母选择行,两者的交点就是加密生成的密文。 解密过程: 以密钥字母选择行,从中找到密文字母,密文字母所在列的列名即为明文字母。 例:以your为密钥,加密明文how are you 明文P=h o w a r e y o u 密钥K=y o u r y o u r y 密文C=f c q r p s s f s   43      

44 §3.3 多字母替换密码 多字母替换密码每次加密一组(两个以上)字母串。 Playfair密码为此类密码,其密钥是由25个英文字母
§3.3 多字母替换密码 多字母替换密码每次加密一组(两个以上)字母串。 Playfair密码为此类密码,其密钥是由25个英文字母 (j与i相同)组成的5阶方阵。密钥方阵P导出取决于给定密钥,重复不写,余下按字母顺序填充。 明文划分如下:将明文字母串按两个字母一组进行分组,每组中的两个字母不同。每一对明文字母 m1和m2,对应的密文为c1和c2。 每一对明文字母 m1和m2,按下面的规则进行加密:   44      

45 §3.3 多字母替换密码 (1)若m1和m2在P的同一行,则密文c1和c2分别是m1和m2右边的字母。第一列看作最后一列的右边。
§3.3 多字母替换密码 (1)若m1和m2在P的同一行,则密文c1和c2分别是m1和m2右边的字母。第一列看作最后一列的右边。 (2)若m1和m2在P的同一列,则密文c1和c2分别是m1和m2下边的字母。第一行看作最后一行的下边。 (3)若m1和m2在P的不同行、不同列,则密文c1和c2是 m1和m2确定的长方形的另两个顶点的字母。其中c1与m1 同行, c2与m2同行。 (4)若m1=m2,则在m1和m2之间加一个无效字母(如x)。 (5)若明文字母为奇数个,则在末尾加一个无效字母。   45      

46 §3.3 多字母替换密码 例:以firewall security为密钥, 加密明文how are you。 由密钥导出密钥矩阵为
§3.3 多字母替换密码 例:以firewall security为密钥, 加密明文how are you。 由密钥导出密钥矩阵为 明文分组处理ho wa re yo ux 则 密文kh fu ew gk cz   46      

47 §4 仿射密码 仿射密码亦称为线性替换密码,是由移位替换密码(加法密码)和乘法密码组合而成。 (1)加法密码:
§4 仿射密码   仿射密码亦称为线性替换密码,是由移位替换密码(加法密码)和乘法密码组合而成。 (1)加法密码: 加密c=Ek(m)= m+k (mod q) 解密m=Dk(c) = c-k (mod q) (2)乘法密码: 加密c=Ek(m)= km (mod q) 解密m=Dk(c) = k-1c (mod q) 其中密钥k必须与q互素。   47      

48 §4 仿射密码 例:密钥k=7,则乘法密码的明文字母到密文字母的替换表 若明文how are you 则密文xuy apc muk
§4 仿射密码 例:密钥k=7,则乘法密码的明文字母到密文字母的替换表   若明文how are you   则密文xuy apc muk (3)仿射密码 加密c=Ek(m)= k1+k2m (mod q) 解密m=Dk(c) = k2-1(c-k1) (mod q)   48      

49 §4 仿射密码 例:密钥k=(3,7),则加密函数Ek(m)= 3+7m (mod 26),相应的解密函数是Dk(c) = 7-1(c-3) (mod 26) =15 (c-3) (mod 26) =15c-19 (mod 26) 若加密明文为hot,则: 加密: 解密:   49      

50 ( ) §4 仿射密码 (4)置换密码 加密c=Ek(m)= π(m) 解密m=Dk(c) = π-1(c) 置换π的表示: π=
§4 仿射密码 (4)置换密码 加密c=Ek(m)= π(m) 解密m=Dk(c) = π-1(c) 置换π的表示: π= 密钥空间很大,|π|=26! ≈ 4×1026 移位密码体制是置换密码体制的一个特例,它仅含26个置换 做为密钥空间。 ( 0' 1' 2' 3' ..23' 24' 25' ) 破译者穷举搜索是不行的,然而,可由统计的方式破译它。   50      

51 §4 仿射密码 例:设m=6,取密钥 而 若明文为cryptography 首先分成6个字母长的明文组:crypto|graphy
§4 仿射密码 例:设m=6,取密钥 若明文为cryptography 首先分成6个字母长的明文组:crypto|graphy π(crypto)= (ytcopr) π(graphy)= (ahgypr) 求得的密文是: ytcoprahgypr   51      

52 §5 一次一密方案 一次一密方案是一种理想的加密方案,由AT&T公司
§5 一次一密方案  一次一密方案是一种理想的加密方案,由AT&T公司 的Gilbert Vernam在1917年提出。它使用的密钥是一个大的不重复的真随机密钥字母集,这个密钥字母集被写在几张纸上,并被粘成一个密码本。它最初的形式是用于电传打字机。  1)发送者用密码本中的每一密钥字母准确地加密一个明文字符。加密是明文字符和一次密码本密钥字符的模26加法。每个密钥仅对一个消息使用一次。发送者对所发送的消息加密,然后销毁密码本中用过的一页或磁带部分。   52      

53 §5 一次一密方案  2)接收者有一个同样的密码本,并依次使用密码本上的每个密钥去解密密文的每个字符。接收者在解密消息后销毁密码本中用过的一页或磁带部分。  3)新的消息则用密码本中新的密钥加密。 例如,如果消息是:    ONE TIME PAD 而取自密码本的密钥序列是:TBF RGFA RFM 那么密文就是:      IPK LPSF HGQ    因为: O+T mode 26=I N+B mode 26=P E +F mode 26=K ……   53      

54 §6 密码分析 密码分析学是在不知道密钥的情况下恢复出明文的科学。
§6 密码分析   密码分析学是在不知道密钥的情况下恢复出明文的科学。 成功的密码分析能恢复出消息的明文或密钥。密码分析也可以发现密码体制的弱点,最终得到上述结果(密钥通过非密码分析方式的丢失叫做泄露)。 常用的密码分析攻击有: (1)唯密文攻击(Cipher Text-Only Attack) (2)已知明文攻击(Known-Plaintext Attack) (3)选择明文攻击(Chosen-Plaintext Attack) (4)选择密文攻击(Chosen-Cipher Text Attack) (5)软磨硬泡攻击(Rubber-Hose Cryptanalysis)  密码学:对信息进行编码实现隐蔽信息的一门学问。 密码分析学:研究分析破译密码的学问。两者相互对立、促进。   54      

55 §6 密码分析 单表密码分析:英语26个字母中,各字母出现的频率不同,经过大量统计,可以给出了各字母出现的频率值。
§6 密码分析 单表密码分析:英语26个字母中,各字母出现的频率不同,经过大量统计,可以给出了各字母出现的频率值。 英文明文字母按出现概率大小分组表 序号 字母 频率 1 e >0.1 2 t a o i n s h r 3 d l 4 c u m w f g y p b   55      

56 §6 密码分析 其次考虑字母连接频率(双字母组和三字母组出现频率)
§6 密码分析 其次考虑字母连接频率(双字母组和三字母组出现频率) 再者考虑字母反复使用特征,英语单词以e、s、t、d结尾的超过一半;以t、a、s、w 为起始字母的约为一半。 某些常用用法也会提供有价值的线索,如信的开头写Dear;源程序的某一位置是版权声明;电子资金传送报头格式等等。 单表密码的弱点:明文和密文字母之间的一一代替关系。 这使得明文中的一些固有特性和规律(比如语言的各种统计 特性)必然反映到密文中去。   56      

57 §2 对称密码体制---DES 序列密码 分组密码 数据加密标准DES 分组密码运行模式 57
此页为了让学员和老师对课程安排有一个大致的了解。 此页列出本课程的主要培训标题,列出每章的名称即可。如果章下面的节不多,在此页可以一并列出。 此页胶片仅在授课时使用,胶片+注释中有专门的目录和标题,不需要重复使用该页面。 分组密码运行模式   57      

58  §2.1 序列密码 序列密码是一种单钥体制密码,是一种对明文消息字符逐位加密的私钥密码体制。 y 58 秘密信道 密钥流产生器 信道
§2.1 序列密码  序列密码是一种单钥体制密码,是一种对明文消息字符逐位加密的私钥密码体制。 秘密信道 密钥流产生器 信道 明文序列 m0 m1 m2… y 密钥序列 k0 k1 k2… 密钥源 密文序列 c0 c1 c2… k   58      

59 §2.1 序列密码 序列加密变换:ci = mi  ki (mod 2),i  0
§2.1 序列密码 序列加密变换:ci = mi  ki (mod 2),i  0 序列解密变换: mi = ci  ki (mod 2),i  0 例:设明文M=( )2,密钥K=( )2。在A,B两方通信前,A首先通过安全信道(比如信使)把密钥K送给B,现在要把明文M通过公开信道送给B,加、解密过程如图 。 C=EK(m)=M⊕K=( )2⊕( )2=( ) 2 M=DK(C)=C⊕K=( )2⊕( )2=( ) 2   59      

60 §2.1 序列密码 序列密码体制安全性取决于密钥序列,一个真正具有良好随机特性的密钥序列是设计序列密码的关键。密钥序列依靠秘密信道传送,且最好能与明文序列保持等长。这使得密钥序列的存储、分配和更换变得困难。实际操作中,序列密码是依靠一个短密钥(种子密钥)来产生一个长密钥序列,但此密钥序列不是真正的随机序列,我们称其为伪随机序列。 密钥序列的产生主要是基于移位寄存器。   60      

61  ----线性反馈移位寄存器序列 若t 时刻状态为St =(at , at +1, … , at +n –1)
输出序列 …… an 输入序列 f (a1 , a2 , … an-1 , an) an-1 a2 a1 若t 时刻状态为St =(at , at +1, … , at +n –1) 则t +1 时刻状态为St +1 =(at +1 , at +2, … , at +n) 其中at +n= f (at , at +1, … , at +n –1) 线性反馈移位寄存器结构模型   61      

62 典型序列密码算法 A5是用于GSM加密的序列密码,它用于加密从电话到基站 的连接,其他部分是不加密的,电话公司很容易窃听用户会话。
A5由三个LFSR组成,寄存器的长度分别是19,22和23。 所有反馈多项式系数都较少,三个LFSR的异或值作为输出。 A5用不同的时针控制。通常,在每一轮中时针驱动两个LFSR。 A5的基本思路很好,效率非常高,能通过所有已知的统计 测试,但因为寄存器太短而不能抗穷举攻击,带较长寄存器和 稠密的反馈多项式的A5变型是安全的。   62      

63 典型序列密码算法 RC4是Ron Rivest在1987年为RSA数据安全公司开发的
可变密钥长度的序列密码。在开始的七年中它有专利,1994年 有人将它的源代码匿名张贴到Cypherpunks邮件列表中。 该代码迅速传到Usenet新闻组,通过互联网传遍了全世界的 ftp站点。RSA数据安全公司试图亡羊补牢,宣称即使代码公开 它仍然是商业秘密,但为时已晚。 RC4描述:密钥序列与明文相互独立。它有一个88的S盒:S0,S1,…,S255,所有项都是0到255的置换。这个置换是一 个可变长度的密钥的函数。字节k与明文异或得到密文,与密文 异或得到明文。加密速度相当于DES的10倍。   63      

64 序列密码设计的系统理论方法 根据Rainer Rueppel的理论,可用四种不同的方法来构造 序列密码:
1)系统理论方法。使用一套基本的设计原理和准则,保证 每一个设计对密码分析者来说是一个困难且未知的问题。 2)信息理论方法。使密码分析者不能得到明文。不论密码 分析者做了多少工作,它将永远得不到唯一解。 3)复杂性理论方法。使密码系统基于或等同于一些已知的 难题,比如因式分解或解离散对数。 4)随机性方法。通过迫使密码分析者检测大量无用的数据 来产生一个难于控制的大难题。   64      

65 §2.2 分组密码 分组密码,也称为块密码,它是将明文消息经编码表示后的数字序列划分为若干固定长度的组,每组分别在密钥的控制下转换成等长度的密文分组输出。 分组密码易于构造拟随机数生成器、流密码、消息认证码和杂凑函数等,还可进而成为消息认证技术、数据完整性机构、实体认证协议以及单钥数字签名体制的核心组成部分。   65      

66 §2.2 分组密码 分组密码主要特点: 密文仅与给定的密码算法和密钥有关; 与被处理的明文数据段在整个明文(或密文)中所处的位置无关;
§2.2 分组密码 分组密码主要特点: 密文仅与给定的密码算法和密钥有关; 与被处理的明文数据段在整个明文(或密文)中所处的位置无关; 总是以大于等于64比特的数据块作为加密单位,给定相同的明文数据块加密后得到相同的密文数据块; 具有代表性的分组加密算法有DES、IDEA 等   66      

67 §2.2 分组密码 密文分组C= C0C1C2… 明文分组m=m0m1m2… 密钥 k= k0k1k2… Ek 密钥 k= k0k1k2… 密文分组C= C0C1C2… 明文分组m=m0m1m2… Dk 分组密码的设计在于找到一种算法,能在密钥控制下从一个足够大且足够好的置换子集中,简单而迅速地选出一个置换,用来对当前输入的数字组进行加密变换。   67      

68 分组密码算法的设计原则 (1)要有足够大的分组长度 (2)密钥空间要尽可能大 (3)保证足够强的密码算法复杂度
(4)软件实现尽量采用子块和简单运算 (5)硬件的实现最好加密与解密用相同的结构,以适应用超大规模集成芯片实现   68      

69 §2.2 分组密码 置换:设S为一有限集合, 为S到S的一一映射,则 为S上的一个置换。
§2.2 分组密码 置换:设S为一有限集合, 为S到S的一一映射,则 为S上的一个置换。 混淆:将作用于明文的密钥和密文之间的关系复杂化,使明文和密文之间、密文和密钥之间的统计相关性极小化,从而使统计分析攻击法不能奏效。 扩散:将每一位明文及密钥数字的影响尽可能迅速地散布到较多个输出的密文数字中,以便隐蔽明文数字的统计特性。   69      

70 §2.2 分组密码 + F 加密:Li = Ri-1 Ri = Li-1  F(Ri-1,Ki) Feistel结构原理 70 K1 K2
§2.2 分组密码 + F K1 K2 Kn 加密:Li = Ri-1 Ri = Li-1  F(Ri-1,Ki) Feistel结构原理   70      

71 §2.3 数据加密标准DES DES的背景 发明人:美国IBM公司W. Tuchman 和 C. Meyer 1971-1972年研制成功。
基础:1967年美国Horst Feistel提出的理论。 产生:美国国家标准局(NBS)于1973年5月到1974年8月两次发布通告,公开征求用于电子计算机的加密算法。经评选从一大批算法中采纳了IBM的LUCIFER方案。 标准化:1975年3月公开发表,1977年1月由NBS颁布为数据加密标准(Data Encryption Standard),于1977年7月15日生效。   71      

72 §2.3 数据加密标准DES  美国国家安全局(NSA, National Security Agency)参与了美国国家标准局制定数据加密标准的过程。NBS接受了NSA的某些建议,对算法做了修改,并将密钥长度从LUCIFER方案中的128位压缩到56位。 1979年,美国银行协会批准使用DES。 1980年,DES成为美国标准化协会(ANSI)标准。 1984年2月,ISO成立的数据加密技术委员会(SC20)在DES基础上制定数据加密的国际标准工作。   72      

73 §2.3 数据加密标准DES DES算法 64位明文 64位密文 64位密钥(56位有效) 73
  73      

74 §2.3.1 DES算法基本原理 64位码 初始变换 逆初始变换 乘积变换 明文 密文 输入 输出 IP IP-1 DES的结构图   74      

75 §2.3.1 DES算法基本原理 加密: Li = Ri-1 Ri = Li-1 F(Ri-1,Ki )   75      

76 §2.3.2 DES算法描述 利用传统的换位和置换加密。假定信息空间由{0,1}组成的
字符串,信息被分成64b的块,密钥是56b。经DES加密的密文也是64比特的块。   明文:m=m1m2…m64 mi = 0,1 i = 1,2,…64   密钥:k=k1k2…k ki = 0,1 (i = 1,2,…64 ) (其中k8,k16,…,k64是奇偶校验位,起作用的仅为56位) 加密算法: Ek(m) = IP-1·T16·T15……T1·IP(m) 解密算法: Ek-1 (c) = IP-1·T1·T2……T16·IP (c)   76      

77 §2.3.2 DES算法描述---初始变换 明文输入(64位) 输出(64位) 初始变换 IP L0(32位) R0(32位) 77
输出(64位) 初始变换 IP L0(32位) R0(32位) 第40位   77      

78 §2.3.2 DES算法描述---初始变换 IP 中各列元素位置号数相差为8 ,相当于将原明文各字节按列写出,各列比特经过偶采样和奇采样置换后再对各行进行逆序,将阵中元素按行读得的结果。   78      

79 §2.3.2 DES算法描述 输入64个二进制位明码文数据区组 m= m1m2…m64 按初始换位表IP进行换位,得到区组B(0):
B(0)=b1(0)b2(0)…b64(0)= m58m50…m7 记成L0、R0左右两部分。 逆初始变换用IP-1 表示,它和IP互逆。 例如:第1位经过初始置换后,处于第40位,而通过逆置换,又将第40位换回到第1位   79      

80 §2.3.2 DES算法描述---逆初始变换 置换码组 输入(64位) 40 8 48 16 56 24 64 32
置换码组 输入(64位) 输出(64位) 逆初始变换 IP-1 第40位   80      

81 §2.3.2 DES算法描述 DES迭代过程的核心是非线性F函数的功能,它是每轮实现加密混淆和扩散的主要途径。
每一轮迭代过程都必须经过三个子过程:扩展置换、压缩替换(S盒选择)、P盒排列。   81      

82 ----迭代过程算法描述   82      

83 ---- DES 轮函数F的实现原理 扩展置换 子密钥Ki S盒替代 P盒置换   83      

84 §2.3.2 DES算法描述---扩展置换(E盒) 此运算是将数据的右半部分Ri从32b扩展到了48b。由于这个运算改变了位的次序,重复了某些位,故被称为扩展置换。目的:它产生了与密钥同长度的数据以进行异或运算,并提供了更长的结果,使得在替代运算时能进行压缩。   84      

85 §2.3.2 DES算法描述---扩展置换(E盒) 扩展置换表 尽管输出分组大于输入分组,但每一个输入分组产生唯一的输出分组。 85 32
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 尽管输出分组大于输入分组,但每一个输入分组产生唯一的输出分组。   85      

86 §2.3.2 DES算法描述---S盒替代 每一个S盒都有6位输入,4位输出,且这8个S盒是不同的。48位的输入被分为8个6位的分组,每一分组对应一个S盒替换操作:分组1由S-盒1操作,分组2由S-盒2操作…… 假定将S盒的6位的输入标记为b1b2b3b4b5b6,则 b1b6组合构成了一个2位的数(0~3)对应表中的一行; b2b3b4b5组合构成了一个4位的数(0~15) 对应表中的一列。   86      

87 §2.3.2 DES算法描述---S盒替代 使用S盒选择的例子 1 0 1 1 0 0 输入6位 10 2
10 2 输入6位 输出4位 使用S盒选择的例子   87      

88 §2.3.2 DES算法描述---P盒置换 P盒置换也称直接置换,把每输入位映射到输出位,任意一位不能被映射两次,也不能被略去。
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25 最后将P盒置换的结果与最初的64位分组的左半部分异或,然后左、右半部分交换,接着开始另一轮。   88      

89 §2.3.2 DES算法描述---子密钥的生成 压缩置换PC-1表 开始时不考虑每个字节的第8位,DES的密钥由64位减
57 49 41 33 25 17 9 1 58 50 42 34 26 18 10 2 59 51 43 35 27 19 11 3 60 52 44 36 63 55 47 39 31 23 15 7 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 4  开始时不考虑每个字节的第8位,DES的密钥由64位减 至56位。每个字节第8位可作为奇偶校验位以确保密钥不发生错误。此过程称为PC-1置换   89      

90 §2.3.2 DES算法描述---子密钥的生成 56位密钥被分成两部分(各28位),然后根据轮数分别循环左移1位或2位。 90
循环左移位数表: 轮 位 轮 位 56位密钥被分成两部分(各28位),然后根据轮数分别循环左移1位或2位。   90      

91 §2.3.2 DES算法描述---子密钥的生成 从56位中选出48位。它不仅置换了每位的顺序,同时也选择子密钥,也称这选择置换。删除的8位分别是第9、18、22、25、35、38、43、54位。 压缩置换PC-2表 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   91      

92 §2.3.2 DES算法描述---解密 DES解密过程:
在经过所有的代替、置换、异或和循环移动之后,获得了这样一个非常有用的性质:加密和解密可使用相同的算法。 DES使得用相同的函数来加密或解密每个分组成为可能,二者的唯一不同之处是密钥的次序相反。这就是说,如果各轮的加密密钥分别是K1,K2,K3…,K16,那么解密密钥就是K16,K15,K14……,K1。   92      

93 §2.3.3 DES的安全性讨论 DES的设计是密码学历史上的一个创新。自从DES问世 至今,对它多次的分析研究,从未发现其算法上的破绽。
利用穷举法搜索攻击,只能说明56位的密钥可能太少,DES的迭代次数可能太少。但直到1998年,电子边境基金会(EFF)动用一台价值25万美元的高速电脑,在56小时内利用穷尽搜索的方法破译56位密钥长度的DES,才证明上述论断。 1982年,已经有办法攻破4次迭代的DES系统了。1985年,对于6次迭代的DES系统也已破译。1990年,以色列学者发明并运用差分分析方法证明,通过已知明文攻击,任何少于16次迭代的DES算法都可以用比穷举法更有效的方法。   93      

94 §2.3.3 DES的安全性讨论 DES的脆弱性: 1)函数构造与作用域 加密强度取决于函数F的复杂度 (S、P)和F的执行次数。
64位固定分组,短组模式,易造成密文重复组块; 有限的函数作用域(ASCII码 0~127); 子密钥只参与异或简单的运算,有可能损害变换精度。 2)迭代问题 无法证明迭代16次最好;在有限的作用域中存在封闭性;迭代次数多不仅费时,还可能被一次简单的变换所代替。   94      

95 §2.3.3 DES的安全性讨论 3)S盒中的重复因子及密钥多值问题
S盒对不同输入可能产生相同输出,使加密、解密变换的密钥具有多值性;子密钥长度48位,只影响32位输出,因此加密强度达不到256,实际只有232x16=236; 4) S盒是精心设计的,其原理至今未公开,其中可能隐藏陷门,它有利于设计者破译密码。 5)提高加密强度(如增加密钥长度),系统开销呈指数增,提高硬件、并行处理外,算法本身和软件技术无法提高加密强度。   95      

96 §2.4 多重DES 解决密钥长度的问题的办法之一是采用多重DES。
双重DES使用两个长度为56位DES密钥,先用密钥K1进行DES加密,对加密后的密文再使用密钥K2进行DES加密,得到最终密文。双重DES很难抵抗中间相遇攻击。 三重DES使用三个长度为56位DES密钥,先用密钥K1进行DES加密,对加密后的密文再使用密钥K2进行DES解密,最后用密钥K3进行DES加密,得到最终密文。 最常用的三重DES,算法中选取K1 = K3 。 (见P34)   96      

97 §2.4 多重DES---Triple DES DES-EDE3 97
三重DES是Tuchman提出的,并在1985年成为美国的一个商用加密标准[RFC 2420]。三重DES使用两个(或三个)密钥,执行三次DES算法。其做法有许多的方式: DES-EEE3、DES-EDE3、DES-EEE2、DES-EDE2 E D K K K3 M C DES-EDE3   97      

98 §3 公钥密码体制主要内容 公钥密码体制概述 RSA公钥密码 背包公钥密码 椭圆曲线密码 98
此页为了让学员和老师对课程安排有一个大致的了解。 此页列出本课程的主要培训标题,列出每章的名称即可。如果章下面的节不多,在此页可以一并列出。 此页胶片仅在授课时使用,胶片+注释中有专门的目录和标题,不需要重复使用该页面。   98      

99 公开密钥密码体制是现代密码学最重要的发明
§3.1 公钥密码体制概述 对称密钥密码体制问题:如何在网络上安全地传送和保管密钥?无法实现抗抵赖的需求等… 1976年,美国学者Diffie和Hellman发表了著名论文《密码学的新方向》,提出了建立“公开密钥密码体制”:若用户A有加密密钥PK(公开),不同于解秘密钥SK(保密),要求PK的公开不影响SK的安全。若B要向A保密送去明文m ,可查A的公开密钥PKA,若用PKA加密得密文c,A收到密文c后,用只有A自己才掌握的解密密钥SKA对x进行解密得到明文m。 公开密钥密码体制是现代密码学最重要的发明   99      

100 §3.1 公钥密码体制概述 尽人皆知的密钥叫做公开密钥(public key);
§3.1 公钥密码体制概述  尽人皆知的密钥叫做公开密钥(public key);  只有密钥拥有者才知道的密钥:私有密钥(private key)  这两种密钥合在一起称为密钥对;  公开密钥可以解决安全分配密钥问题(不需要与保密密钥通信,所传输的只有公开密钥,它不需要保密),但对保证其真实性和完整性却非常重要。 如果某一信息用公开密钥加密,则必须用私有密钥解密,这就是实现保密的方法。  如果某一信息用私有密钥加密,它必须用公开密钥解密,这就是实现验证的方法。   100      

101 §3.1 公钥密码体制概述 算法特点:使用一个加密算法E和一个解密算法D,它们彼此完全不同,根据已选定的E和D,即使已知E的完整描述,也不可能推导出D。   101      

102 §3.1 公钥密码体制概述 数字签名必须保证做到以下3点: (1)接收者能够核实发送者对报文的签名; (2)发送者事后不能抵赖对报文的签名;
§3.1 公钥密码体制概述 数字签名必须保证做到以下3点:  (1)接收者能够核实发送者对报文的签名;  (2)发送者事后不能抵赖对报文的签名;  (3)接收者不能伪造对报文的签名。   102      

103 §3.2  RSA公钥密码体制  RSA是一种基于公钥密码体制的优秀加密算法,1978年由美国(MIT)的李维斯特(Rivest)、沙米尔(Shamir)、艾德曼(Adleman)提的。  RSA算法是一种分组密码体制算法,它的保密强度是建立在具有大素数因子的合数其因子分解是困难的(基于大数分解的难度)。  公钥和私钥是一对大素数的函数,从一个公钥和密文中恢复出明文的难度等价于分解两个大素数之积。 RSA得到了世界上的最广泛的应用,ISO在1992年颁布的国际标准X.509中,将RSA算法正式纳入国际标准。   103      

104 §3.2 RSA公钥密码体制 整数n的 因子分解的 所需计算 十进制位数 运算次数 时间 50 1.4x1010 3.9小时
十进制位数      运算次数     时间 x 小时 x 天 x 年 x x109年 x x1015年 x x1025年 (每微秒一次)   104      

105 §3.2 RSA公钥密码体制 RSA密钥体制的特点:
(1)密钥配发十分方便,用户的公开密钥可以像电话本那样公开,使用方便,每个用户只需持有一对密钥即可实现与网络中任何一个用户的保密通信。 (2)RSA加密原理基于单向函数,非法接收者利用公开密钥不可能在有限时间内推算出秘密密钥。 RSA在用户确认和实现数字签名方面优于现有的其他加密机制。   105      

106 §3.2  RSA公钥密码体制 单向函数: 给定一个函数f,若对任意给定的x,计算y,使得y = f(x)是容易的;但对任意给定的y,计算x,使得 f(x) = y是难解的,即计算f -1(y)是困难的。则称f为单向函数。 例:f(x)=ax(x、aGF(q))为单向函数。 陷门单向函数: 给定一个函数f,t为f 相关的参数,任意给定的x,计算y = f(x)是容易的;当t未知时,计算逆函数f -1(y)难解,而当t已知时,计算f -1(y)容易。则称为f 陷门单向函数。   106      

107 §3.2 RSA公钥密码体制 用于构造双钥密码的单向函数: (1)多项式求根 (2)离散对数 (3)大整数分解 (4)背包问题
(5)Diffie-Hellman问题 (6)二次剩余问题 (7)模n的平方根问题   107      

108 §3.2.1 RSA公钥密码算法描述 (1)设计密钥 A、在离线方式下,先产生两个足够大的强质数p、q;
 B、令n=p*q。计算欧拉函数(n)=(p-1)×(q-1);  C、选取一个与(n)互素的奇数e,称e为公开指数;  D、根据e×d=1 mod((n)),找出d;  E、舍弃p和q (但绝不能泄露) ,公开(n,e),公钥;  F、保密(n,d) 私钥。   108      

109 §3.2.1 RSA公钥密码算法描述 (2)加密 对于明文M,用公钥 (n,e) 加密可得到密文C。 C = Me mod (n)
(3)解密 对于密文C,用私钥(n,d)解密可得到明文M。   M = Cd mod (n)  当定义用私钥(n,d)先进行解密后,然后用公钥(n,e)进行加密,就是数字签名。   109      

110 §3.2.1 RSA公钥密码算法描述 举例1:选取p=3, q=5,则n=p*q =15,(n)=(p-1)(q-1)=8
选取e=11(大于p和q的质数); 由d×11=1 mod 8,计算出d =3,   得到公开密钥:(n,e)=(15,11)     私有密钥:(n,d)=(15,3) 假定明文M为整数13。则密文    C=Me mod n=1311 mod 15 = (132)5*13 mod 15 = (132 mod 15 ) 5 *13 mod 15=4 5 *13 mod 15=7 复原明文M为: M = Cd mod n= 73 mod 15= 343 mod 15 = 13   110      

111 §3.2.1 RSA公钥密码算法描述 举例2:设p=43,q=59,n=p•q=43*59=2537, (n)=(p-1)(q-1) =42*58 =2436, 取e=13,求e的逆元d 解方程 d×e = 1 mod 2436 2436=13×187+5, 13=2×5+3,5=3+2,3=2+1 所以1=3-2,2=5-3,3=13-2×5,5 = ×187 所以,1=3-2=3-(5-3)=2×3-5=2×(13-2×5)-5 =2×13-5×5=2×13-5×( ×187) =937×13-5×2346 即937×13≡1 mod 2436 取e=13时,d= 937 13×d=k*2436+1 d=(k*2436+1)/13,试凑   111      

112 §3.2.1 RSA公钥密码算法描述 1、加密字串举例:若有明文public key encryptions
2、先将明文分块为两个一组(此处为简化计算考虑):    pu bl ic ke ye nc ry pt io ns 3、将明文数字化令a,b…,z 分别为00,01,…,25 得         4、利用加密可得密文         5、解密后又得到明文   112      

113 §3.2.1 RSA公钥密码算法描述 C=Me mod n=152013 mod 2537 (2)加密
∴C= (1730)6*1520 mod 2537 = (17302)3*1520 mod 2537 ∵17302 =1777 mod 2537 ∴C= (1777)3*1520 mod 2537 = (1777)2*1777*1520 mod 2537 ∵17772 =1701 mod 2537 ∴C=1701*(1777*1520) mod 2537 =1701*1672 mod 2537 =95(密文)   113      

114 §3.2.1 RSA公钥密码算法描述 (3)解密 M = Cd mod n= 95937 mod 2537
……… = (625*25)*(341*788)*95 mod 2537 =230*2323 mod 2537 = 1520 mod 2537 =1520(明文)   114      

115 §3.2.2 RSA算法的优缺点 优点:   是第一个能同时用于加密和数字签名的算法,也易于理解和操作,也是被研究得最广泛的公钥算法,二十年来经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。该算法的加密密钥和加密算法分开,使得密钥分配更为方便。   特别符合计算机网络环境。 对于网上的大量用户,可以将加密密钥用电话簿的方式印出。如果某用户想与另一用户进行保密通信,只需从公钥簿上查出对方的加密密钥,用它对所传送的信息加密发出即可。对方收到信息后,用仅为自己所知的解密密钥将信息解密,了解报文的内容。   115      

116 §3.2.2 RSA算法的优缺点 缺点: (1)产生密钥很麻烦,难以做到一次一密。
(2)RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。目前人们已能分解140多位十进制位的大素数,这就要求使用更长的密钥,速度更慢。而且目前人们正在积极寻找攻击RSA的方法。 (3)速度太慢, RSA的分组长度太大。为了速度问题,目前人们广泛使用单、公钥密码结合使用的方法,优缺点互补:单钥密码加密速度快, 用它来加密较长的文件,然后用RSA来给文件密钥加密,极好的解决了单钥密码的密钥分发问题。   116      

117 §3.2.3 RSA密码体制的实现 实现的步骤如下:(Bob为实现者) (1)Bob寻找出两个大素数p和q;
(2)Bob计算出n=p*q和(n)=(p-1)(q-1); (3)Bob选择一个随机数e(0<e<(n)) 满足gcd(e, (n))= 1; (4)Bob使用辗转相除法计算d=e-1(mod (n)); (5)Bob在目录中公开n和e作为他的公钥。 密码分析者攻击RSA体制的关键点在于如何分解n。 若分解成功使n=p*q,则可以算出(n)=(p-1)(q-1) 。然后由公开的e 解出秘密的d。   117      

118 §3.2.3 RSA密码体制的实现 RSA密码系统设计要求: (1)p、q必须选择强素数 (2)p、q之差必须很大
(5)e不可以太小 (6)e应选择使模(n)的阶最大   118      

119 §3.3 背包公钥密码体制 美国斯坦福大学的Merkle和Hellman于1978年提出的。
§3.3 背包公钥密码体制 美国斯坦福大学的Merkle和Hellman于1978年提出的。 背包问题描述:已知一长度为b的背包及长度分别为a1,a2,…an的n个物品。假定这些物品的直径与背包相同,若从这些物品中选出若干个正好装满这个背包,究竟是哪些物品。 数学描述:已知b,求解a1x1+ a2x2 +… + anxn = b,其中a1,a2,…an和b都是正整数。 背包问题目前尚无有效求解算法。 背包公钥密码:选取正整数a1,a2,…an作为公钥,明文位串 为m= m1m2…mn,利用公钥加密问题c= a1m1+ a2m2 +… + anmn 。从密文c求明文m等价于背包问题。   119      

120 §3.3 背包公钥密码体制 MH公钥背包密码:其背包系列a1,a2,…,an是由超递增系列b1,b2,…,bn( )经过MH变换ak=wbk得到的。 虽然a1,a2,…an不具有超递增性,但可经变换后成为超递增系列求解。若超递增背包问题确实有解,则容易用所谓的贪心算法求出其解。 例:超递增序列1,2,4,…,2n,若背包方程 x1+ 2x2 + 4x3 + 8x4 + 16x5+ 32x6 = 47 则x6 =1,x5 =0,x4 =1,x3 =1,x2 =1,x1 =1           所以密文为:111101   120      

121 §3.3 背包公钥密码体制 MH公钥背包密码过程: (1)密钥生成
§3.3 背包公钥密码体制 MH公钥背包密码过程: (1)密钥生成 用户构造长度为n的超递增背包分量b1,b2,…,bn,选择两个正整数M、W,其中   ,W<M且保证gcd(W,M)=1。 则由W W-1=1 mod M,求出W-1(0< W-1<M), 计算ai = Wbi mod M,0 i n 选择背包系统的公钥为Pk=(a1,a2,…,an), 私钥为Sk=(b1,b2,…,bn,M, W-1)   121      

122 §3.3 背包公钥密码体制 (2)加密过程 用户A给用户B发送秘密消息时,使用B的公钥PK,对明文
§3.3 背包公钥密码体制 (2)加密过程 用户A给用户B发送秘密消息时,使用B的公钥PK,对明文 m=(m1 , m2 , … , mn)进行加密变换: (3)解密过程 用户收到密文C后,使用自己的私钥SK,计算   122      

123 §3.3 背包公钥密码体制 例:明文m=(m1, m2, m3, m4) = (11011, 11010, 11100,
§3.3 背包公钥密码体制 例:明文m=(m1, m2, m3, m4) = (11011, 11010, 11100, 10110),选n=5,取a=(3,6,10,22,44)背包序列进行加解密。 加密: c1 = 3×1+6×1+10×0+22×1+44×1=75 c2 = 3×1+6×1+10×0+22×1+44×0=31 c3 = 3×1+6×1+10×1+22×0+44×0=19 c4 = 3×1+6×0+10×1+22×1+44×0=35 得到密文c=(c1, c2, c3, c4) = (75, 31, 19, 35) 解密:取c1 = 75,求3x1+6x2+10x3+22x4+44x5=75 则x5 =1,x4 =1,x3 =0,x2 =1,x1 =1 对应明文m1 = 11011,其余明文类似可得。   123      

124 §3.3 背包公钥密码体制 124 设超递增背包序列为{1,2,5,9,20,41,83,164},用MH背包算法进行加解密。
§3.3 背包公钥密码体制  设超递增背包序列为{1,2,5,9,20,41,83,164},用MH背包算法进行加解密。 1)因为 =325,所以取M=353,W=233,用辗转相除法计算得W-1=50; 2)a1=w.b1(mod 353)=233*1(mod 353)= 233 (mod 353) a2=w.b2(mod 353)=233*2(mod 353)= 113 (mod 353) a3=w.b3(mod 353)=233*5(mod 353)= 106 (mod 353) a4=w.b4(mod 353)=233*9(mod 353)= 332 (mod 353) a5=w.b5(mod 353)=233*20(mod 353)= 71 (mod 353) a6=w.b6(mod 353)=233*41(mod 353)= 22 (mod 353) a7=w.b7(mod 353)=233*83(mod 353)= 277 (mod 353) a8=w.b8(mod 353)=233*164(mod 353)= 88 (mod 353)   124      

125 §3.3 背包公钥密码体制 3)得到背包序列{233,113,106,332,71,22,277,88},作为公钥公布,而{1,2,5,9,20,41,83,164}作为么钥保存; 4)假设要发送的明文是二进制信息:          对应的密文是a2+a4+a5+a8=113+332+71+88=604 对应的密文是a1+a1+a5+a7=233+113+71+277=694 对应的密文是a1+a5+a8=233+71+88=392 故对应的密文:604,694,392 5)接收方收到密文后其解密过程为用50*密文模353: 50*604(mod 353)= 195(mod 353)= (mod 353) 其对应的明文是  ,其余类推   125      

126 RSA算法的程序实现 126

127 RSA算法的程序实现 127

128 RSA算法的程序实现 必须将生成的模n、公密e和私密d导出,并保存成文件,加密和解密的过程中要用到这三个文件。其中模n和私密d用来加密,模n和公密e用来解密。将三个文件分别保存。 128

129 RSA算法的程序实现 在主界面选择一个文件,并导入“模n.txt”文件到RSA模n文本框,导入“私密.txt”文件或者“公密.txt”,加密如果用“私密.txt”,那么解密的过程就用“公密.txt”。反之依然 129

130 §4 PGP加密技术 PGP(Pretty Good Privacy)加密技术是一个基于RSA公钥加密体系的邮件加密软件,提出了公共钥匙或不对称文件的加密技术。 PGP的创始人是美国的Phil Zimmermann,创造性地把RSA公钥体系和传统加密体系的结合起来,并且在数字签名和密钥认证管理机制上有巧妙的设计,因此PGP成为目前几乎最流行的公钥加密软件包,也是一个事实上的标准。 130

131 PGP简介 由于RSA算法计算量极大,在速度上不适合加密大量数据,所以PGP实际上用来加密的不是RSA本身,而是采用传统加密算法IDEA,IDEA加解密的速度比RSA快得多。PGP随机生成一个密钥,用IDEA算法对明文加密,然后用RSA算法对密钥加密。收件人同样是用RSA解出随机密钥,再用IEDA解出原文。这样的链式加密既有RSA算法的保密性(Privacy)和认证性(Authentication),又保持了IDEA算法速度快的优势。 131

132 PGP加密软件 PGP加密软件最新版本是8.0.2,使用PGP8.0.2i可以简洁而高效地实现邮件或者文件的加密、数字签名。 132

133 PGP加密软件 下面的几步全面采用默认的安装设置,因为是第一次安装,所以在用户类型对话框中选择“No, I am a New User”,如图8-18所示。 133

134 PGP加密软件 “PGPdisk Volume Security”的功能是提供磁盘文件系统的安全性;“PGPmail for Microsoft Outlook/Outlook Express”提供邮件的加密功能。 134

135 使用PGP产生密钥 因为在用户类型对话框中选择了“新用户”,在计算机启动以后,自动提示建立PGP密钥。 135

136 使用PGP产生密钥 点击按钮“下一步”,在用户信息对话框中输入相应的姓名和电子邮件地址。 136

137 使用PGP产生密钥 在PGP密码输入框中输入8位以上的密码并确认。 137

138 使用PGP产生密钥 然后PGP会自动产生PGP密钥,生成的密钥如图。 138

139 使用PGP加密文件 使用PGP可以加密本地文件,右击要加密的文件,选择PGP菜单项的菜单“Encrypt”,然后选择文件。 139

140 使用PGP加密文件 目标文件被加密后会在当前目录下自动产生一个新的文件。 打开加密后的文件时,程序自动要求输入密码,输入建立该密钥时的密码。
140

141 使用PGP加密邮件 PGP的主要功能是加密邮件,安装完毕后,PGP自动和Outlook或者Outlook Express关联。 141

142 使用PGP加密邮件 利用Outlook建立邮件,可以选择利用PGP进行加密和签名。 142

143 §5 消息认证与数字签名 消息认证概述 三种认证函数 数字签名 143 此页为了让学员和老师对课程安排有一个大致的了解。
§5 消息认证与数字签名 消息认证概述 三种认证函数 数字签名 此页为了让学员和老师对课程安排有一个大致的了解。 此页列出本课程的主要培训标题,列出每章的名称即可。如果章下面的节不多,在此页可以一并列出。 此页胶片仅在授课时使用,胶片+注释中有专门的目录和标题,不需要重复使用该页面。   143      

144 一、消息认证概述 网络系统安全要考虑两个方面。一方面,用密码保护传送的信息使其不被破译;另一方面,就是防止对手对系统进行主动攻击,如伪造,篡改信息等。   认证(authentication)则是防止主动攻击的重要技术,它对于开放的网络中的各种信息系统的安全性有重要作用。 认证的主要目的:第一,验证信息的发送者是真的,而不是冒充的,此为实体认证,包括信源、信宿等的认证和识别; 第二,验证信息的完整性,此为消息认证,验证数据在传送或存储过程中未被篡改,重放或延迟等。   144      

145 一、消息认证概述 保密和认证同时是信息系统安全的两个方面,但它们是 两个不同属性的问题,认证不能自动地提供保密性,而保密
也不能自然地提供认证功能。 密钥源 窜扰者 信宿 信源 认证编码器 认证译码器 信道 安全信道 一个纯认证系统的模型   145      

146 一、消息认证概述 146 消息认证是一种过程,它使得通信的接收方能够验证 所收到的报文(发送者和报文内容、发送时间、序列等)
在传输的过程中没有被假冒、伪造和篡改,是否感染上病 毒等,即保证信息的完整性和有效性。   消息认证的在于如何让接收报文的目的站来鉴别报文的真伪,消息认证通常采用的方法:      采用MAC的消息认证      使用哈希函数的消息认证   146      

147 一、消息认证概述 消息认证的内容应包括: (1)证实报文的源和宿; (2)报文内容是否曾受到偶然的或有意的篡改; (3)报文的序号和时间栏。
 消息认证的内容应包括:  (1)证实报文的源和宿;  (2)报文内容是否曾受到偶然的或有意的篡改;  (3)报文的序号和时间栏。 消息认证使接收者能识别:消息的源,内容的真伪,时间性和意定的信宿。认证只在相应通信的双方之间进行,而不允许第三者进行上述认证。认证不一定是实时的。   147      

148 一、消息认证概述 认证的函数有三类: (1) 信息加密函数 用完整信息的密文作为对信息的认证。 (2) 信息认证码MAC
(Message Authentication Code)是对信源消息的一个编码函数。 (3) Hash函数 是一个公开的函数,它将任意长的信息映射成一个固定长度的信息。   148      

149 一、消息认证概述---采用信息加密函数 分二种:常规的对称密钥加密函数, 公开密钥的双密钥加密函数。 信源 信宿 M E Ek(M) D
A方 B方 k Dk(Ek(M)) 1)常规加密:具有机密性,可认证   149      

150 一、消息认证概述---采用信息加密函数 M E EPKb(M) D A方 B方 SKb PKb 2)公钥加密:具有机密性 M E
ESKa(M) D A方 B方 PKa SKa 3)公钥加密:认证和签名   150      

151 一、消息认证概述---采用信息加密函数 M E EPKa(M) EPKb(ESKa(M)) A方 SKa PKb D ESKa(M) B方
SKb PKa 4)公钥加密:机密性,可认证和签名   151      

152 一、消息认证概述---采用MAC的消息认证
(Message Authentication Code) 是一种实现消息认证的方法。MAC是由消息M和密钥K的一个函数值 MAC=Ck(M) 其中M是变长的消息,K是仅由收发双方共享的密钥, Ck(M)是定长的认证码。   152      

153 一、消息认证概述---采用MAC的消息认证
设S为通信中的发方A发送的所有可能的信源集合。 双方设计一个编码法则。发方A根据规则对信源S进行编码,M表示所有可能的消息集合。发方A通信时,发送的是消息。用简单的例子说明:设S={0,1},M={00,01,10,11}, 定义四个不同的编码法则e0,e1,e2,e3。这就构成一个认证码MAC。 编码规则 00 01 10 11 e0 1 e1 e2 e3   153      

154 一、消息认证概述---采用MAC的消息认证
  收发双方在通信前先秘密约定使用的编码法则。 (例如,若决定采用e0,则以发送消息00代表信源0;发送消息10代表信源1,我们称消息00和10在e0之下是合法的。而消息01和11在e0之下不合法,收方将拒收这二个消息。) 信息的认证和保密是不同的两个方面,一个认证码可具有保密功能,也可没有保密功能。 认证编码的基本方法是要在发送的消息中引入多余度,使通过信道传送的可能序列集Y大于消息集X。   154      

155 一、消息认证概述---采用MAC的消息认证
K M 用户B终点 C比较 || C CK(M) 用户A源点 消息认证方案 通信双方A和B共享密钥K。当A要向B发消息,确信或已知消息正确的,计算MAC,并将它附加在消息的后面。发往预定的接收者B。接收者使用相同的密钥K,对收到的消息M计算得出新的MAC。将收到的MAC与计算得出的MAC进行比较。   155      

156 一、消息认证概述---采用MAC的消息认证
1)接收者确信消息未被更改过 如果一个攻击者更改消息而未更改MAC,那么接收者计算出的消息将不同于接收到的MAC。因为假定攻击者不知道该密钥,因此攻击者不可能更改MAC来对应后更改后的消息。 2)接收者确信消息来自所谓的发送者 因为没有其他人知道该密钥,因此没有人能为一个消息准备合适的MAC。 3)接收者确信该序号的正确性 如果消息包括一个序号(如用于HDLC,X.25和TCP),那么,因为攻击者无法成功地更改该序列号。   156      

157 一、消息认证概述---采用MAC的消息认证
算法O1=EK(D1) O2=EK(D2⊕O1) O3=EK(D3⊕O3) ON=EK(DN⊕ON-1) 一、消息认证概述---采用MAC的消息认证 2.基于DES的消息认证码 K Time = 1 DES O1 (64bits) Time = 2 Time = N DAC M-bits (16 to 64 bits) ... (16<=M<=64) O2 ON D1 D2 DN MAC函数类似于加密。它与加密的区别是MAC函数无需可逆, 而对解密则必须是可逆的。结果由于认证函数的这个数学性质 使得它比加密函数更不易被破解。   157      

158 一、消息认证概述---采用MAC的消息认证 方案
CK1(M) K1 比较 E K2 D C M || 用户B 消息认证与加密,认证与明文连接   158      

159 一、消息认证概述---采用MAC的消息认证 方案
CK1[EK2(M)] 比较 EK2(M) K1 E K2 C || D M 消息认证与加密,认证与密文连接   159      

160 二、 Hash函数   如一个合法文件有数兆字节长,为了进行签名认证,自然按160比特分划成一块一块,用相同的密钥独立地签每一个块。然而,这样太慢。 解决办法:引入可公开的密码Hash函数。它将取任意长度的消息做自变量,结果产生规定长度的消息摘要。(如使用数字签名标准DSS,消息摘要为160比特),然后签名消息摘要。对数字签名来说,Hash函数h这样使用: 消息: x 任意长 消息摘要: Z=h(x) bits 签名: y=sigk(Z) bits (签名一个消息摘要)   160      

161 二、 Hash函数 161 1.哈希函数概念 哈希函数可以接受可变长度的数据输入,并生成定长数
据输出的函数。这个定长的输出是输入数据的哈希值或称消 息摘要。由于哈希函数具有单向性的属性,有时也叫单向函 数。有时把消息摘要(哈希)叫做输入数据的数字指纹。 哈希值以函数H产生: h=H(M) 其中:M是变长的消息,H是一个将任意长度的消息M映射 为一个较短定长的哈希值h的哈希函数,H(M)是定长的哈希值。   161      

162 二、 Hash函数 162 哈希函数H应具有的性质: 1)H可以作用于一个任意长度的数据分组,产生一个固定长度的输出。
2)任意给定消息M,计算h=H(M)容易。 3)任意给定h,找到M满足H(M)=h很难,计算上不可行性,即单向性。 4)任意给定的数据块M,找到不等于M的M’,使H(M)=H(M’)在计算是不可行性。有时也称弱抗冲突。 5)找到任意数据对(x,y),满足H(x)= H(y)是计算不可行的。有时也称强抗冲突。   162      

163 二、 Hash函数 2.简单的哈希算法 简单哈希函数的操作即:输入消息序列。输入的处理方式是,以迭代的方式每次处理一个分组。一个最简单的哈希函数是每个分组按比特异或(XOR)。 将消息M分成N个定长分组:M1 M2 M3 M4 …MN  M1 M2 M3 M4 …MN ⊕ M1⊕M2⊕M3⊕M4⊕…⊕MN 输入消息分组 输出哈希值    163      

164 二、 Hash函数 Hash函数的构造形式: (1)利用数学难题,如因子分解、离散对数问题等 (2)利用某些私钥密码体制,如DES等
(3)通过直接构造复杂的非线性关系,如MD5,SHA-1等 (签名一个消息摘要)   164      

165 二、 Hash函数----消息认证方案 E D H 1)对附加哈希值的消息进行加密 165 用户A 用户B M || 比较 K
Ek[M‖H(M)] M‖H(M) H(M) D 用户A M 1)对附加哈希值的消息进行加密   165      

166 二、 Hash函数----消息认证方案 H Ek [H(M)] K E 比较 || D M 2)对附加哈希值的消息进行加密   166      

167 二、 Hash函数----消息认证方案 H E D 3) 对附加哈希值的消息进行加密 167 用户A 用户B M || 比较
ERa [H(M)] KUa E KRa 比较 || D M 用户B 3) 对附加哈希值的消息进行加密   167      

168 二、 Hash函数----消息认证方案 (d)同时提供保密性和数字签名   168      

169 e)各方共享一个公共的秘密值S的哈希认证码
二、 Hash函数----消息认证方案 e)各方共享一个公共的秘密值S的哈希认证码   169      

170 二、 Hash函数----消息认证方案 (f)通过包含消息和哈希值的整体进行 加密就能对方法(e)增加保密功能   170      

171 二、 Hash函数----攻击 对Hash函数的攻击有两类 (1)强力攻击(或穷举攻击) 典型防范:生日攻击
任找23人,从中总能选出两人具有相同生日的概率至少为1/2。根据此特点,一个40bit的消息摘要将是不安全的。因为在100万个随机散列值中将找到一个碰撞的概率为1/2。通常建议,消息摘要的尺寸为128bits。 (2)特殊攻击。 (签名一个消息摘要)   171      

172 二、 Hash函数----常用Hash算法
(1)MD5算法:   MIT的Rivest提出, MD5不基于任何假设和密码体制,采用直接构造法。   输入:任意长度的消息;   输出:128位消息摘要;   处理:以512位输入数据块为单位;   安全性:采用穷举攻击寻找一个消息具有给定Hash值的计算困难性为2128,若采用生日攻击,寻找有相同Hash值的两个消息需要试验264个消息。单轮MD5已有攻击结果,但对MD5全部四轮无有效攻击法。 MIT:麻省理工学院   172      

173 二、 Hash函数----常用Hash算法
(2)安全散列算法(SHA) :   由NIST 提出,作为联邦信息处理标准于1993年发表(FIPS PUB 180),1995年修订,称为SHA-1,SHA-1基于MD4设计。设计目的是用于数字签名标准算法DSS。 输入:最大长度为264位的消息; 输出:160位消息摘要; 处理:输入以512位数据块为单位处理; 安全性:消息摘要比MD5长32位,采用穷举攻击计算困难性为2160,若采用生日攻击计算困难性为280,安全性更高。但硬件实现速度较MD5慢25%。 MIT:麻省理工学院   173      

174 三、数字签名—概述  数字签名是以密码学的方法对数据文件产生的一组代表签名者身份和数据完整性的数据信息。它提供了一种鉴别方法,以解决伪造、抵赖、冒充等问题。它在身份认证、数据完整性、不可否认性以及匿名性等方面有重要应用,特别是在大型网络安全通信中的密钥分配、认证以及电子商务系统中具有重要作用。   174      

175 三、数字签名—概述 手写签名的特点: 1. 签名是可信的。签名使文件的接收者相信签名者是慎重地在文件上签名的。
2. 签名是不可伪造的。签名证明是签字者而不是其他的人在文件上签字。 3. 签名不可重用。签名是文件的一部分,不可能将签名移动到不同的文件上。 4. 签名后的文件是不可变的。在文件签名以后,文件就不能改变。 5. 签名是不可抵赖的。签名和文件是不可分离的,签名者事后不能声称他没有签过这个文件。 175

176 三、数字签名—概述   数字签名和手写签名不同,其区别在于:手书签字是模拟的,它反映某个人的个性特征是不变的;数字签名是数字串,它随被签的对象而变化,即同一当事者对不同文件的数字签名是不相同的,这样任一文件的数字签名不可能被直接复制到不同的文件上进行伪造签名。 仲裁协议(Arbitration Protocol) 裁决协议(Adjudicated Protocol) 自动执行协议(Self-enforcing Protocol)   176      

177 三、数字签名—概述 1.仲裁协议 在完成协议的过程中,引入值得信任的、公正的第三方仲裁者。仲裁者能帮助互不信任的双方完成协议 。 177 T
B T A 举例:如网络上购物   177      

178 三、数字签名—概述 2.裁决协议 在仲裁协议中引入仲裁者会增加系统的造价,在实际中引入另外裁决协议。只有发生纠纷时,裁决者才执行此协议;而无纠纷发生时,并不需要裁决人的参与。 B T A 证据 举例:签合同,有纠纷时才找法官   178      

179 三、数字签名—概述 3.自动执行协议 协议本身就保证公平性,它不需要仲裁者的参与,也不需要裁决者来解决争端,如果协议中的一方试图欺骗另一方,那么另一方会立刻检测到该欺骗的发生,并停止执行协议。 B A   179      

180 三、数字签名—概述 数字签名必须保证以下五点: (1)可验证:签字是可以被确认的; (2)防抵赖:发送者事后不承认发送报文并签名;
数字签名是一种包括防止源点或终点否认的认证技术。可用来保护信息的真实性、完整性和信息的来源。 数字签名必须保证以下五点: (1)可验证:签字是可以被确认的; (2)防抵赖:发送者事后不承认发送报文并签名; (3)防假冒:攻击者冒充发送者向收方发送文件; (4)防篡改:收方对收到的文件进行篡改; (5)防伪造:收方伪造对报文的签名。   180      

181 三、数字签名—概述   数字签名技术是公钥密码体制的一种应用。签名者使用自己私钥对签名明文的“摘要”加密,就生成了该文件的“数字签名”。签名者将明文和数字签名一起发送给接收者,接收者用该签名者公布的公钥来解开数字签名,将其与明文的“摘要”进行比较,便可检验文件的真伪,并确定签名者的身份。  数字签名体制一般由签名算法和验证算法两部分组成。签名算法或签名密钥是秘密的,只有签名人掌握;验证算法应当公开,以便于他人进行验证。   181      

182 三、数字签名—RSA数字签名 RSA签名体制是一种比较普遍的数字签名方案,其安全性依赖于大整数因子分解的困难性。
1、体制参数 令n=p*q,选e并计算出d使e*d=1mod (n) ,公开n和e , 将p、 q和d保密。 2、签字过程 对消息m,用户A计算: S=Sigk(m)=md mod n s即为m的数字签名。 3、验证过程 用户B收到m, s后,验证Verk(m,s)=真 m  se (modn)   182      

183 三、数字签名—直接的数字签名 采用公开密钥的直接的数字签名 A 发方 B 收方 M D E KUA KRA
DKRA(M) 使用发方的私钥对消息M进行数字签名   183      

184 三、数字签名—直接的数字签名 采用公开密钥的直接的数字签名 发送者A 接收者B RSA RSA 解密 加密 A公钥 A私钥
使用RSA算法对消息M进行数字签名   184      

185 三、数字签名—直接的数字签名 直接的数字签名: A私钥 发送者A 接收者B RSA 解密 加密 B公钥 B私钥 A公钥 明文
签名 加密 解密 认证 具有保密性的数字签名   185      

186 三、数字签名—需仲裁的数字签名 (1)对称加密,仲裁能看到消息 186 M‖EKAY[IDA‖H(M)] A Y
B M‖EKAY[IDA‖H(M)] EKYB [IDA‖M‖EKAY[IDA‖H(M)]‖T] (1)对称加密,仲裁能看到消息   186      

187 三、数字签名—需仲裁的数字签名 (2)对称加密,仲裁不能看到消息 187 IDA‖EKAB[M]‖EKAY[IDA‖H(EKAB[M])]
EKYB [IDA‖EKAB [M]‖EKAY[IDA‖H(EKAB[M])]‖T] A Y (2)对称加密,仲裁不能看到消息   187      

188 三、数字签名—需仲裁的数字签名 IDA‖EKRA [IDA‖EKUB(EKRA[M])] A Y
EKRY [IDA‖EKUB[EKRA[M]]‖T] A Y (3)公开密钥加密,仲裁不能看到消息   188      

189 三、数字签名—ElGamal签名方案 安全性主要是基于有限域上离散对数问题的难解性。 ElGamal数字签名体制的算法描述: (1)体制参数
  安全性主要是基于有限域上离散对数问题的难解性。  ElGamal数字签名体制的算法描述:  (1)体制参数 P为素数,gFp*是一个本原元,随机选择整数x,0<x<p-1,计算 p、g为系统公开参数,x为私钥,y为公钥  (2)签名算法 设消息为m,用户A秘密选取随机数k, 0<k<p-1 并计算: r= gk mod p s=(m-xr)k-1 mod(p-1)   189      

190 三、数字签名—ElGamal签名方案 (r,s)即为m的数字签名。 (3)验证过程: 用户B收到m,r,s后,验证
Ver(m, r,s)=真 yrrs  gm (modp) 因为 ElGamal数字签名对同一消息m,由于随机数k不同而有不同的签名结果。   190      

191 三、数字签名—DSS签名标准 DSS签名标准是1991年8月由美国NIST公布,并于1994年采纳为标准DSS。它是在ElGamal方案基础上设计的。DSS中所采用的算法为DSA。 DSA算法描述: (1)体制参数 p:素数且2511<p<2512;q:素数且2159<p<2160且q|p-1; g: ,其中h是小于(p-1)且满足 的任意数; x:小于q的正整数, y:   191      

192 三、数字签名—DSS签名标准 另外,算法使用一个单向散列函数H(m)。标准指定为SHA。 其中p、q、g为系统公开参数,公钥为y,私钥为x
(2)签名算法 设消息为m(0<m<p),用户A随机选取小于q的随机数k, 并计算: r= (gk modp) modq s=(H(m)+xr)k-1 modq (r,s)即为m的数字签名。 (3)验证算法 用户B收到m,r,s后,计算   192      

193 三、数字签名—DSS签名标准 如果v=r,则签名有效。因为   193      

194 §6 数字水印 数字水印(Digital Watermark)技术,是指在数字化的数据内容中嵌入不明显的记号。被嵌入的记号通常是不可见或不可察的,但是通过计算操作可以检测或者被提取。水印与源数据紧密结合并隐藏其中,成为源数据不可分离的一部分,并可以经历一些不破坏源数据使用价值或商用价值的操作而存活下来。 194

195 §6 数字水印 数字水印的基本特性: 1. 隐藏性(透明性)
§6 数字水印 数字水印的基本特性: 1. 隐藏性(透明性) 水印信息和源数据集成在一起,不改变源数据的存储空间; 嵌入水印后,源数据必须没有明显的降质现象; 水印信息无法为人看见或听见,只能看见或听见源数据; 2. 安全性 指水印信息隐藏的位置及内容不为人所知。一般需要采用隐蔽的算法,以及对水印进行预处理(如加密)等措施。 195

196 §6 数字水印 3. 鲁棒性(免疫性、强壮性) 指嵌入水印后的数据经过各种处理操作和攻击操作以后,不导致其中的水印信息丢失或被破坏的能力。 处理操作包括:模糊、几何变形、放缩、压缩、格式变换、剪切、D/A和A/D转换等 攻击操作包括:有损压缩、多拷贝联合攻击、剪切攻击、解释攻击等。 196

197 §6 数字水印 多媒体通信业务和Internet——“数字化、网络化”的迅猛发展使多媒体作品纷纷以网络形式发布,任何人都可以通过网络轻易的取得他人的原始作品,尤其是数字化图像、音乐、电影等等,甚至不经作者的同意而任意复制、修改,从而侵害了创作者的著作权。从目前的数字水印系统的发展来看,可以分为: 1. 所有权确认 2. 来源确定 完整性确认 4. 隐式注释 使用控制 197

198 §6 数字水印 所有嵌入数字水印的方法都包含一些基本的构造模块,即一个数字水印嵌入系统和一个数字水印提取系统。 数字水印嵌入过程 198

199 §6 数字水印 数字水印检测过程 199

200 §7 公钥基础设施 PKI 为管理公开密钥(生成、认证、存储、安装),须建立一套公钥基础设施PKI( Public Key Infrastructure)。 PKI的基本组成元素是证书颁发机构CA(Certificate Authority),PKI主要完成功能:   ①为用户生成一对密钥(公开密钥,私有密钥),并通过一定的途径分发给用户;   ②CA为用户签发数字证书,形成用户的公开密钥信息,并通过一定的途径分发给用户;   ③对用户证书的有效性进行验证;   ④对用户的数字证书进行管理。这些管理包括有效证书的公布、撤销证书的公布、证书归档等。   200      

201 §7 公钥基础设施 PKI PKI的基本流程   201      

202 §7 公钥基础设施 PKI---数字证书 数字证书是网络用户的身份证明,相当于现实生活中的个人身份证。
数字证书提供了一种系统化的、可扩展的、统一的、容易控制的公钥分发方法。是一个防篡改的数据集合,它可以证实一个公开密钥与某一最终用户之间的捆绑。 证书颁发机构CA,它向用户颁发数字证书,证书中含有用户名、公开密钥以及其他身份信息。由于这些信息都由证书颁发机构对之进行了数字签名,就形成一个证明这个公开密钥可靠性的证书,因而现在就可以传输和存储这些证书了。   202      

203 §7 公钥基础设施 PKI---数字证书 在大型网络中, CA可能有多个。如果这些CA之间存在信赖关系,则用户就可通过一个签名链去设法认证其中任一CA所签发的证书。 PKI就是对这些公开密钥证书的管理体制。 基于PKI的数字证书将公钥与其用户的身份捆绑在一起,证书必须要有一定的标准格式。 目前广泛采用的证书格式是国际电信联盟(ITU)提出的X.509v3格式   203      

204 §7 公钥基础设施 PKI---数字证书 基于X.509数字证书 204 内容 说明 版本V X.509版本号 序号
证书序列号:用于标识证书 算法识别符AI AI:产生证书算法的识别符 参数 算法规定的参数 发文者 CA:是建立和签署文件CA的ID 超始时间 证书的有效期 终止时间 TA 持证书人名 算法 签字用的公钥算法 算法的参数 持证书人公钥 证实签字用的公钥 数字签字 证书所有数据经H运行后CA以私钥签字 基于X.509数字证书   204      

205 §7 公钥基础设施 ---PKI的构成 策略批准机构(PAA) 策略控制机构(PCA) 认证机构(CA) 在线证书申请(ORA)
CAn ORA1 ORAn PCA2 典型的PKI体系结构   205      

206 §7 公钥基础设施 ---PKI的构成 策略批准机构(PAA)
 在整个PKI体系中处于核心位置。创建整个PKI系统的方针、策略,批准本PAA下属的PCA的策略,为下属PCA签发公钥证书。 策略控制机构(PCA)  制定下属CA的具体策略,可以是上级PAA策略的扩充或细化。 认证机构(CA)  具备有限的策略制定功能,按照上级PCA制定的策略,担任具体的用户公钥证书的签发、生成和发布及CRL生成及发布职能。 在线证书申请(ORA)   进行证书申请者的身份认证,向CA提交证书申请,验证接收CA签发的证书,并将证书发放给申请者。   206      

207 §7 公钥基础设施 ---PKI的构成 1.证书颁发机构
CA认证中心充当可信的第三方,通过对一个包含身份信息和相应公钥的数据结构进行数字签名来捆绑用户的公钥和身份,这个数据结构被称为公钥证书(简称证书)。证书机构主要负责对用户的密钥或证书发放、更新、废止、认证等管理工作。 CA分为两类:公共CA通过Internet运作,向大众提供认证服务;这类CA不仅对最终用户进行认证,而且还对组织认证。私有CA通常在一个公司的内部或者其他的封闭的网络内部建立,为它们的网络提供更强的认证和访问控制。   207      

208 §7 公钥基础设施 ---PKI的构成 2.注册机构(RA)
由于一个PKI区域的最终实体数量的增加,RA可以充当CA和它的最终用户之间的中间实体,辅助CA来完成日复一日的证书处理功能。 RA通常提供下列功能: (1)接收和验证新注册人的注册信息; (2)代表最终用户生成密钥; (3)接收和授权密钥备份和恢复请求; (4)接收和授权证书撤销请求; (5)按需分发或恢复硬件设备。   208      

209 §7 公钥基础设施 ---PKI的构成 3.证书目录
证书生成后必须存储。CA通常使用一个证书目录,或者中央存储点。作为PKI的一个重要的组成部分,证书目录提供证书管理和分发的单一点。 证书库必须使用某种稳定可靠的、规模可扩充的在线资料库,以便用户能找到安全通信需要的证书信息或证书撤销信息。实现证书库的方式有多种,包括X.500、轻量级目录访问协议LDAP、Web服务器、FTP服务器、域名解析服务器DNS、数据库服务器等。具体使用哪种根据实际需要而定,但真正大型的企业级PKI一般使用X.500目录服务和轻量级目录访问协议LDAP。   209      

210 §7 公钥基础设施 ---PKI的构成 4.密钥恢复服务器
在任何可操作的PKI环境中,在密钥或证书在生命周期内都会有部分用户可能会丢失他们的私钥。CA必须撤销相应的公钥证书。或生成新的密钥对产生相应的公钥证书。结果,在此事件之前的所有加密数据都将是不可恢复的。都会对PKI的实体造成沉重的负担。 解决办法是提供一个密钥备份和恢复服务器。其目的是为CA提供在创建私钥时备份私钥和在以后恢复私钥的一种简单方式。   210      

211 §7 公钥基础设施 ---PKI的构成 5.管理协议 有助于一个PKI内的最终用户之间的在线通信和管理。管理协议应该支持下列功能:
注册:用户首次将自己告知CA的过程。 初始化:在最终用户系统安全运转前,安装那些与存储在基础设施的其他地方的密钥有适当关系的密钥信息。 认证:CA为用户的公钥颁发证书的过程,将证书返回给最终用户系统或将证书公布在证书库中。 密钥恢复:最终用户客户端的密钥信息可以通过CA或者密钥备份系统来备份。   211      

212 §7 公钥基础设施 ---PKI的构成 密钥更新:所有的密钥对必须定期更新。在这个过程中,将替换密钥对同时并颁发新的证书。
撤销:当一个授权用户通知CA出现了一个需要撤销证书的异常情形时才激活该过程。 交叉认证:两个CA交换用于建立一个交叉证书的信息。一个交叉证书是一个CA颁发给另一个CA的证书,该证书中含有用于颁发证书的CA签名密钥。 在线协议并不是惟一实现这些功能的方式,也可以使用脱机方式。   212      

213 §7 公钥基础设施 ---PKI的构成 6.操作协议(Operational Protocol)
操作协议是允许在目录、最终用户和可信主体之间传输证书和撤销的状态信息的协议。X.509标准规定了如何构建传输的数据。下面的协议是常用的协议:HTTP、FTP、 和LDAP。各种PKI构成部分之间交互作用的方式如图 4‑13所示。   213      

214 §7 公钥基础设施 ---PKI的构成 PKI构成部分之间交互作用 214 密钥恢复 证书颁发 服务器 机构(CA) X.500 目录
最终用户 密钥恢复 服务器 证书颁发 机构(CA) 注册机构 (RA) X.500 目录 PKI构成部分之间交互作用   214      

215 §7 公钥基础设施 ---PKI的构成 7.数字时间戳
  215      

216 §7 公钥基础设施 ---PKI的构成 8.客户端软件
客户端软件是一个全功能的、可操作PKI的重要组成部分。独立于所有应用程序,若完成PKI服务的客户端功能,应用程序通过标准接入点与客户端软件连接。 完整的PKI应由以下服务器和客户端软件构成: CA服务器:提供产生、分发、发布、撤销、认证等服务; 证书库服务器:保存证书和撤销消息; 备份和恢复服务器:管理密钥历史档案; 时间戳服务器:为文档提供权威时间信息。   216      

217 §7 公钥基础设施 ---证书的管理 1.证书的生存周期 证书从产生到销毁具有一定的生命周期,在证书的生命周期里PKI对证书具有如下功能:
§7 公钥基础设施 ---证书的管理 1.证书的生存周期 证书从产生到销毁具有一定的生命周期,在证书的生命周期里PKI对证书具有如下功能: (1)证书产生、验证  和分发密钥。 (2)证书申请。 (3)证书的获取。 (4)审核证书。 (5)签发证书。 (6)证书安装。 (7)证书使用。 (8)证书废止的申请。 (9)密钥的恢复。 (10)CRL的获取。 (11)密钥更新、审计   217      

218 §7 公钥基础设施 ---证书的管理 公钥/私钥生成 申请 证书 审核 签发 撤销 安装 废止 使用 过期 更新   218      

219 §7 公钥基础设施 ---证书的管理 2.注册和颁发证书 219 私钥秘密保存 私钥 1 用户产生一对私钥/公钥 2 用户填写证书申请表
§7 公钥基础设施 ---证书的管理 2.注册和颁发证书  用户产生一对私钥/公钥 用户填写证书申请表 发证机构(CA)验证核实后,用自己的私钥签发电子证书 用户签名 ※ 发证机关签名 发证机关 用户信息 公钥 私钥 私钥秘密保存 CA的 1 2 3   219      

220 §7 公钥基础设施 ---证书的管理 2.注册和颁发证书 发放证书的过程包括四个基本的步骤: (1)CA接受证书请求。
§7 公钥基础设施 ---证书的管理 2.注册和颁发证书 发放证书的过程包括四个基本的步骤: (1)CA接受证书请求。 (2)CA按照CA身份证明条件确认该请求者的信息。 (3)CA利用它的私用密钥将它的数字签署应用于该证书。 (4)CA发放该证书,将它用做PKI内的安全性凭证 。   220      

221 §7 公钥基础设施 ---证书的管理 3.证书的使用
§7 公钥基础设施 ---证书的管理 3.证书的使用 当用户向某一服务器提出访问请求时,服务器要求用户提交数字证书。收到用户的证书后,服务器利用CA的公开密钥对CA的签名进行解密,获得信息的散列码。然后服务器用与CA相同的散列算法对证书的信息部分进行处理,得到一个散列码,将此散列码与对签名解密所得到的散列码进行比较,若相等则表明此证书确实是CA签发的,而且是完整性未被篡改的证书。这样,用户便通过了身份认证。服务器从证书的信息部分取出用户的公钥,以后向用户传送数据时,便以此公钥加密,对该信息只有用户可以进行解密。   221      

222 §7 公钥基础设施 ---证书的管理 4.挂起证书 CA需要临时限制证书的使用,但又不需要撤销证书。
§7 公钥基础设施 ---证书的管理 4.挂起证书   CA需要临时限制证书的使用,但又不需要撤销证书。 例如,一个企业最终用户可能正在出差。在这种情况下,可以挂起(suspend)证书;这样就可以禁止使用那些带有PKI功能的应用程序,这些应用程序在该雇员不在的情况下是不能访问的。当该雇员返回时,CA清除该挂起。由于这种方法不需要先请求吊销证书然后再重新颁发证书,从而节省了CA的时间。为了挂起一个证书,CA在CRL原因代码扩展项中使用证书冻结值。   222      

223 §7 公钥基础设施 ---证书的管理 5.证书撤销 CA签发的证书捆绑了用户的身份和公钥,在生命周期里都是有效的。
§7 公钥基础设施 ---证书的管理 5.证书撤销 CA签发的证书捆绑了用户的身份和公钥,在生命周期里都是有效的。 但在现实环境中,由于这些原因包括:用户身份的改变、对密钥的怀疑(丢失或泄露)、用户工作的变动、认为CA证书已泄露等。必须存在一种机制撤销这种认可,典型做法是在老证书过期前颁发一个新证书。   223      

224 §7 公钥基础设施 ---证书的管理 证书撤销最常用的方式是使用证书废除列表(CRL-Certificate Revocation List),CRL是一种包含了撤销的证书列表的签名数据结构。它含有带时间戳的已撤销证书的列表。CRL的完整性和可靠性由它本身的数字签名来保证,通常CRL的签名者一般就是证书的签发者。当CRL创建并且被签名以后,就可以通过网络自由地分发,或者以处理证书的同样方式存储在一个目录中。 CA会定期地发布CRL,从几个小时到几个星期不等。不管CRL中是否含有新的撤销信息,都会发布一个新的CRL。   224      

225 §7 公钥基础设施 ---证书的管理 6.密钥备份与恢复
§7 公钥基础设施 ---证书的管理 6.密钥备份与恢复 在任何可操作的PKI环境中,在密钥或证书的生命周期内都会有部分用户丢失他们的私钥,可能有如下的原因:  (1)遗失加密私钥的保护口令;  (2)存放私钥的媒体被损坏,如硬盘或IC卡遭到破坏。 在很多环境下,由于丢失密钥造成被保护数据的丢失或不可访问所造成的损失非常巨大,因此通行的办法是备份并能恢复私钥(在加密证书和签字证书双证书模型中,只能备份加密私钥而不能备份签字私钥)。   225      

226 §7 公钥基础设施 ---证书的管理 7.自动密钥更新
§7 公钥基础设施 ---证书的管理 7.自动密钥更新 一个证书的有效期是有限的,这既可能是理论上的原因也可能是基于安全策略上的考虑。用手工操作定期更新自己的证书是件麻烦的工作,用户常忘记自己证书的过期时间。如果忘了定期更新,他们就无法获得PKI的相关服务。因此,PKI本身应能自动完成密钥或证书的更新,而无需用户的干预。   226      

227 §7 公钥基础设施 ---证书的管理 8.密钥文档管理
§7 公钥基础设施 ---证书的管理 8.密钥文档管理 在证书的生命周期中,每个用户在享受PKI服务期间会使用很多不同的密钥或证书。如果没有密钥的历史档案管理,用户无法查询或恢复以前的密钥或证书加密信息,因此必须对密钥历史档案进行管理。   227      


Download ppt "第11讲 密码学与信息加密 此为封面页,需列出课程编码、课程名称和课程开发室名称。"

Similar presentations


Ads by Google