现代密码学理论与实践第13章 数字签名和认证协议.ppt
《现代密码学理论与实践第13章 数字签名和认证协议.ppt》由会员分享,可在线阅读,更多相关《现代密码学理论与实践第13章 数字签名和认证协议.ppt(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2021/8/5,现代密码学理论与实践-13,1/47,现代密码学理论与实践第13章 数字签名和认证协议,Fourth Edition by William Stallings Slides by 杨寿保 2012年11月,2021/8/5,现代密码学理论与实践-13,2/47,本章要点,数字签名是一种认证机制,它使得消息的产生者可以添加一个起签名作用的码字。通过计算消息的散列值并用产生者的私钥加密散列值来生成签名。签名保证了消息的来源和完整性。 相互认证协议使得通信的各方对相互的身份感到放心, 并交换会话密钥。 单向认证时, 接收方想确信消息确实来自声称的发送方。 数字签名标准(DSS)是N
2、IST标准,它使用安全散列算法(SHA)。,2021/8/5,现代密码学理论与实践-13,3/47,13.1 数字签名Digital Signature,数字签名的简单定义 数字签名是使以数字形式存储的明文信息经过特定密码变换生成密文,作为相应明文的签名,使明文信息的接收者能够验证信息确实来自合法用户,以及确认信息发送者身份。 对数字签名的基本要求 在收发双方不能完全信任的情况下,需要除认证之外的其他方法来解决假冒和否认的问题,数字签名则是解决办法; 签名接收者能容易地验证签字者对消息所做的数字签名,包括日期和时间; 任何人,包括签名接收者,都不能伪造签名者的签字; 发生争议时,可由第三方解决
3、。,2021/8/5,现代密码学理论与实践-13,4/47,数字签名与消息认证的区别 消息认证是使消息接收方验证消息发送者发送的内容有无被修改过,对防止第三者破坏足够,但收发双方有利害冲突时就无法解决纷争,需要更严格的手段,即数字签名。 数字签名的基本形式 对消息签名的两种方法 对消息整体的签字,将被签消息整体经过密码变换得到签字; 对消息摘要的签字,附在被签消息之后,或嵌在某一特定位置上作一段签字图样。 两类数字签名 确定性数字签名,明文与签名一一对应; 概率性数字签名,一个明文可以有多个合法签名,每次都不一样。,数字签名的基本形式,2021/8/5,现代密码学理论与实践-13,5/47,1
4、3.1.2 直接数字签名,直接数字签名仅涉及通信方(信源、信宿) 假定信宿知道信源的公开密钥 数字签名通过信源对整个报文用私有密钥加密,或对报文的摘要加密来实现 通常先签名,然后对消息和签名一起加密 安全性依赖于信源私有密钥的安全性,2021/8/5,现代密码学理论与实践-13,6/47,13.1.3 仲裁数字签名,涉及到一个仲裁方(arbiter A) 签名方的签名报文首先送给仲裁者 仲裁者对报文和签名进行测试以检验出处和内容,然后注上日期和仲裁说明后发给接收方 要求仲裁方在一定程度上是可以信任的 可以用对称密码或公开密钥密码实现 仲裁方可以知道消息,也可以不知道消息,2021/8/5,现代
5、密码学理论与实践-13,7/47,需要仲裁的数字签名技术,2021/8/5,现代密码学理论与实践-13,8/47,13.2 认证协议,认证服务和功能 认证是证实信息交换过程有效性和合法性的一种手段,包括对通信对象的认证(身份认证)和报文内容的认证(报文认证),起到数据完整性的保护。这里有 信息的真实性 存储数据的真实性 接收方提供回执 发送方不可否认 时效性和公证可能性 认证的目的 防窃听、防假冒或拦截、防窃取等,2021/8/5,现代密码学理论与实践-13,9/47,单向认证 使用对称加密方法,即一次一密方法的变形 使用公开密钥方法:A向B声称是A,B则向A送一随机数R,A用其私有密钥加密送
6、B,B用A的公开密钥验证。 使用改进的口令方式 双向认证 对称密钥方式(三次握手) 公开密钥方式,A、B双向使用不同的R值 时标方式 可信中继 使用KDC密钥分发中心 通过DASS (Distributed Authentication Security Service) 群认证(Group Authentication),基本认证方法,2021/8/5,现代密码学理论与实践-13,10/47,13.2.1 双向认证,双向认证协议可以使通信双方达成一致并交换会话密钥 重放攻击:合法的签名消息被拷贝后重新送出 简单重放 可检测的重放 不可检测的重放 不加修改的逆向重放 重放攻击的解决方法 使用序
7、列号 使用时间戳(需要同步时钟) 挑战/应答(使用单独的nonce),2021/8/5,现代密码学理论与实践-13,11/47,对称加密方法,使用两层传统加密密钥结构来保证分布环境中通信的保密性 通常需要可信密钥分发中心Key Distribution Center (KDC) 每一方与KDC共享主密钥 KDC产生双方通信要用的会话密钥 用主密钥来分发会话密钥,2021/8/5,现代密码学理论与实践-13,12/47,Needham-Schroeder Protocol,最初期的第三方密钥分发协议之一 KDC负责为用户A和B之间的通信产生会话密钥 协议如下: 1. AKDC: IDA | ID
8、B | N1 2. KDCA: EKaKs | IDB | N1 | EKbKs|IDA 3. AB: EKbKs|IDA 4. BA: EKsN2 5. AB: EKsf(N2),2021/8/5,现代密码学理论与实践-13,13/47,Needham-Schroeder Protocol,2021/8/5,现代密码学理论与实践-13,14/47,Needham-Schroeder Protocol,用于安全地分发A和B通信的新会话密钥 对于重放攻击是脆弱的,如果老会话密钥被破了的话 因此需要第三个消息来使得B相信是和A通信 有几种改进方法 增加时间戳(Denning 81) 使用一个额外的
9、nonce (Neuman 93),2021/8/5,现代密码学理论与实践-13,15/47,Denning方法,Denning 81 1. AKDC: IDA | IDB 2. KDCA: EKaKs | IDB |T| EKbKs|IDA|T 3. AB: EKbKs |IDA |T 4. BA: EKsN1 5. AB: EKsf(N1) A and B verify timeliness by |Clock T| t1 + t2 t1: time difference between KDC and local ones, t2: network delay,2021/8/5,现代密码
10、学理论与实践-13,16/47,Neuman方法,Neuman 93 1. AB: IDA |NA 2. BKDC: IDB | NB | EKbIDA | NA |Tb 3. KDCA: EKaIDB|NA|Ks|Tb|EKbIDA|Ks|Tb|NB 4. AB: EKbIDA | Ks |Tb |EKsNB 在有效时限内,A与B建立新的会话: 1. AB: EKbIDA | Ks |Tb, Na 2. BA: Nb , EKsNa 3. AB: EKsNb,2021/8/5,现代密码学理论与实践-13,17/47,使用公开密钥密码实现双向认证,有很多使用公开密钥密码的双向认证方法 需要确保
11、其他各方都拥有正确的公开密钥 使用一个集中式的认证服务器(AS) 现有很多不同的使用时间戳或nonce的方法,2021/8/5,现代密码学理论与实践-13,18/47,Denning AS Protocol,Denning 81 presented the following: 1. AAS: IDA | IDB 2. ASA: EKRasIDA|KUa|T | EKRasIDB|KUb|T 3. AB: EKRasIDA|KUa|T | EKRasIDB|KUb|T | EKUbEKRaKs|T 会话密钥由A选择的, 因此AS不一定是可信的 时间戳可以防范重放攻击, 但是需要同步时钟,202
12、1/8/5,现代密码学理论与实践-13,19/47,13.2.2 单向认证,当通信双方不同时在线时需要用到单向认证,比如发送电子邮件 消息头部必须是可读的以便在系统中传输 也可能希望消息的主体保密,发送者认证,2021/8/5,现代密码学理论与实践-13,20/47,使用对称密码实现单向认证,可以把KDC使用方法应用于此,不需要最终交换nonce 1. AKDC: IDA | IDB | N1 2. KDCA: EKaKs | IDB | N1 | EKbKs|IDA 3. AB: EKbKs|IDA | EKsM 不能抗重放攻击 可以在消息中加入时间戳,由于电子邮件处理可能存在大量时延,加入
13、时间戳的作用是有限的,2021/8/5,现代密码学理论与实践-13,21/47,公钥加密方法实现单向认证,已有一些适用的公钥方法 如果保密是主要关心的问题,可以使用 AB: EKUbKs | EKsM 消息和会话密钥都加密了 如果需要认证,则可基于数字证书使用数字签名的方法 AB: M | EKRaH(M) | EKRasT|IDA|KUa 这里有消息, 签名, 证书,2021/8/5,现代密码学理论与实践-13,22/47,13.3 数字签名标准(DSS),DSS是美国政府作为标准FIPS 186发布的 DSS使用SHA作为散列算法 由NIST和NSA在90年代早期设计 DSS是标准, DS
14、A是其算法 DSS是ElGamal和Schnorr算法的变形 DSS产生320位数字签名, 但是具有512-1024位的安全性 DSS的安全依赖于DLP问题,2021/8/5,现代密码学理论与实践-13,23/47,2021/8/5,现代密码学理论与实践-13,24/47,DSA密钥产生,全局共享的公开密钥值为(p, q, g) p是大素数 p = 2L L为512到1024位并且是64的倍数 选择q, 是p-1的160位的素因子 选择g, 使得 g = h(p-1)/q where h 1 用户选择私钥,并计算其公开密钥 选择 xq 计算 y = gx (mod p),2021/8/5,现代
15、密码学理论与实践-13,25/47,DSA签名的产生,若要签名消息M, 签名方则 产生一个随机的签名密钥k, kq k 必须是随机的,并且不能重复使用 计算签名 r = (gk(mod p) (mod q) s = k-1(SHA(M)+ x*r) (mod q) 把签名(r, s)和消息M一起发送给接收方,2021/8/5,现代密码学理论与实践-13,26/47,DSA签名的验证,接收方收到消息M和签名(r, s) 接收方计算 w = s-1(mod q) u1= (SHA(M) *w) (mod q) u2= (r*w) (mod q) v = (gu1 *yu2(mod p) (mod
16、q) 如果v=r, 则签名通过验证 更多的证明细节可以参考有关资料,2021/8/5,现代密码学理论与实践-13,27/47,DSS Signing and Verifying,2021/8/5,现代密码学理论与实践-13,28/47,2021/8/5,现代密码学理论与实践-13,29/47,RSA方法的数字签名 给定n = pq,p和q是大素数,ed mod(n) = 1, 公开密钥为(n, e),秘密密钥为(p, q, d) 加密:m 0, n-1,gcd(m, n) = 1, 则c = me mod n 解密:m = cd mod n = (me mod n )d mod n = med
17、 mod n = m 签名:s = md mod n 验证:m = se mod n = (md mod n )e mod n = med mod n = m,基于非对称密码体制的数字签名,2021/8/5,现代密码学理论与实践-13,30/47,例:n = 55 = 11x5, (n) = 40, 选d = 11, 则e = 11 m = 3, 签名s = 311 mod 55 =47 验证:m = s11 mod 55 = 4711 mod 55 = 3 例:n = 65, (n) = 48, 选d = 5, 则e = 29, m = 3 s = 35 mod 65 = 48, 验证:m
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 现代密码学理论与实践第13章 数字签名和认证协议 现代 密码学 理论 实践 13 数字签名 认证 协议
限制150内