资源预览内容
第1页 / 共56页
第2页 / 共56页
第3页 / 共56页
第4页 / 共56页
第5页 / 共56页
第6页 / 共56页
第7页 / 共56页
第8页 / 共56页
第9页 / 共56页
第10页 / 共56页
亲,该文档总共56页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
2018/10/16,1,第六讲 数字签名与信息隐藏,王志伟 Email: zhwwangnjupt.edu.cn,2018/10/16,2,课程内容,数字签名原理,鉴别协议,数字签名算法,信息隐藏,4,1,2,3,5,数字水印,数字签名及其应用,公钥密码体制为解决计算机信息网中的安全提供了新的理论和技术基础。公钥密码体制的最大特点是采用两个密钥将加密和解密能力分开,使得通信双方无需事先交换密钥就可进行保密通信,从而大大减少了多实体通信网实体之间通信所需的密钥量,便于密钥管理。此外,公钥体制的一个重要的特性是可用于实现数字签字。数字签名在信息安全,包括身份认证、数据完整性、不可否认性以及匿名性等方面有着重要的应用,特别是在大型网络安全通信中的密钥分配、认证以及电子商务系统安全性等方面具有非常重要的作用。,2018/10/16,4,数据的易复制性,2018/10/16,5,签名,2018/10/16,6,考虑两种情形,Bob可以伪造一条消息并称该消息发自Alice 使用Bob和Alice共享的密钥产生认证码,并附于消息之后 Alice可以否认曾发送某条消息 因为Bob可以伪造,所以无法证明Alice确实发送过消息,最吸引人的解决方案是数字签名,2018/10/16,7,问题,当通信双方发生了下列情况时,数字签名技术必须能够解决引发的争端: 否认:发送方不承认自己发送过某一报文。 伪造:接收方自己伪造一份报文,并声称它来自发送方。 冒充:网络上的某个用户冒充另一个用户接收或发送报文。 篡改:接收方对收到的信息进行篡改。,2018/10/16,8,数字签名原理和流程,公开密钥算法对信息直接加密(作为数字签名) 非常耗时 因此加密人员想出了一种办法: 生成一个代表你的报文的简短的、独特的报文摘要 这个摘要可以被发送方的私有加密并作为发送方对该报文的数字签名。 通常,产生报文摘要的快速加密算法被称为单向散列函数。 MD5 SHA-1,数字签名应满足的要求,收方能够确认或证实发方的签名,但不能伪造,简记为R1-条件(unforgeablity)。 发方发出签名的消息给收方后,就不能再否认他所签发的消息,简记为S-条件(non-repudiation)。 收方对已收到的签名消息不能否认,即有收报认证,简记作R2-条件。 第三者可以确认收发双方之间的消息传送,但不能伪造这一过程,简记作T-条件。,2018/10/16,10,数字签名,传统签名的基本特点: 能与被签的文件在物理上不可分割 签名者不能否认自己的签名 签名不能被伪造 容易被验证 数字签名是传统签名的数字化,基本要求: 能与所签文件“绑定” 签名者不能否认自己的签名 签名不能被伪造 容易被验证,数字签名体制,一个签名体制可由量(M , S , K , V)其中M 是明文空间, S 是签名的 集合, K 是密钥空间, V 是证实函数的值域,由真、伪组成。 (1) 签名算法:对每一MM和kK,易于计算对M的签名 S=Sigk(M)S 签名密钥是秘密的,只有签名人掌握; (2)验证算法:Verk(S, M)真,伪=0,1,(显著的概率),验证算法应当公开,已知M,S易于证实S是否为M的签名,以便于他人进行验证。,2018/10/16,12,问题,公钥的管理,公钥与身份的对应关系 签名的有效性,私钥丢失?,2018/10/16,13,数字证书,数字签名用来保证信息传输过程中信息的完整和提供信息发送者的身份的确认。 数字证书采用公开密钥体制(例如RSA)。 每个用户设定一仅为本人所知的私有密钥,用它进行解密和签名; 同时设定一公开密钥,为一组用户所共享,用于加密和验证签名。,2018/10/16,14,数字证书的作用,采用数字证书,能够确认以下两点: (1) 保证信息是由签名者自己签名发送的,签名者不能否认或难以否认。 (2) 保证信息自签发后到收到为止未曾做过任何修改,签发的信息是真实信息。,2018/10/16,15,课程内容,数字签名原理,鉴别协议,数字签名算法,信息隐藏,4,1,2,3,5,数字水印,2018/10/16,16,鉴别协议,报文鉴别往往必须解决如下的问题: (1) 报文是由确认的发送方产生的。 (2) 报文的内容是没有被修改过的。 (3) 报文是按传送时的相同顺序收到的。 (4) 报文传送给确定的对方。,2018/10/16,17,鉴别方法,一种方法是发送方用自己的私钥对报文签名,签名足以使任何人相信报文是可信的。 另一种方法常规加密算法也提供了鉴别。但有两个问题, 一是不容易进行常规密钥的分发, 二是接收方没有办法使第三方相信该报文就是从发送方送来的,而不是接收方自己伪造的。 因此,一个完善的鉴别协议往往考虑到四方面的鉴别。 报文源 报文宿 报文内容 报文时间性,2018/10/16,18,NeedhamSchroeder协议,NeedhamSchroeder协议-利用常规加密方法进行双向鉴别 采用了常规加密体制和密钥分配中心KDC技术。 尽管这个协议本身存在一定的安全漏洞,但是后来发展的很多鉴别协议都是在NS NeedhamSchroeder协议的基础上扩展而成的。,2018/10/16,19,在该协议中,网络中通信的各方与密钥分配中心KDC共享一个主密钥 这个主密钥已通过其他安全的渠道传送完成。 密钥分配中心KDC为通信的双方产生短期通信所需的会话密钥 并通过主密钥来保护这些密钥的分发。,2018/10/16,20,(1)AKDC:(IDa,IDb,Ra) 通信方A将由自己的名字IDa,通信方B的名字IDb和随机数Ra组成的报文传给KDC。 (2)KDCA: EKa(Ra, IDb, Ks, EKb(Ks, IDa)。 KDC产生一随机会话密钥Ks。他用与通信方B共享的秘密密钥Kb对随机会话密钥Ks和通信方A名字组成的报文加密。然后用他和通信方A共享的秘密密钥Ka对通信方A的随机值、通信方B的名字、会话密钥Ks和已加密的报文进行加密,最后将加密的报文传送给通信方A。 (3)AB: EKb(Ks, IDa)。 通信方A将报文解密并提取Ks。他确认Ra与他在第(1)步中发送给KDC的一样。然后他将KDC用通信方B的密钥Kb加密的报文发送给通信方B。,协议步骤,2018/10/16,21,(4)BA: EKs(Rb) 通信方B对报文解密并提取会话密钥Ks,然后产生另一随机数Rb。他使用会话密钥Ks加密它并将它发送给通信方A。 (5)AB: EKs(Rb-1) 通信方A用会话密钥Ks将报文解密,产生Rb-1并用会话密钥Ks对它加密,然后将报文发回给通信方B。 (6)通信方B用会话密钥Ks对信息解密,并验证它是Rb-1,2018/10/16,22,尽管NeedhamSchroeder协议已经考虑了重放攻击,但是设计一个完美的没有漏洞的鉴别协议往往是很困难的。 考虑一下这种情况:如果一个对手已经获得了一个旧的会话密钥,那么在第(3)步中就可冒充通信方A向通信方B发送一个旧密钥的重放报文,而此时通信方B无法确定这是个报文的重放。,NS协议的问题,2018/10/16,23,Denning对Needhamschroeder协议进行了修改,防止这种情况下的重放攻击,其过程如下: (1)AKDC:(IDa,IDb)。 (2)KDCA: EKa(T, IDb, Ks, EKb(T, Ks, IDa)。 (3)AB: EKb(T, Ks, IDa)。 (4)BA: EKs(Rb)。 (5)AB: EKs(Rb-1)。 在这个过程中,增加了时间戳T,向通信方A和B确保该会话密钥是刚产生的,使得通信方A和B双方都知道这个密钥分配是一个最新的。,Denning的改进,2018/10/16,24,单向鉴别,第一个需求是电子邮件,报文的首部必须是明文的,以便报文能被SMTP处理,而邮件报文内容应该加密。 第二个需求是鉴别。典型的是,收方想得到某种保证,即该报文确实是来自被认为的发方。如果使用常规加密方法进行发方和收方的直接鉴别,密钥分配策略是不现实的。这种方案需要发方向预期的收方发出请求,等待包括一个会话密钥的响应,然后才能发送报文。? 考虑到应该避免要求收方B和发方A同时在线,如下基于常规加密方法的方案解决了鉴别。,2018/10/16,25,(1)AKDC:(IDa,IDb, Ra)。 (2)KDCA: EKa(IDb, Ks, Ra, EKb(Ks, IDa)。 (3)AB: EKb(Ks, IDa) EKs(M)。 这个常规加密方案提供了对A的认证,并且保证只有B可以看到明文,但是会遭到重放攻击。另外,如果在报文中加入时间戳,由于电子邮件潜在的时延,时间戳的作用非常有限。,2018/10/16,26,公开密钥加密方法适合电子邮件 AB: EKUb Ks | EksM 关心机密,比使用公钥加密全文更高效 AB: M | EKRa H( M ) 关心鉴别,可能换签名 AB: EKUb M, EKRa H( M ) 机密鉴别,2018/10/16,27,课程内容,数字签名原理,鉴别协议,数字签名算法,信息隐藏,4,1,2,3,5,数字水印,2018/10/16,28,数字签名标准,数字签名算法主要有两个算法组成 签名算法 验证算法 目前已有大量的数字签名算法 RSA数字签名算法 EIGamal数字签名算法 椭圆线数字签名算法 ,2018/10/16,29,两种数字签名方案,全局公钥组KUG 签名随机数k 发送方私钥KRa,RSA签名体制,(1) 体制参数:令n=p1p2,p1和 p2是大素数,令M=C=Zn,选e 并计算出 d 使ed1 mod (n),公开n和e,将p1,p2 和 d 保密。K=(n,p,q,e,d)。 (2) 签名过程:对消息M Zn的签名 S=Sigk(M)=Md mod n (3) 验证过程:对给定的M和 S,可按下式验证: Verk(M, S)=真 MSe mod n 在Internet中所采用的PGP(Pretty Good Privacy)中将RSA作为传送会话密钥和数字签字的标准算法。,2018/10/16,35,RSA的缺点,两个主要缺点: A)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。 B)分组长度太大,为保证安全性,n 至少也要 600 bits以上,使运算代价很高目前, SET(Secure Electronic Transaction)协议中要求CA采用2048比特长的密钥,其他实体使用1024比特的密钥。,2018/10/16,36,美国的数字签名标准/算法(DSS/DSA),美国国家标准技术学会(NIST)的一个标准 它是ElGamal数字签名算法的一个修改 当选择p为512比特的素数时,ElGamal数字签名的尺寸是1024比特,而在DSA中通过选择一个160比特的素数可将签名的尺寸降低为320比特,这就大大地减少了存储空间和传输带宽。,ElGamal 签名体制,(1) 体制参数 p:一个大素数,可使Zp中求解离散对数为困难问题; g:是Zp中乘群Zp*的一个生成元或本原元素; M:消息空间,为Zp*; S:签名空间,为Zp*Zp1; x:用户秘密钥xZp*; ygx mod p K=(p, g, x, y):其中p,g,y为公钥,x为秘密钥。 (2) 签名过程:给定消息M,发送者进行下述工作。 (a) 选择秘密随机数kZp*; (b) 计算: H(M), r=gk mod p,s=(H(M)xr)k-1 mod (p1) (c) 将Sigk(M, k) =S=(r|s)作为签名,将M,(r|s)送给对方。 (3) 验证过程:接收者先计算H(M),并按下式验证 Verk(H(M), r, s)=真 yrrsgH(M) mod p,数字签名的安全性,安全性定义:存在(existential)/ 广义(universal)伪造。必须注意的是,我们不考虑伪造消息的无意义性。 攻击类型: 1.直接攻击( Forge from scratch ) 2.选择消息攻击(CMA) 3.自适应选择消息攻击( Adaptive CMA ) 安全模型:Random Oracle Model;Standard Model,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号