数字签名与鉴别协议

上传人:无*** 文档编号:181594915 上传时间:2023-01-14 格式:PPT 页数:43 大小:291KB
收藏 版权申诉 举报 下载
数字签名与鉴别协议_第1页
第1页 / 共43页
数字签名与鉴别协议_第2页
第2页 / 共43页
数字签名与鉴别协议_第3页
第3页 / 共43页
资源描述:

《数字签名与鉴别协议》由会员分享,可在线阅读,更多相关《数字签名与鉴别协议(43页珍藏版)》请在装配图网上搜索。

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

2、技术必须能够解决引发的争端:技术必须能够解决引发的争端:否认,发送方不成认自己发送过某一报文。否认,发送方不成认自己发送过某一报文。伪造,接收方自己伪造一份报文,并声称伪造,接收方自己伪造一份报文,并声称它来自发送方。它来自发送方。冒充,网络上的某个用户冒充另一个用户冒充,网络上的某个用户冒充另一个用户接收或发送报文。接收或发送报文。篡改,接收方对收到的信息进行篡改。篡改,接收方对收到的信息进行篡改。方法解决:数字签名原理和流方法解决:数字签名原理和流程程 公开密钥算法对信息直接加密作为数字签名公开密钥算法对信息直接加密作为数字签名非常耗时,因此加密人员想出了一种方法来快速非常耗时,因此加密人

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

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

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

