杨波《现代密码学(第2版)》07 ppt课件

上传人:aa****6 文档编号:54899145 上传时间:2018-09-21 格式:PPT 页数:62 大小:400KB
返回 下载 相关 举报
杨波《现代密码学(第2版)》07 ppt课件_第1页
第1页 / 共62页
杨波《现代密码学(第2版)》07 ppt课件_第2页
第2页 / 共62页
杨波《现代密码学(第2版)》07 ppt课件_第3页
第3页 / 共62页
杨波《现代密码学(第2版)》07 ppt课件_第4页
第4页 / 共62页
杨波《现代密码学(第2版)》07 ppt课件_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《杨波《现代密码学(第2版)》07 ppt课件》由会员分享,可在线阅读,更多相关《杨波《现代密码学(第2版)》07 ppt课件(62页珍藏版)》请在金锄头文库上搜索。

1、第7章 数字签字和密码协议,数字签字的基本概念 数字签字标准 其他签字方案 认证协议 身份证明技术 其他密码协议,数字签字由公钥密码发展而来,它在网络安全,包括身份认证、数据完整性、不可否认性以及匿名性等方面有着重要应用。 本章首先介绍数字签字的基本概念和一些常用的数字签字算法,然后介绍身份认证协议、身份证明技术以及其他一些常用的密码协议。,7.1 数字签字的基本概念,7.1.1 数字签字应满足的要求 消息认证的作用是保护通信双方以防第三方的攻击,然而却不能保护通信双方中的一方防止另一方的欺骗或伪造。通信双方之间也可能有多种形式的欺骗,例如通信双方A和B(设A为发方,B为收方)使用图6.1所示

2、的消息认证码的基本方式通信,则可能发生以下欺骗:, B伪造一个消息并使用与A共享的密钥产生该消息的认证码,然后声称该消息来自于A。 由于B有可能伪造A发来的消息,所以A就可以对自己发过的消息予以否认。这两种欺骗在实际的应用中都有可能发生:例如在电子资金传输中,收方增加收到的资金数,并声称这一数目来自发方。又如用户通过电子邮件向其证券经纪人发送对某笔业务的指令,以后这笔业务赔钱了,用户就可否认曾发送过相应的指令。,因此,在收发双方未建立起完全的信任关系且存在利害冲突的情况下,单纯的消息认证就显得不够。数字签字技术则可有效解决这一问题。类似于手书签字,数字签字应具有以下性质: 能够验证签字产生者的

3、身份,以及产生签字的日期和时间。 能用于证实被签消息的内容。 数字签字可由第三方验证,从而能够解决通信双方的争议。,由此可见,数字签字具有认证功能。为实现上述3条性质,数字签字应满足以下要求: 签字的产生必须使用发方独有的一些信息以防伪造和否认。 签字的产生应较为容易。 签字的识别和验证应较为容易。 对已知的数字签字构造一新的消息或对已知的消息构造一假冒的数字签字在计算上都是不可行的。,7.1.2 数字签字的产生方式,数字签字的产生可用加密算法或特定的签字算法。1. 由加密算法产生数字签字利用加密算法产生数字签字是指将消息或消息的摘要加密后的密文作为对该消息的数字签字。其用法根据是单钥加密还是

4、公钥加密而有所不同。,(1) 单钥加密如图7.1(a)所示,发送方A根据单钥加密算法以与接收方B共享的密钥K对消息M加密后的密文作为对M的数字签字发往B。该系统能向B保证所收到的消息的确来自A,因为只有A知道密钥K。再者B恢复出M后,可相信M未被篡改,因为敌手不知道K就不知如何通过修改密文而修改明文。具体来说,就是B执行解密运算Y=DK(X),如果X是合法消息M加密后的密文,则B得到的Y就是明文消息M,否则Y将是无意义的比特序列。,图7.1 消息加密产生数字签字的基本方式,(2) 公钥加密如图7.1(b)所示,发送方A使用自己的秘密钥SKA对消息M加密后的密文作为对M的数字签字,B使用A的公开

5、钥PKA对消息解密,由于只有A才拥有加密密钥SKA,因此可使B相信自己收到的消息的确来自A。然而由于任何人都可使用A的公开钥解密密文,所以这种方案不提供保密性。为提供保密性,A可用B的公开钥再一次加密,如图7.1(c)所示。,下面以RSA签字体制为例说明数字签字的产生过程。 体制参数。选两个保密的大素数p和q,计算n=pq,(n)=(p-1)(q-1);选一整数e,满足1e(n),且gcd(n), e)=1;计算d,满足de1 mod (n);以e, n为公开钥, d, n为秘密钥。 签字过程。设消息为M,对其签字为 SMd mod n, 验证过程。接收方在收到消息M和签字S后,验证 是否成立

