您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第十章数字签名与鉴别协议
第十章数字签名与鉴别协议10.1数字签名原理10.2鉴别协议10.3数字签名标准本章重点和复习要点本章重点和复习要点通信方A、B的主密钥如何进行安全分配;通信方A和B共享的对话密钥如何进行安全分配D-H中有无KDC?D-H是对称加密算法还是公开加密算法?K是对称加密密钥还是公开加密密钥?该方案有无鉴别通信双方的功能,所以容易遭受什么攻击?N-S算法有无KDC?它是一个对称加密算法还是公开加密算法?KS是对称加密密钥还是公开加密密钥?N-S的密钥分配和相互鉴别过程为什么说CA相对KDC来说不容易形成瓶颈?返回首页10.1数字签名原理当通信双方发生了下列情况时,数字签名技术必须能够解决引发的争端:•否认,发送方不承认自己发送过某一报文。•伪造,接收方自己伪造一份报文,并声称它来自发送方。•冒充,网络上的某个用户冒充另一个用户接收或发送报文。•篡改,接收方对收到的信息进行篡改。返回首页10.1.1-2数字签名原理和流程公开密钥算法对信息直接加密(作为数字签名)非常耗时,因此:1)首先生成一个代表你的报文的简短的、独特的报文摘要;2)其次用发送方的私钥加密这个摘要,作为发送方对该报文的数字签名。数字签名流程:(1)采用散列算法对原始报文进行运算,得到一个固定长度的数字串,称为报文摘要(MessageDigest),保证了报文的不可更改性。(2)发送方用目己的私有密钥对摘要进行加密来形成数字签名。(3)这个数字签名将作为报文的附件和报文一起发送给接收方。(4)接收方首先对接收到的原始报文用同样的算法计算出新的报文摘要,再用发送方的公开密钥对报文附件的数字签名进行解密,比较两个报文摘要,如果值相同,接收方就能确认该数字签名是发送方的,否则就认为收到的报文是伪造的或者中途被篡改。10.2鉴别协议10.2.1报文鉴别1)一种方法是发送方用自己的私钥对报文签名,签名足以使任何人相信报文是可信的。2)另一种方法常规加密算法也提供了鉴别。但有两个问题,一是不容易进行常规密钥的分发,二是接收方没有办法使第三方相信该报文就是从发送方送来的,而不是接收方自己伪造的。返回首页10.2.2相互鉴别利用常规加密方法进行相互鉴别不得不从Needham—Schroeder协议谈起,它采用了常规加密体制和密钥分配中心KDC技术。尽管这个协议本身存在一定的安全漏洞,但是后来发展的很多鉴别协议都是在Needham—Schroeder协议的基础上扩展而成的。1)在该协议中,通信各方与KDC共享一个主密钥,它已通过其他安全渠道传送完成。2)KDC为通信的双方产生短期通信所需的会话密钥,并通过主密钥来保护这些密钥的分发。Needham—Schroeder协议步骤:(1)AKDC:(IDa,IDb,Ra)。通信方A将由自己的名字IDa,通信方B的名字IDb和随机数Ra组成的报文传给KDC。(2)KDCA:EKa(Ra,IDb,Ks,EKb(Ks,IDa))。KDC产生一随机会话密钥Ks,用Kb对Ks和通信方A名字加密。然后用Ka对通信方A的随机值、通信方B的名字、会话密钥Ks和已加密的报文进行加密,最后将它传送给通信方A。(3)AB:EKb(Ks,IDa)。通信方A将报文解密并提取Ks。他确认Ra与他在第(1)步中发送给KDC的一样。然后他将KDC用Kb加密的报文转发给通信方B。(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。——会话密钥分配和双向认证尽管Needham—Schroeder协议已经考虑了重放攻击,但是设计一个完美的没有漏洞的鉴别协议往往是很困难的。让我们考虑一下这种情况:如果一个对手已经获得了一个旧的会话密钥,那么在第(3)步中就可冒充通信方A向通信方B发送一个旧密钥的重放报文,而此时通信方B无法确定这是一个报文的重放……Denning对Needham—schroeder协议进行了修改,防止这种情况下的重放攻击,其过程如下:(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确保该会话密钥是刚产生的。10.2.3单向鉴别第一个需求是电子邮件报文的首部必须是明文的,以便报文能被SMTP处理,而邮件报文内容应该加密。第二个需求是鉴别。典型的是,收方想得到某种保证,即该报文确实是来自被认为的发方。基于常规加密方法的方案实现鉴别:(1)AKDC:(IDa,IDb,Ra)。(2)KDCA:EKa(IDb,Ks,Ra,EKb(Ks,Da))。(3)AB:EKb(Ks,IDa)EKs(M)。1)这个方案会遭到重放攻击。2)如果在报文中加入时间戳,由于电子邮件潜在的时延,时间戳的作用非常有限。公开密钥加密方法适合电子邮件,如果发方和收方都知道对方的公开密钥,则可以同时提供机密性和鉴别。AB:EKUb(M,EKRa(H(M)))AB:EKUb(Ks),EKs(M,EKRa(H(M)))10.3数字签名标准目前已有大量的数字签名算法,如RSA数字签名算法、EIGamal数字签名算法、椭圆曲线数字签名算法等。•美国的数字签名标准/算法(DSS/DSA)美国国家标准技术学会(NIST)的一个标淮,它是ElGamal数字签名算法的一个修改。当选择p为512比特的素数时,ElGamal数字签名的尺寸是1024比特;而在DSA中通过选择一个160比特的素数可将签名的尺寸降低为320比特。返回首页•安全散列标准/算法(SHS/SHA)DSS签名使用FIPS80-1和安全hash标淮(SHS)产生和核实数字签名。许多加密者认为SHS所指定的安全散列算法(SHA)是最强劲的散列算法。DSS的安全性表现在如下的几个方面:1)对报文的签名不会引起私有密钥的泄漏。2)若不知私有密钥,没有人能够对给定的报文产生签名。3)没有人能够产生匹配给定签名的报文。4)没有人能够修改报文并使原有的签名依然有效。
本文标题:第十章数字签名与鉴别协议
链接地址:https://www.777doc.com/doc-2165617 .html