您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > Chapter13数字签名和认证协议
Chapter13数字签名和认证协议《密码编码学与网络安全》2020/1/11西安电子科技大学计算机学院2§13.1数字签名消息认证可以保护信息交换不受第三方的攻击,但不能处理通信双方自身发生的攻击。数字签名提供了这种能力:验证签名者、签名的日期和时间认证消息内容可由第三方仲裁,以解决争执。因此,数字签名具有认证功能2020/1/11西安电子科技大学计算机学院3数字签名应满足的条件签名值必须依赖于所签的消息必须使用对于发送者唯一的信息以防止伪造和否认产生签名比较容易识别和验证签名比较容易伪造数字签名在计算上是不可行的。包括已知数字签名,伪造新的消息已知消息,伪造数字签名保存数字签名的拷贝是可行的2020/1/11西安电子科技大学计算机学院4直接数字签名只涉及收发双方假定接收方已知发送方的公钥发送方可以用自己的私钥对整个消息内容或消息内容的hash值进行加密,完成数字签名。可以用接收者的公钥来加密以提供保密性先签名后加密,很重要。缺点:安全性依赖于发送方私钥的安全性2020/1/11西安电子科技大学计算机学院5仲裁数字签名仲裁者A验证任何签名的消息给消息加上日期并发送给接收者需要对仲裁者有合适的信任级别即可在私钥体制中实现,又可在公钥体制中实现仲裁者可以或者不可以阅读消息2020/1/11西安电子科技大学计算机学院62020/1/11西安电子科技大学计算机学院7§13.2认证协议用于确认通信的参与者,并交换会话密钥。认证可以是单向的也可以是相互的。主密钥应该是保密的–保护会话密钥有时间性–防止重放攻击发布的协议往往发现有缺陷需要修订2020/1/11西安电子科技大学计算机学院8§13.2.1相互认证当有效的签名消息被拷贝,之后又重新被发送简单重放可检测的重放不可检测的重放不加修改的逆向重放(对称密码)解决办法包括:序列号(通常不可行)时间戳(需要同步时钟)随机数/响应(目前的常用方法)重放攻击2020/1/11西安电子科技大学计算机学院9对称加密方法如前所述,需要两层密钥。可信的KDC,KeyDistributionCenter每个用户与KDC共享一个主密钥KDC产生通信方之间所用的会话密钥主密钥用于分发会话密钥2020/1/11西安电子科技大学计算机学院10Needham-Schroeder协议有第三方参与的密钥分发协议KDC作为AB会话的中介协议:1.A-KDC:IDA||IDB||N12.KDC-A:EKa[Ks||IDB||N1||EKb[Ks||IDA]]3.A-B:EKb[Ks||IDA]4.B-A:EKs[N2]5.A-B:EKs[f(N2)]2020/1/11西安电子科技大学计算机学院11Needham-Schroeder协议用于安全地分发AB之间通信所用的会话密钥存在重放攻击的风险,如果一个过时的会话密钥被掌握则消息3可以被重放以欺骗B使用旧会话密钥,使B遭到破坏解决的办法:时间戳(Denning81)使用一个额外的临时会话号(Neuman93)2020/1/11西安电子科技大学计算机学院12公钥加密方法需要确保彼此的公钥提前已经获知采用一个中心认证服务器AuthenticationServer(AS)用时间戳或临时交互号的变形协议2020/1/11西安电子科技大学计算机学院13DenningAS协议Denning81协议描述如下:1.A-AS:IDA||IDB2.AS-A:EPRas[IDA||PUa||T]||EPRas[IDB||PUb||T]3.A-B:EPRas[IDA||PUa||T]||EPRas[IDB||PUb||T]||EPUb[EPRas[Ks||T]]会话密钥由A选择,所以不存在会话密钥被AS泄密的危险时间戳可用于防止重放攻击,但需要时钟同步。改用临时交互号2020/1/11西安电子科技大学计算机学院14§13.2.2单向认证当收发双方不能在同一时间在线时(eg.email)有明确的头信息以被邮件系统转发希望对内容进行保护和认证2020/1/11西安电子科技大学计算机学院15对称加密方法可以变化对KDC的使用,但是不能使用临时交互号:1.A-KDC:IDA||IDB||N12.KDC-A:EKa[Ks||IDB||N1||EKb[Ks||IDA]]3.A-B:EKb[Ks||IDA]||EKs[M]不能抗重放攻击可以引入时间戳到信息中但email的处理中存在大量延时,使得时间戳用途有限。2020/1/11西安电子科技大学计算机学院16公钥加密方法已经讨论过一些公钥加密认证的论题若关心保密性,则:A-B:EPUb[Ks]||EKs[M]被加密的会话密钥和消息内容若需要用数字证书提供数字签名,则:A-B:M||EPRa[H(M)]||EPRas[T||IDA||PUa]消息,签名,证书2020/1/11西安电子科技大学计算机学院17§13.2.2数字签名标准DigitalSignatureStandard(DSS)美国政府的签名方案由NIST和NSA,在20世纪90年代设计1991年,作为FIPS-186发布1993,1996,2000进行了修改采用SHAhash算法DSS是标准DSA算法。FIPS186-2(2000)包括可选的RSA和椭圆曲线签名算法2020/1/11西安电子科技大学计算机学院18DigitalSignatureAlgorithm(DSA)产生320bit的签名值可以提供512-1024bit的安全性比RSA小且快仅是一个数字签名方案(不能用于加密)安全性依赖于计算里算对数的困难性是ElGamal和Schnorr方案的变体2020/1/11西安电子科技大学计算机学院19DigitalSignatureAlgorithm(DSA)2020/1/11西安电子科技大学计算机学院20DSA密钥的生成全局公钥(p,q,g):选择q,位长为160bit选择一个大的素数p=2L其中L=512to1024bits且L是64的倍数q是(p-1)的素因子选择g=h(p-1)/q其中hp-1,h(p-1)/q(modp)1用户选择私钥并计算对应的公钥:随机选择私钥0xq计算公钥y=gx(modp)2020/1/11西安电子科技大学计算机学院21DSA签名的生成为了对消息M进行签名,发送者:产生一个随机签名密钥k,kq注意k必须是一个随机数,用后就扔掉,不再使用。计算签名对:r=(gk(modp))(modq)s=(k-1.H(M)+x.r)(modq)和消息M一同发送签名值(r,s)2020/1/11西安电子科技大学计算机学院22DSA数字签名的验证已经收到消息M和签名值(r,s)为了验证签名,接收者计算:w=s-1(modq)u1=(H(M).w)(modq)u2=(r.w)(modq)v=(gu1.yu2(modp))(modq)如果v=r则签名正确证明(略)2020/1/11西安电子科技大学计算机学院232020/1/11西安电子科技大学计算机学院242020/1/11西安电子科技大学计算机学院25小结数字签名认证协议相互认证单方认证DSA及其DSS2020/1/11西安电子科技大学计算机学院26第13章作业习题:第13.7,13.10题
本文标题:Chapter13数字签名和认证协议
链接地址:https://www.777doc.com/doc-2905968 .html