6、,若成立,则发送方的签字有效。实际应用时,数字签字是对消息摘要加密产生,而不是直接对消息加密产生,如图6.3(a)图6.3(d)所示。,由加密算法产生数字签字又分为外部保密方式和内部保密方式,外部保密方式是指数字签字是直接对需要签字的消息生成而不是对已加密的消息生成,否则称为内部保密方式。外部保密方式便于解决争议,因为第3方在处理争议时,需得到明文消息及其签字。但如果采用内部保密方式,第3方必须得到消息的解密密钥后才能得到明文消息。如果采用外部保密方式,接收方就可将明文消息及其数字签字存储下来以备以后万一出现争议时使用。,2. 由签字算法产生数字签字签字算法的输入是明文消息M和密钥x,输出是对

7、M的数字签字,表示为S=Sigx(M)。相应于签字算法,有一验证算法,表示为Verx(S, M),其取值为算法的安全性在于从M和S难以推出密钥x或伪造一个消息M使M和S可被验证为真。,7.1.3 数字签字的执行方式,数字签字的执行方式有两类: 直接方式和具有仲裁的方式。1. 直接方式 指数字签字的执行过程只有通信双方参与,并假定双方有共享的秘密钥或接收一方知道发方的公开钥。,直接方式的数字签字有一公共弱点,即方案的有效性取决于发方秘密钥的安全性。如果发方想对已发出的消息予以否认,就可声称自己的秘密钥已丢失或被窃,因此自己的签字是他人伪造的。可采取某些行政手段,虽然不能完全避免但可在某种程度上减

8、弱这种威胁。例如,要求每一被签字的消息都包含有一个时戳(日期和时间)并要求密钥丢失后立即向管理机构报告。这种方式的数字签字还存在发方的秘密钥真的被偷的危险,例如敌手在时刻T偷得发方的秘密钥,然后可伪造一消息,用偷得的秘密钥为其签字并加上T以前的时刻作为时戳。,2. 具有仲裁方式的数字签字上述直接方式的数字签字所具有的缺陷都可通过使用仲裁者得以解决。和直接方式的数字签字一样,具有仲裁方式的数字签字也有很多实现方案,这些方案都按以下方式运行: 发方X对发往收方Y的消息签字后,将消息及其签字先发给仲裁者A,A对消息及其签字验证完后,再连同一个表示已通过验证的指令一起发往收方Y。此时由于A的存在,X无

9、法对自己发出的消息予以否认。在这种方式中,仲裁者起着重要的作用并应取得所有用户的信任。,以下是具有仲裁方式数字签字的几个实例,其中X表示发方,Y表示收方,A是仲裁者,M是消息,XY:M 表示X给Y发送一消息M。例7.1 签字过程如下: XA:MEKXAIDXH(M)。 AY:EKAYIDXMEKXAIDXH(M)T。其中E是单钥加密算法,KXA和KAY分别是X与A共享的密钥和A与Y共享的密钥,H(M)是M的杂凑值,T是时戳,IDX是X的身份。,在中,X以EKXAIDXH(M)作为自己对M的签字,将M及签字发往A。在中A将从X收到的内容和IDX、T一起加密后发往Y,其中的T用于向Y表示所发的消息

10、不是旧消息的重放。Y对收到的内容解密后,将解密结果存储起来以备出现争议时使用。如果出现争议,Y可声称自己收到的M的确来自X,并将 EKAYIDXMEKXAIDXH(M) 发给A,由A仲裁,A由KAY解密后,再用KXA对EKXAIDXH(M)解密,并对H(M)加以验证,从而验证了X的签字。,以上过程中,由于Y不知KXA,因此不能直接检查X的签字,但Y认为消息来自于A因而是可信的。在整个过程中,A必须取得X和Y的高度信任: X相信A不会泄露KXA,并且不会伪造X的签字;Y相信A只有在对EKAYIDXMEKXAIDXH(M)中的杂凑值及X的签字验证无误后才将之发给Y;X,Y都相信A可公正地解决争议。

