数字签名与鉴别协议课件

上传人:re****.1 文档编号:570283766 上传时间:2024-08-03 格式:PPT 页数:43 大小:333KB
返回 下载 相关 举报
数字签名与鉴别协议课件_第1页
第1页 / 共43页
数字签名与鉴别协议课件_第2页
第2页 / 共43页
数字签名与鉴别协议课件_第3页
第3页 / 共43页
数字签名与鉴别协议课件_第4页
第4页 / 共43页
数字签名与鉴别协议课件_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《数字签名与鉴别协议课件》由会员分享,可在线阅读,更多相关《数字签名与鉴别协议课件(43页珍藏版)》请在金锄头文库上搜索。

1、网络信息安全数字签名计算机学院计算机学院 信息安全教研室信息安全教研室张伟张伟 数字签名与鉴别协议数字签名与鉴别协议数字签名与鉴别协议数字签名技术是实现安全电子交易的核心数字签名技术是实现安全电子交易的核心技术之一技术之一。鉴别技术保证了在信息传送过鉴别技术保证了在信息传送过程中能够正确地鉴别出信息发送方的身份程中能够正确地鉴别出信息发送方的身份而且对信息内容的任何修改都可以被检而且对信息内容的任何修改都可以被检测出来。测出来。利用常规加密方法和公开密钥加密方法都利用常规加密方法和公开密钥加密方法都可以进行鉴别。可以进行鉴别。 数字签名与鉴别协议问题问题当通信双方发生了下列情况时,数字签名当通

2、信双方发生了下列情况时,数字签名技术必须能够解决引发的争端:技术必须能够解决引发的争端:否认否认,发送方不承认自己发送过某一报文。,发送方不承认自己发送过某一报文。伪造伪造,接收方自己伪造一份报文,并声称它来,接收方自己伪造一份报文,并声称它来自发送方。自发送方。冒充冒充,网络上的某个用户冒充另一个用户接收,网络上的某个用户冒充另一个用户接收或发送报文。或发送报文。篡改篡改,接收方对收到的信息进行篡改。,接收方对收到的信息进行篡改。数字签名与鉴别协议办法解决:办法解决:数字签名原理和流程数字签名原理和流程公公开开密密钥钥算算法法对对信信息息直直接接加加密密(作作为为数数字字签签名名)非非常常耗

3、耗时时,因因此此加加密密人人员员想想出出了了一一种种办办法法来来快快速速地地生生成成一一个个代代表表你你的的报报文文的的简简短短的的、独独特特的的报报文文摘摘要要,这这个个摘摘要要可可以以被被发发送送方方的的私私有有加加密密并并作作为为发送方对该报文的发送方对该报文的数字签名数字签名。通通常常,产产生生报报文文摘摘要要的的快快速速加加密密算算法法被被称称为为单单向向散散列列函函数数。一一种种单单向向散散列列函函数数不不使使用用密密钥钥,它它只只是是一一个个简简单单的的公公式式,把把任任何何长长度度的的一一个个报报文文转转化化为一个叫做报文摘要的固定长度的简单字符串。为一个叫做报文摘要的固定长度

4、的简单字符串。数字签名与鉴别协议数字签名流程:数字签名流程:(1) 采用散列算法对原始报文进行运算,得采用散列算法对原始报文进行运算,得到个固定长度的数字串,称为到个固定长度的数字串,称为报文摘要报文摘要(Message Digest),不同的报文所得到的报不同的报文所得到的报文摘要各异,但对相同的报文它的报文摘文摘要各异,但对相同的报文它的报文摘要却是惟一的。在数学上保证,只要改动要却是惟一的。在数学上保证,只要改动报文中任何一位,报文中任何一位,重新计算出的报文摘要重新计算出的报文摘要值就会与原先的值不相符,这样就保证了值就会与原先的值不相符,这样就保证了报文的不可更改性。报文的不可更改性

5、。数字签名与鉴别协议(2) 发发送送方方用用目目己己的的私私有有密密钥钥对对摘摘要要进进行行加加密密来来形成数字签名。形成数字签名。(3) 这这个个数数字字签签名名将将作作为为报报文文的的附附件件和和报报文文一一起起发送给接收方。发送给接收方。(4) 接接收收方方首首先先对对接接收收到到的的原原始始报报文文用用同同样样的的算算法法计计算算出出新新的的报报文文摘摘要要,再再用用发发送送方方的的公公开开密密钥钥对对报报文文附附件件的的数数字字签签名名进进行行解解密密,比比较较两两个个报报文文摘摘要要,如如果果值值相相同同,接接收收方方就就能能确确认认该该数数字字签签名名是是发发送送方方的的,否否则

