NetworkSecurity西安电子科技大学软件学院网络安全(NetworkSecurity)2009年春季软件学院研究生课程第4章数字签名与认证协议NetworkSecurity西安电子科技大学软件学院复习DES加密机制IP置换16轮迭代IP-1置换子密钥的产生RSA加密机制欧拉定理NetworkSecurity西安电子科技大学软件学院这次课的主要内容数字签名技术直接数字签名(DirectDigitalSignatures,DDS)仲裁数字签名(ArbitratedDigitalSignatures,ADS)NetworkSecurity西安电子科技大学软件学院4.1数字签名NetworkSecurity西安电子科技大学软件学院数字签名是认证的重要工具为什么需要数字签名:报文认证用以保护双方之间的数据交换不被第三方侵犯;但它并不保证双方自身的相互欺骗。假定A发送一个认证的信息给B,双方之间的争议可能有多种形式:B伪造一个不同的消息,但声称是从A收到的。A可以否认发过该消息,B无法证明A确实发了该消息。NetworkSecurity西安电子科技大学软件学院数字签名是什么与人们手写签名的作用一样,数字签名系统向通信双方提供服务,使得A向B发送签名的消息P,以便达到B可以验证消息P确实来源于AA以后不能否认发送过PB不能编造或改变消息PNetworkSecurity西安电子科技大学软件学院数字签名的特点必须能够验证签名者及其签名的日期时间;必须能够认证被签名消息的内容;签名必须能够由第三方验证,以解决争议;注:数字签名功能包含了认证的功能。NetworkSecurity西安电子科技大学软件学院BB是A和B共同信赖的仲裁人。KA和KB分别是A和B与BB之间的密钥KBB是只有BB掌握的密钥,P是A发给B的消息,t是时间戳。ABA,KA(B,RA,t,P)KB(A,RA,t,P,KBB(A,t,P))BB基于共享密钥的签名A-BB:{A,KA(B,RA,t,P)}BB-B:{KB(A,RA,t,P,KBB(A,t,P))}KBB(A,t,P)由BB产生B可以解密该报文,阅读消息P保留证据KBB(A,t,P),A不能否认发送过消息P。B不能解密KBB(A,t,P),无法伪造.由于A和B之间的通信是通过中间人BB的,所以不必怀疑对方的身份。BB仲裁时可能会当场解密KBB(A,t,P),得到发送人、发送时间和原来的消息P。NetworkSecurity西安电子科技大学软件学院利用公钥加密算法的数字签名系统。如果A方否认了,B可以拿出DA(P),并用A的公钥EA解密得到P,从而证明P是A发送的。如果B把消息P窜改了,当A要求B出示原来的DA(P)时,B拿不出来。A的私钥DAB的公钥EBB的私钥DBA的公钥EA基于共享密钥以及公钥的签名NetworkSecurity西安电子科技大学软件学院两类数字签名函数直接数字签名仅涉及通信双方有效性依赖发方密钥的安全性仲裁数字签名使用第三方认证NetworkSecurity西安电子科技大学软件学院4.1.1直接数字签名NetworkSecurity西安电子科技大学软件学院直接数字签名(DDS)(1)AB:EKRa[M]提供了认证与签名:•只有A具有KRa进行加密;•传输中无法被篡改;•需要某些格式信息/冗余度;•任何第三方可以用KUa验证签名•无法抵赖,无法伪造(1’)AB:EKUb[EKRa(M)]提供了保密(KUb)、认证与签名(KRa):NetworkSecurity西安电子科技大学软件学院(2)AB:M||EKRa[H(M)]提供认证及数字签名--H(M)受到密码算法的保护;--只有A能够生成EKRa[H(M)](2’)AB:EK[M||EKRa[H(M)]]提供保密性、认证和数字签名。NetworkSecurity西安电子科技大学软件学院直接数字签名的缺点验证模式依赖于发送方的保密密钥;发送方要抵赖发送某一消息时,可能会声称其私有密钥丢失或被窃,从而他人伪造了他的签名。通常需要采用与私有密钥安全性相关的行政管理控制手段来制止或至少是削弱这种情况,但威胁在某种程度上依然存在。改进的方式例如可以要求被签名的信息包含一个时间戳(日期与时间),并要求将已暴露的密钥报告给一个授权中心。如X的私有密钥确实在时间T被窃取,敌方可以伪造X的签名并附上早于或等于时间T的时间戳。NetworkSecurity西安电子科技大学软件学院4.1.2仲裁数字签名NetworkSecurity西安电子科技大学软件学院仲裁数字签名引入仲裁者。通常的做法是所有从发送方X到接收方Y的签名消息首先送到仲裁者A,A将消息及其签名进行一系列测试,以检查其来源和内容,然后将消息加上日期并与已被仲裁者验证通过的指示一起发给Y。仲裁者在这一类签名模式中扮演敏感和关键的角色。所有的参与者必须相信这一仲裁机制工作正常。(trustedsystem)NetworkSecurity西安电子科技大学软件学院仲裁数字签名技术(1)单密钥加密方式,仲裁者可以看见消息(1)XA:M||EKxa[IDx||H(M)](2)AY:EKay[IDx||M||EKxa[IDx||H(M)]||T]X与A之间共享密钥Kxa,Y与A之间共享密钥Kay签名过程:X:准备消息M,计算其Hash值H(M),用X的标识符IDx和Hash值构成签名,并将消息及签名经Kxa加密后发送给A;A:解密签名,用H(M)验证消息M,然后将IDx,M,签名,和时间戳一起经Kay加密后发送给Y;Y:解密A发来的信息,并可将M和签名保存起来。解决纠纷:Y:向A发送EKay[IDx||M||EKxa[IDx||H(M)]]A:用Kay恢复IDx,M,和签名(EKxa[IDx||H(M)]),然后用Kxa解密签名并验证Hash值.NetworkSecurity西安电子科技大学软件学院仲裁数字签名技术(2)单密钥加密方式,仲裁者不可以看见消息(1)XA:IDx||EKxy[M]||EKxa[IDx||H(EKxy[M])](2)AY:EKay[IDx||EKxy[M]||EKxa[IDx||H(EKxy[M])]||T]X与Y之间共享密钥Kxy,X:将标识符IDx,密文EKxy[M],以及对IDx和密文消息的散列码用Kxa加密后形成签名发送给A。A:解密签名,用散列码验证消息,这时A只能验证消息的密文而不能读取其内容。然后A将来自X的所有信息加上时间戳并用Kay加密后发送给Y。NetworkSecurity西安电子科技大学软件学院(1)和(2)存在的问题:A和发送方联手可以否认签名的信息;A和接收方联手可以伪造发送方的签名;在这种模式下Y不能直接验证X的签名,Y认为A的消息已认证,只因为它来自A。因此,双方都需要高度相信A:X必须信任A没有暴露Kxa,并且没有生成错误的签名EKxa[IDx||H(M)]。Y必须信任A仅当散列值正确并且签名确实是X产生的情况下才发送的EKay[IDx||M||EKxa[IDx||H(M)]||T]。双方都必须信任A处理争议是公正的。只要A遵循上述要求,则X相信没有人可以伪造其签名;Y相信X不能否认其签名。上述情况还隐含着A可以看到X给Y的所有信息,因而所有的窃听者也能看到。NetworkSecurity西安电子科技大学软件学院仲裁数字签名技术(3)双密钥加密方式,仲裁者不可以看见消息(1)XA:IDx||EKRx[IDx||EKUy(EKRx[M])](2)AY:EKRa[IDx||EKUy[EKRx[M]]||T]X:对消息M双重加密:首先用X的私有密钥KRx,然后用Y的公开密钥KUy。形成一个签名的、保密的消息。然后将该信息以及X的标识符一起用KRx签名后与IDx一起发送给A。这种内部、双重加密的消息对A以及对除Y以外的其它人都是安全的。NetworkSecurity西安电子科技大学软件学院A:检查X的公开/私有密钥对是否仍然有效,如果是,则认证消息。并将包含IDx、双重加密的消息和时间戳构成的消息用KRa签名后发送给Y本模式比上述两个模式具有以下好处:1、在通信之前各方之间无须共享任何信息,从而避免了联手作弊;2、即使KRx暴露,只要KRa未暴露,不会有错误标定日期的消息被发送;3、从X发送给Y的消息的内容对A和任何其他人是保密的。NetworkSecurity西安电子科技大学软件学院4.2签名方案NetworkSecurity西安电子科技大学软件学院1.密钥的生成(同加密系统)公钥Pk={e,n};私钥Sk={d,n}。2.签名过程(用d,n)明文:Mn密文:S=Md(modn).3.验证过程(用e,n)给定M,S,Ver(M,S)为真,当且仅当M=Se(modn)1.RSA签名方案NetworkSecurity西安电子科技大学软件学院2.EIGamal签名方案该方案是专门为签名的目的而设计的。1985年提出,很大程度上是Diffie-Hellman密钥交换算法的推广和变形。这个方案的改进已被美国NIST(国家标准和技术研究所)采纳作为数字签名标准。方案的安全性依赖于求离散对数的困难性。NetworkSecurity西安电子科技大学软件学院DSS(DigitalSignatureStandard)签名标准是1991年8月由美国NIST公布,1994年5月19日的正式公布,并于1994年12月1日采纳为美国联帮信息处理标准。DSS为EIGamal和Schnorr签名方案的改进,其使用的算法记为DSA(DigitalSignatureAlgorithm)。此算法由D.W.Kravitz设计。DSS使用了SHA,安全性是基于求离散对数的困难性。3.数字签名标准(DSA)NetworkSecurity西安电子科技大学软件学院全局公钥(p,q,g)p为512~1024bit的大素数,q是(p-1)的素因子,为160比特的素数,g:=h(p-1)/qmodp,且1h(p-1),使得h(p-1)/qmodp1用户私钥x:x为0xq内的随机数用户公钥y:y=gxmodpNetworkSecurity西安电子科技大学软件学院用户每个消息用的秘密随机数k:0kq;签名过程:对报文M,签名为(r,s)r=(gkmodp)modqs=(k-1(H(M)+xr))modq验证:w=(s’)-1modqa=(H(M’)w)modqb=r’wmodqv=((gayb)modp)modqVer(M,r,s)=真iffv=r签名过程P284NetworkSecurity西安电子科技大学软件学院4.其它签名技术不可否认签名Chaum和VanAntwerprn1989年提出该签名的特征是:验证签名者必须与签名者合作。验证签名是通过询问------应答协议来完成。这个协议可防止签名者Bob否认他以前做的签名一个不可否认的签名方案有三个部分组成:签名算法、验证协议、否认协议不可否认的签名的本质是无签名者合作不能验证签名,从而防止复制和散布其签名文件的可能,适应于电子出版系统知识产权的保护。NetworkSecurity西安电子科技大学软件学院盲签名Chaum在1983年提出。需要某人对文件签名,但又不想签名者知道文件内容,称为盲签名。适应于电子选举、数字货币协议中。群签名群签名是群体密码学中的课题,1991由Chaum和vanHeyst提出。特点:1只有群体成员才能代表群体签名;2可用公钥验证签名,但不知是谁签的名;3争议发生时可由群体成员或可信第三方确认签名者。NetworkSecurity西安电子科技大学软件学院4.4认证协议NetworkSecurity西安电子科技大学软件学院相互认证(mutualauthentication)单向认证(one-