11、如果A已取得各方的信任,则X就能相信没有人能伪造自己的签字,Y就可相信X不能对自己的签字予以否认。,本例中消息M是以明文形式发送的,因此未提供保密性,下面两个例子可提供保密性。例7.2 签字过程如下: XA: IDXEKXYMEKXAIDXH(EKXYM)。 AY: EKAYIDXEKXYMEKXAIDXH(EKXYM)T。,其中KXY是X,Y共享的密钥,其他符号与例7.1相同。X以EKXAIDXH(EKXYM)作为对M的签字,与由KXY加密的消息M一起发给A。A对EKXAIDXH(EKXYM)解密后通过验证杂凑值以验证X的签字,但始终未能读取明文M。A验证完X的签字后,对X发来的消息加一时戳

12、,再用KAY加密后发往Y。解决争议的方法与例7.1一样。,本例虽然提供了保密性,但还存在与上例相同的一个问题,即仲裁者可和发方共谋以否认发方曾发过的消息,也可和收方共谋以伪造发方的签字。这一问题可通过下例所示的采用公钥加密技术的方法得以解决。例7.3 签字过程如下: XA:IDXESKXIDXEPKYESKXM。 AY:ESKAIDXEPKYESKXMT。,其中SKA和SKX分别是A和X的秘密钥,PKY是Y的公开钥,其他符号与前两例相同。 第步中,X用自己的秘密钥SKX和Y的公开钥PKY对消息加密后作为对M的签字,以这种方式使得任何第3方(包括A)都不能得到M的明文消息。A收到X发来的内容后,

13、用X的公开钥可对ESKXIDXEPKYESKXM解密,并将解密得到的IDX与收到的IDX加以比较,从而可确信这一消息是来自于X的(因只有X有SKX)。 第步,A将X的身份IDX和X对M的签字加上一时戳后,再用自己的秘密钥加密发往Y。,与前两种方案相比,第3种方案有很多优点:首先,在协议执行以前,各方都不必有共享的信息,从而可防止共谋。第二,只要仲裁者的秘密钥不被泄露,任何人包括发方就不能发送重放的消息。最后,对任何第三方(包括A)来说,X发往Y的消息都是保密的。,7.2 数字签字标准,数字签字标准DSS(Digital Signature Standard)是由美国NIST公布的联邦信息处理标

14、准FIPS PUB 186,其中采用了上一章介绍的SHA和一新的签字技术,称为DSA(Digital Signature Algorithm)。DSS最初于1991年公布,在考虑了公众对其安全性的反馈意见后,于1993年公布了其修改版。,7.2.1 DSS的基本方式,首先将DSS与RSA的签字方式做一比较。RSA算法既能用于加密和签字,又能用于密钥交换。与此不同,DSS使用的算法只能提供数字签字功能。图7.2用于比较RSA签字和DSS签字的不同方式。,图7.2 RSA签字与DSS签字的不同方式,采用RSA签字时,将消息输入到一个杂凑函数以产生一个固定长度的安全杂凑值,再用发方的秘密钥加密杂凑值

15、就形成了对消息的签字。消息及其签字被一起发给收方,收方得到消息后再产生出消息的杂凑值,且使用发方的公开钥对收到的签字解密。这样收方就得了两个杂凑值,如果两个杂凑值是一样的,则认为收到的签字是有效的。,DSS签字也利用一杂凑函数产生消息的一个杂凑值,杂凑值连同一随机数k一起作为签字函数的输入,签字函数还需使用发送方的秘密钥SKA和供所有用户使用的一族参数,称这一族参数为全局公开钥PKG。签字函数的两个输出s和r就构成了消息的签字(s,r)。接收方收到消息后再产生出消息的杂凑值,将杂凑值与收到的签字一起输入验证函数,验证函数还需输入全局公开钥PKG和发送方的公开钥PKA。验证函数的输出如果与收到的

16、签字成分r相等,则验证了签字是有效的。,7.2.2 数字签字算法DSA,DSA是在ElGamal和Schnorr两个签字方案(见下一节)的基础上设计的,其安全性基于求离散对数的困难性。算法描述如下: (1) 全局公开钥 p:满足2L-1p2L 的大素数,其中512L1024且L是64的倍数。,q:p-1的素因子,满足21591的任一整数。(2) 用户秘密钥x x是满足0xq的随机数或伪随机数。,(3) 用户的公开钥y ygx mod p。(4) 用户为待签消息选取的秘密数k k是满足0kq的随机数或伪随机数。(5) 签字过程 用户对消息M的签字为(r, s), 其中r(gk mod p) mod q, sk-1(H(M)+xr) mod q,H(M)是由SHA求出的杂凑值。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

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