6、则就就认认为为收收到到的报文是伪造的或者中途被篡改。的报文是伪造的或者中途被篡改。数字签名与鉴别协议Hash函数的基本用途(函数的基本用途(c)MH|HCompareMEEkRa(H(M)KRa私钥私钥DKUa数字签名数字签名数字签名与鉴别协议数字签名数字签名传统签名的基本特点传统签名的基本特点:能与被签的文件在物理上不可分割能与被签的文件在物理上不可分割签名者不能否认自己的签名签名者不能否认自己的签名签名不能被伪造签名不能被伪造容易被验证容易被验证数字签名是传统签名的数字化数字签名是传统签名的数字化,基本要求基本要求:能与所签文件能与所签文件“绑定绑定”签名者不能否认自己的签名签名者不能否认

7、自己的签名签名不能被伪造签名不能被伪造容易被验证容易被验证数字签名与鉴别协议数字证书数字证书数字签名用来保证信息传输过程中信息的数字签名用来保证信息传输过程中信息的完整和提供信息发送者的身份的确认。完整和提供信息发送者的身份的确认。数字证书数字证书采用公开密钥体制(例如采用公开密钥体制(例如RSA)。)。每个用户设定一仅为本人所知的私有密钥,每个用户设定一仅为本人所知的私有密钥,用它进行解密和签名;同时设定一公开密用它进行解密和签名;同时设定一公开密钥,为一组用户所共享,用于加密和验证钥,为一组用户所共享,用于加密和验证签名。签名。数字签名与鉴别协议数字证书的作用数字证书的作用采用数字证书,能

8、够确认以下两点:采用数字证书,能够确认以下两点:(1) 保证信息是由签名者自己签名发送的,签保证信息是由签名者自己签名发送的,签名者不能否认或难以否认。名者不能否认或难以否认。(2) 保证信息自签发后到收到为止未曾做过任保证信息自签发后到收到为止未曾做过任何修改,签发的信息是真实信息。何修改,签发的信息是真实信息。数字签名与鉴别协议鉴别协议鉴别协议报文鉴别往往必须解决如下的问题:报文鉴别往往必须解决如下的问题:(1) 报文是由确认的发送方产生的。报文是由确认的发送方产生的。(2) 报文的内容是没有被修改过的。报文的内容是没有被修改过的。(3) 报文是按传送时的相同顺序收到的。报文是按传送时的相

9、同顺序收到的。(4) 报文传送给确定的对方。报文传送给确定的对方。数字签名与鉴别协议一种方法是发送方用自己的一种方法是发送方用自己的私钥私钥对报文对报文签名签名,签名签名足以使足以使任何人相信报文是可信的。任何人相信报文是可信的。另一种方法另一种方法常规加密算法也提供了鉴别常规加密算法也提供了鉴别。但有两个问题,。但有两个问题,一是不容易进行常规密钥的分发,一是不容易进行常规密钥的分发,二是接收方没有办法使第三方相信该报文就是从发送二是接收方没有办法使第三方相信该报文就是从发送方送来的,而不是接收方自己伪造的。方送来的,而不是接收方自己伪造的。因此,一个完善的鉴别协议往往考虑到四方面的鉴别。因

10、此,一个完善的鉴别协议往往考虑到四方面的鉴别。报文源报文源报文宿报文宿报文内容报文内容报文时间性报文时间性数字签名与鉴别协议相互鉴别相互鉴别利利用用常常规规加加密密方方法法进进行行相相互互鉴鉴别别不不得得不不从从NeedhamSchroeder协协议议谈谈起起,它它采采用用了了常常规规加加密密体体制制和和密密钥钥分分配配中中心心KDC技技术术。尽尽管管这这个个协协议议本本身身存存在在一一定定的的安安全全漏漏洞洞,但但是是后后来来发发展展的的很很多多鉴鉴别别协协议议都都是是在在NS NeedhamSchroeder协协议议的的基基础础上上扩扩展展而成的。而成的。数字签名与鉴别协议数字签名与鉴别协

11、议在该协议中,网络中通信的各方与密钥分配在该协议中,网络中通信的各方与密钥分配中心中心KDC共享一个共享一个主密钥主密钥,这个主密钥已通,这个主密钥已通过其他安全的渠道传送完成。密钥分配中心过其他安全的渠道传送完成。密钥分配中心KDC为通信的双方产生短期通信所需的为通信的双方产生短期通信所需的会话会话密钥密钥,并通过主密钥来保护这些密钥的分发。,并通过主密钥来保护这些密钥的分发。 NeedhamSchroeder协议的鉴别通过如协议的鉴别通过如下的步骤进行:下的步骤进行:(1)AKDC:(IDa,IDb,Ra)。 通信方通信方A将由自己的名字将由自己的名字IDa,通信方通信方B的名的名字字ID

12、b和随机数和随机数Ra组成的报文传给组成的报文传给KDC。数字签名与鉴别协议(2)KDCA: EKa(Ra, IDb, Ks, EKb(Ks, IDa)。 KDC产生一随机会话密钥产生一随机会话密钥Ks。他用与通信方。他用与通信方B共享的秘密密钥共享的秘密密钥Kb对随机会话密钥对随机会话密钥Ks和通信方和通信方A名字组成的报文加密。然后用他和通信方名字组成的报文加密。然后用他和通信方A共享共享的秘密密钥的秘密密钥Ka对通信方对通信方A的随机值、通信方的随机值、通信方B的的名字、会话密钥名字、会话密钥Ks和已加密的报文进行加密,和已加密的报文进行加密,最后将加密的报文传送给通信方最后将加密的报文

13、传送给通信方A。(3)AB: EKb(Ks, IDa)。 通信方通信方A将报文解密并提取将报文解密并提取Ks。他确认。他确认Ra与他与他在第在第(1)步中发送给步中发送给KDC的一样。然后他将的一样。然后他将KDC用通信方用通信方B的密钥的密钥Kb加密的报文发送给通信方加密的报文发送给通信方B。数字签名与鉴别协议(4)BA: EKs(Rb)。 通信方通信方B对报文解密并提取会话密钥对报文解密并提取会话密钥Ks,然后产然后产生另一随机数生另一随机数Rb 。他使用会话密钥。他使用会话密钥Ks加密它并加密它并将它发送给通信方将它发送给通信方A。(5)AB: EKs(Rb-1)。 通信方通信方A用会话

14、密钥用会话密钥Ks将报文解密,产生将报文解密,产生Rb-1并并用会话密钥用会话密钥Ks对它加密,然后将报文发回给通信对它加密,然后将报文发回给通信方方B。(6)通信方通信方B用会话密钥用会话密钥Ks对信息解密对信息解密,并验证它,并验证它是是Rb-1。数字签名与鉴别协议 这个协议的最终结果是把密钥分配中心这个协议的最终结果是把密钥分配中心KDC产生的会话密钥产生的会话密钥Ks安全地分发给通信方安全地分发给通信方A和和通信方通信方B,同时通信双方同时通信双方A和和B都证实自己的都证实自己的身份和对方的身份。身份和对方的身份。 尽管尽管NeedhamSchroeder协议已经考虑协议已经考虑了重放

15、攻击,但是设计一个完美的没有漏洞了重放攻击,但是设计一个完美的没有漏洞的鉴别协议往往是很困难的。考虑一下这种的鉴别协议往往是很困难的。考虑一下这种情况,如果一个对手已经获得了一个旧的会情况,如果一个对手已经获得了一个旧的会话密钥,那么在第话密钥,那么在第(3)步中就可冒充通信方步中就可冒充通信方A向通信方向通信方B发送一个旧密钥的重放报文,而发送一个旧密钥的重放报文,而此时通信方此时通信方B无法确定这是无法确定这是个报文的重放。个报文的重放。数字签名与鉴别协议 Denning对对Needhamschroeder协议进行了修改协议进行了修改,防止这种情况下的重放攻击,其过程如下:,防止这种情况下

16、的重放攻击,其过程如下:(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双方都双方都知道这个密钥分配是一个最新的。知道这个密钥分配是一个最新的。数字签名与鉴别协议单向鉴别单向鉴别第一个需求是电子邮件,报文的首部必须是明文第一个需求是电子邮件,报文的首部必

17、须是明文的,以便报文能被的,以便报文能被SMTP处理,而邮件报文内容处理,而邮件报文内容应该加密。应该加密。 第二个需求是鉴别。典型的是,收方想得到某种第二个需求是鉴别。典型的是,收方想得到某种保证,即该报文确实是来自被认为的发方。如果保证,即该报文确实是来自被认为的发方。如果使用常规加密方法进行发方和收方的直接鉴别,使用常规加密方法进行发方和收方的直接鉴别,密钥分配策略是不现实的。这种方案需要发方向密钥分配策略是不现实的。这种方案需要发方向预期的收方发出请求,等待包括一个会话密钥的预期的收方发出请求,等待包括一个会话密钥的响应,然后才能发送报文。响应,然后才能发送报文。?考虑到应该考虑到应该

18、避免要求收方避免要求收方B和发方和发方A同时在线同时在线,如,如下基于常规加密方法的方案解决了鉴别。下基于常规加密方法的方案解决了鉴别。数字签名与鉴别协议(1)AKDC:(IDa,IDb, Ra)。)。(2)KDCA: EKa(IDb, Ks, Ra, EKb(Ks, IDa)。(3)AB: EKb(Ks, IDa) EKs(M)。 这这个个常常规规加加密密方方案案提提供供了了对对A的的认认证证,并并且且保保证证只只有有B可可以以看看到到明明文文,但但是是会会遭遭到到重重放放攻攻击击。另另外外,如如果果在在报报文文中中加加入入时时间间戳戳,由由于于电电子子邮邮件件潜潜在在的的时时延延,时时间间

19、戳戳的的作作用用非非常常有有限。限。 数字签名与鉴别协议公开密钥加密公开密钥加密方法适合电子邮件方法适合电子邮件AB: EKUb ( Ks ),Eks(M) 关心机密,比使用公钥加密全文更高效关心机密,比使用公钥加密全文更高效AB: M, EKRa ( H( M ) ) 关心鉴别关心鉴别,可能换签名,可能换签名AB: EKUb ( M, EKRa ( H( M ) ) ) 机密鉴别机密鉴别数字签名与鉴别协议数字签名数字签名目目前前已已有有大大量量的的数数字字签签名名算算法法,如如RSA数数字字签签名名算算法法、EIGamal数数字字签签名名算算法法、椭椭圆线数字签名算法等。圆线数字签名算法等。

20、数字签名与鉴别协议美国的数字签名标准美国的数字签名标准/算法算法(DSS/DSA)美美国国国国家家标标准准技技术术学学会会(NIST)的的一一个个标标淮淮,它它是是ElGamal数数字字签签名名算算法法的的一一个个修修改改。当当选选择择p为为512比比特特的的素素数数时时,ElGamal数数字字签签名名的的尺尺寸寸是是1024比比特特,而而在在DSA中中通通过过选选择择一一个个160比比特特的的素素数数可可将将签签名名的的尺尺寸寸降降低低为为320比比特特,这这就就大大大大地地减减少少了了存存储储空空间和传输带宽。间和传输带宽。数字签名与鉴别协议安全散列标准安全散列标准/算法(算法(SHS/S

21、HA)DSS签签名名使使用用FIPS80-1和和安安全全hash标标淮淮(SHS)产产生生和和核核实实数数字字签签名名。许许多多加加密密者者认认为为SHS所所指指定定的的安安全全散散列列算算法法(SHA)是是当当今今可可以以得得到到的的最最强强劲劲的散列算法。的散列算法。DSS的安全性表现在如下的几个方面:的安全性表现在如下的几个方面:1) 对报文的签名不会引起私有密钥的泄漏对报文的签名不会引起私有密钥的泄漏2) 若不知私有密钥,没有人能够对给定的报文产生若不知私有密钥,没有人能够对给定的报文产生签名签名3) 没有人能够产生匹配给定签名的报文没有人能够产生匹配给定签名的报文4) 没有人能够修改

22、报文并且使原有的签名依然有效没有人能够修改报文并且使原有的签名依然有效数字签名与鉴别协议数字签名方案数字签名方案先对消息先对消息M作一个摘要作一个摘要H(M)然后发送方用自己的私钥对然后发送方用自己的私钥对H(M)进行加密,得到进行加密,得到签名签名EKRa(H(M)连同消息连同消息M一起,发送出去一起,发送出去B收到复合的消息之后,把签名提取出来收到复合的消息之后,把签名提取出来B用用A的公钥对签名解密得到的公钥对签名解密得到HB计算所收到消息的摘要计算所收到消息的摘要H(M)如果如果H=H(M),则消息确实是,则消息确实是A产生的产生的数字签名与鉴别协议问题问题公钥的管理,公钥与身份的对应

23、关系公钥的管理,公钥与身份的对应关系签名的有效性,私钥丢失?签名的有效性,私钥丢失?数字签名与鉴别协议两种数字签名方案两种数字签名方案全局公钥组全局公钥组KUG 签名随机数签名随机数k 发送方私钥发送方私钥KRa数字签名与鉴别协议RSA的缺点的缺点A)产生密钥很麻烦,受到素数产生技术的限制,因而难产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。以做到一次一密。B)分组长度太大,为保证安全性,分组长度太大,为保证安全性,n 至少也要至少也要 600 bits以以上,使运算代价很高,尤其是速度较慢,较对称密码算法上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大