6、或者中途被篡改。Hash函数的根本用途函数的根本用途cMH|HCompareMEEkRa(H(M)KRa私钥私钥DKUa数字签名数字签名数字签名数字签名 传统签名的根本特点传统签名的根本特点:能与被签的文件在物理上不可分割能与被签的文件在物理上不可分割 签名者不能否认自己的签名签名者不能否认自己的签名 签名不能被伪造签名不能被伪造 容易被验证容易被验证 数字签名是传统签名的数字化数字签名是传统签名的数字化,根本要求根本要求:能与所签文件能与所签文件“绑定绑定 签名者不能否认自己的签名签名者不能否认自己的签名 签名不能被伪造签名不能被伪造 容易被验证容易被验证数字证书数字证书 数字签名用来保证信

7、息传输过程中信息的数字签名用来保证信息传输过程中信息的完整和提供信息发送者的身份确实认。完整和提供信息发送者的身份确实认。数字证书采用公开密钥体制例如数字证书采用公开密钥体制例如RSA。每个用户设定一仅为本人所知的私有密钥,每个用户设定一仅为本人所知的私有密钥,用它进行解密和签名;同时设定一公开密用它进行解密和签名;同时设定一公开密钥,为一组用户所共享,用于加密和验证钥,为一组用户所共享,用于加密和验证签名。签名。数字证书的作用数字证书的作用 采用数字证书,能够确认以下两点:采用数字证书,能够确认以下两点:(1)保证信息是由签名者自己签名发送的,签保证信息是由签名者自己签名发送的,签名者不能否

8、认或难以否认。名者不能否认或难以否认。(2)保证信息自签发后到收到为止未曾做过任保证信息自签发后到收到为止未曾做过任何修改,签发的信息是真实信息。何修改,签发的信息是真实信息。鉴别协议鉴别协议报文鉴别往往必须解决如下的问题:报文鉴别往往必须解决如下的问题:(1)报文是由确认的发送方产生的。报文是由确认的发送方产生的。(2)报文的内容是没有被修改正的。报文的内容是没有被修改正的。(3)报文是按传送时的相同顺序收到的。报文是按传送时的相同顺序收到的。(4)报文传送给确定的对方。报文传送给确定的对方。一种方法是发送方用自己的私钥对报文签名,签名足以一种方法是发送方用自己的私钥对报文签名,签名足以使任

9、何人相信报文是可信的。使任何人相信报文是可信的。另一种方法常规加密算法也提供了鉴别。但有两个问题,另一种方法常规加密算法也提供了鉴别。但有两个问题,一是不容易进行常规密钥的分发,一是不容易进行常规密钥的分发,二是接收方没有方法使第三方相信该报文就是从发送方二是接收方没有方法使第三方相信该报文就是从发送方送来的,而不是接收方自己伪造的。送来的,而不是接收方自己伪造的。因此,一个完善的鉴别协议往往考虑到四方面的鉴别。因此,一个完善的鉴别协议往往考虑到四方面的鉴别。报文源报文源 报文宿报文宿 报文内容报文内容 报文时间性报文时间性相互鉴别相互鉴别 利用常规加密方法进行相互鉴别不得不从利用常规加密方法

10、进行相互鉴别不得不从NeedhamSchroeder协议谈起,它采用协议谈起,它采用了常规加密体制和密钥分配中心了常规加密体制和密钥分配中心KDC技术。技术。尽管这个协议本身存在一定的平安漏洞,尽管这个协议本身存在一定的平安漏洞,但是后来开展的很多鉴别协议都是在但是后来开展的很多鉴别协议都是在NS NeedhamSchroeder协议的根底上扩展协议的根底上扩展而成的。而成的。在该协议中,网络中通信的各方与密钥分配在该协议中,网络中通信的各方与密钥分配中心中心KDC共享一个主密钥,这个主密钥已通共享一个主密钥,这个主密钥已通过其他平安的渠道传送完成。密钥分配中心过其他平安的渠道传送完成。密钥分

11、配中心KDC为通信的双方产生短期通信所需的会话为通信的双方产生短期通信所需的会话密钥,并通过主密钥来保护这些密钥的分发。密钥,并通过主密钥来保护这些密钥的分发。NeedhamSchroeder协议的鉴别通过如协议的鉴别通过如下的步骤进行:下的步骤进行:1AKDC:IDa,IDb,Ra。通信方通信方A将由自己的名字将由自己的名字IDa,通信方,通信方B的的名字名字IDb和随机数和随机数Ra组成的报文传给组成的报文传给KDC。2KDCA:EKa(Ra,IDb,Ks,EKb(Ks,IDa)。KDC产生一随时机话密钥产生一随时机话密钥Ks。他用与通信方。他用与通信方B共享的秘密密钥共享的秘密密钥Kb对

12、随时机话密钥对随时机话密钥Ks和通信方和通信方A名字组成的报文加密。然后用他和通信方名字组成的报文加密。然后用他和通信方A共享共享的秘密密钥的秘密密钥Ka对通信方对通信方A的随机值、通信方的随机值、通信方B的的名字、会话密钥名字、会话密钥Ks和已加密的报文进行加密,和已加密的报文进行加密,最后将加密的报文传送给通信方最后将加密的报文传送给通信方A。3AB:EKb(Ks,IDa)。通信方通信方A将报文解密并提取将报文解密并提取Ks。他确认。他确认Ra与他与他在第在第(1)步中发送给步中发送给KDC的一样。然后他将的一样。然后他将KDC用通信方用通信方B的密钥的密钥Kb加密的报文发送给通信方加密的

13、报文发送给通信方B。4BA:EKs(Rb)。通信方通信方B对报文解密并提取会话密钥对报文解密并提取会话密钥Ks,然后产,然后产生另一随机数生另一随机数Rb。他使用会话密钥。他使用会话密钥Ks加密它并加密它并将它发送给通信方将它发送给通信方A。5AB:EKs(Rb-1)。通信方通信方A用会话密钥用会话密钥Ks将报文解密,产生将报文解密,产生Rb-1并并用会话密钥用会话密钥Ks对它加密,然后将报文发回给通信对它加密,然后将报文发回给通信方方B。6通信方通信方B用会话密钥用会话密钥Ks对信息解密,并验证对信息解密,并验证它是它是Rb-1。这个协议的最终结果是把密钥分配中心这个协议的最终结果是把密钥分

14、配中心KDC产生的会话密钥产生的会话密钥Ks平安地分发给通信平安地分发给通信方方A和通信方和通信方B,同时通信双方,同时通信双方A和和B都证实都证实自己的身份和对方的身份。自己的身份和对方的身份。尽管尽管NeedhamSchroeder协议已经考虑协议已经考虑了重放攻击,但是设计一个完美的没有漏洞了重放攻击,但是设计一个完美的没有漏洞的鉴别协议往往是很困难的。考虑一下这种的鉴别协议往往是很困难的。考虑一下这种情况,如果一个对手已经获得了一个旧的会情况,如果一个对手已经获得了一个旧的会话密钥,那么在第话密钥,那么在第(3)步中就可冒充通信方步中就可冒充通信方A向通信方向通信方B发送一个旧密钥的重

15、放报文,而发送一个旧密钥的重放报文,而此时通信方此时通信方B无法确定这是无法确定这是个报文的重放。个报文的重放。Denning对对Needhamschroeder协议进行了修协议进行了修改,防止这种情况下的重放攻击,其过程如下:改,防止这种情况下的重放攻击,其过程如下:1AKDC:IDa,IDb。2KDCA:EKa(T,IDb,Ks,EKb(T,Ks,IDa)。3AB:EKb(T,Ks,IDa)。4BA:EKs(Rb)。5AB:EKs(Rb-1)。在这个过程中,增加了时间戳在这个过程中,增加了时间戳T,向通信方,向通信方A和和B确确保该会话密钥是刚产生的,使得通信方保该会话密钥是刚产生的,使得

16、通信方A和和B双方双方都知道这个密钥分配是一个最新的。都知道这个密钥分配是一个最新的。单向鉴别单向鉴别 第一个需求是电子邮件,报文的首部必须是明文第一个需求是电子邮件,报文的首部必须是明文的,以便报文能被的,以便报文能被SMTP处理,而邮件报文内容处理,而邮件报文内容应该加密。应该加密。第二个需求是鉴别。典型的是,收方想得到某种第二个需求是鉴别。典型的是,收方想得到某种保证,即该报文确实是来自被认为的发方。如果保证,即该报文确实是来自被认为的发方。如果使用常规加密方法进行发方和收方的直接鉴别,使用常规加密方法进行发方和收方的直接鉴别,密钥分配策略是不现实的。这种方案需要发方向密钥分配策略是不现

17、实的。这种方案需要发方向预期的收方发出请求,等待包括一个会话密钥的预期的收方发出请求,等待包括一个会话密钥的响应,然后才能发送报文。?响应,然后才能发送报文。?考虑到应该防止要求收方考虑到应该防止要求收方B和发方和发方A同时在线,同时在线,如下基于常规加密方法的方案解决了鉴别。如下基于常规加密方法的方案解决了鉴别。1AKDC:IDa,IDb,Ra。2KDCA:EKa(IDb,Ks,Ra,EKb(Ks,IDa)。3AB:EKb(Ks,IDa)EKs(M)。这个常规加密方案提供了对这个常规加密方案提供了对A的认证,并且的认证,并且保证只有保证只有B可以看到明文,但是会遭到重放攻可以看到明文,但是会

18、遭到重放攻击。另外,如果在报文中参加时间戳,由于击。另外,如果在报文中参加时间戳,由于电子邮件潜在的时延,时间戳的作用非常有电子邮件潜在的时延,时间戳的作用非常有限。限。公开密钥加密公开密钥加密方法适合电子邮件方法适合电子邮件 AB:EKUb(Ks),Eks(M)关心机密,比使用公钥加密全文更高效关心机密,比使用公钥加密全文更高效 AB:M,EKRa(H(M)关心鉴别关心鉴别,可能换签名,可能换签名 AB:EKUb(M,EKRa(H(M)机密鉴别机密鉴别数字签名数字签名 目前已有大量的数字签名算法,如目前已有大量的数字签名算法,如RSA数数字签名算法、字签名算法、EIGamal数字签名算法、椭

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

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

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

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

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

24、下述参数: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可由一组用户共享,但在实际应用中,使用公共模数可能会可由一组用户共享,但在实际应用中,使用公共模数可能会带来一定的威胁。带来一定的威胁。签名及验证协议如下:签名及验证协议如下:1

25、.P产生随机数产生随机数k,k CurrentState()!=DefaultDecryptorWithMAC:KEY_GOOD)cerr CurrentState()!=DefaultDecryptorWithMAC:MAC_GOOD)cerr Invalid MAC.The file may have been tempered with.n;例子:摘要例子:摘要void DigestFile(const char*filename)MD5 md5;SHA shs;RIPEMD160 ripemd;BufferedTransformation*outputs=new HashFilter(

26、md5),new HashFilter(shs),new HashFilter(ripemd);FileSource file(filename,true,new Fork(3,outputs);cout Attach(new HexEncoder(new FileSink(cout);cout endl;cout Attach(new HexEncoder(new FileSink(cout);cout endl;cout Attach(new HexEncoder(new FileSink(cout);cout pub.MaxPlainTextLength()cerr message to

27、o 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();hexEncoder.Close();hexEncod

28、er.Get(byte*)outstr,2*pub.CipherTextLength();outstr2*pub.CipherTextLength()=0;return outstr;例子:其他操作例子:其他操作void GzipFile(const char*in,const char*out,int deflate_level)FileSource(in,true,new Gzip(deflate_level,new FileSink(out);void GunzipFile(const char*in,const char*out)FileSource(in,true,new Gunzi

29、p(new FileSink(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站点站点 :/eskimo /weidai/cryptlib.html问题问题数字签名应该满足哪些要求?数字签名应该满足哪些要求?签名函数和加密函数应该以哪种顺序应用签名函数和加密函数应该以哪种顺序应用于消息,为什么?于消息,为什么?思考题。如果签名方声称私钥丧失,来说思考题。如果签名方声称私钥丧失,来说明其签名无效,如何解决此类威胁?明其签名无效,如何解决此类威胁?

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!