24、数分解技术的发展,这个长度还慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。在增加,不利于数据格式的标准化。目前,目前,SET(Secure Electronic Transaction)协议中要求协议中要求CA采用采用2048比特长的密钥,其他实体使用比特长的密钥,其他实体使用1024比特的密比特的密钥。钥。 数字签名与鉴别协议DSS/DSA算法算法Digital Signature Algorithm(DSA)是是Schnorr和和ElGamal签名算法签名算法的变种,被美国的变种,被美国NIST作为作为DSS(Digital SignatureStand

25、ard)。 算法中应用了下述参数:算法中应用了下述参数: p:L bits长的素数。长的素数。L是是64的倍数,范围是的倍数,范围是512到到1024; q:p - 1的的160bits的素因子;的素因子; g:g = h(p-1)/q) mod p,h满足满足h 1; x:x q,x为私钥为私钥 ; y:y = gx mod p ,( p, q, g, y )为公钥为公钥; H( x ):One-Way Hash函数。函数。DSS中选用中选用SHA( Secure Hash Algorithm )。 p, q, g可由一组用户共享,但在实际应用中,使用公共模数可能会带可由一组用户共享,但在实

26、际应用中,使用公共模数可能会带来一定的威胁。来一定的威胁。签名及验证协议如下:签名及验证协议如下:数字签名与鉴别协议1. P产生随机数产生随机数k,k CurrentState() != DefaultDecryptorWithMAC:KEY_GOOD)cerr CurrentState() != DefaultDecryptorWithMAC:MAC_GOOD)cerr Invalid MAC. The have been tempered with.n;数字签名与鉴别协议例子:摘要例子:摘要void Digest char *)MD5 md5;SHA shs;RIPEMD160 ripem

27、d;BufferedTransformation *outputs=new HashFilter(md5), new HashFilter(shs), new HashFilter(ripemd); , true, new Fork(3, outputs);cout Attach(new HexEncoder(new (cout);cout endl;cout Attach(new HexEncoder(new (cout);cout endl;cout Attach(new HexEncoder(new (cout);cout pub.MaxPlainTextLength() cerr me

28、ssage too long for this keyn; abort();RandomPool randPool;randPool.Put(byte *)seed, strlen(seed);char *outstr = new char2*pub.CipherTextLength()+1;pub.Encrypt(randPool, (byte *)message, strlen(message), (byte *)outstr);HexEncoder hexEncoder;hexEncoder.Put(byte *)outstr, pub.CipherTextLength();hexEnc

29、oder.Close();hexEncoder.Get(byte *)outstr, 2*pub.CipherTextLength();outstr2*pub.CipherTextLength() = 0;return outstr;数字签名与鉴别协议例子:其他操作例子:其他操作void Gzip char *in, const char *out, int deflate_level)(in, true, new Gzip(deflate_level, new (out);void Gunzip char *in, const char *out)(in, true, new Gunzip(

30、new (out);数字签名与鉴别协议参考资料参考资料书书William Stallings, Cryptography and network security: principles and practice, Second Edition.Bruce Shneier, Applied cryptography: protocols, algorithms, and sourcecode in C, Second Edition.文章文章密码学的新方向密码学的新方向Web站点站点数字签名与鉴别协议问题问题1.数字签名应该满足哪些要求?数字签名应该满足哪些要求?2.签名函数和加密函数应该以哪种顺序应用签名函数和加密函数应该以哪种顺序应用于消息,为什么?于消息,为什么?3.思考题。如果签名方声称私钥丢失,来说思考题。如果签名方声称私钥丢失,来说明其签名无效,如何解决此类威胁?明其签名无效,如何解决此类威胁?数字签名与鉴别协议

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号