现代密码学第8章:数字签名.ppt
《现代密码学第8章:数字签名.ppt》由会员分享,可在线阅读,更多相关《现代密码学第8章:数字签名.ppt(79页珍藏版)》请在冰豆网上搜索。
![现代密码学第8章:数字签名.ppt](https://file1.bdocx.com/fileroot1/2022-10/19/461a4daa-b84b-4772-8110-ec7ee9bcebf1/461a4daa-b84b-4772-8110-ec7ee9bcebf11.gif)
数字签名数字签名现代密码学现代密码学第第8章章1本章主要内容本章主要内容n11、数字签名的基本概念数字签名的基本概念n2、数字签名标准、数字签名标准n3、其他签名方案、其他签名方案n习题习题2数字签名由公钥密码发展而来,它在网络安全,包括身份认证、数据完整性、不可否认性以及匿名性等方面有着重要应用。
本章首先介绍数字签名的基本概念和一些常用的数字签名算法,然后介绍身份认证协议、身份证明技术以及其他一些常用的密码协议。
1.数字签名的基本概念数字签名的基本概念3上一章介绍的消息认证其作用是保护通信双方以防第三方的攻击,然而却不能保护通信双方中的一方防止另一方的欺骗或伪造。
通信双方之间也可能有多种形式的欺骗,例如通信双方A和B(设A为发方,B为收方)使用消息认证码的基本方式通信,则可能发生以下欺骗:
1.1数字签名应满足的要求数字签名应满足的要求4B伪造一个消息并使用与A共享的密钥产生该消息的认证码,然后声称该消息来自于A。
由于B有可能伪造A发来的消息,所以A就可以对自己发过的消息予以否认。
这两种欺骗在实际的网络安全应用中都有可能发生,例如在电子资金传输中,收方增加收到的资金数,并声称这一数目来自发方。
又如用户通过电子邮件向其证券经纪人发送对某笔业务的指令,以后这笔业务赔钱了,用户就可否认曾发送过相应的指令。
数字签名应满足的要求数字签名应满足的要求5因此在收发双方未建立起完全的信任关系且存在利害冲突的情况下,单纯的消息认证就显得不够。
数字签名技术则可有效解决这一问题。
类似于手书签名,数字签名应具有以下性质:
能够验证签名产生者的身份,以及产生签名的日期和时间。
能用于证实被签消息的内容。
数字签名可由第三方验证,从而能够解决通信双方的争议。
数字签名应满足的要求数字签名应满足的要求6由此可见,数字签名具有认证功能。
为实现上述3条性质,数字签名应满足以下要求:
签名的产生必须使用发方独有的一些信息以防伪造和否认。
签名的产生应较为容易。
签名的识别和验证应较为容易。
对已知的数字签名构造一新的消息或对已知的消息构造一假冒的数字签名在计算上都是不可行的。
数字签名应满足的要求数字签名应满足的要求7数字签名的产生可用加密算法或特定的签名算法。
1.由加密算法产生数字签名利用加密算法产生数字签名是指将消息或消息的摘要加密后的密文作为对该消息的数字签名,其用法又根据是单钥加密还是公钥加密而有所不同。
1.2数字签名的产生方式数字签名的产生方式8
(1)单钥加密如图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将是无意义的比特序列。
1.由加密算法产生数字签名由加密算法产生数字签名9消息加密产生数字签名的基本方式消息加密产生数字签名的基本方式10
(2)公钥加密如图1(b)所示,发送方A使用自己的秘密钥SKA对消息M加密后的密文作为对M的数字签名,B使用A的公开钥PKA对消息解密,由于只有A才拥有加密密钥SKA,因此可使B相信自己收到的消息的确来自A。
然而由于任何人都可使用A的公开钥解密密文,所以这种方案不提供保密性。
为提供保密性,A可用B的公开钥再一次加密,如图1(c)所示。
1.由加密算法产生数字签名由加密算法产生数字签名11下面以RSA签名体制为例说明数字签名的产生过程。
体制参数。
选两个保密的大素数p和q,计算n=pq,(n)=(p-1)(q-1);选一整数e,满足1e(n),且gcd(n),e)=1;计算d,满足de1mod(n);以e,n为公开钥,d,n为秘密钥。
签名过程。
设消息为M,对其签名为SMdmodn1.由加密算法产生数字签名由加密算法产生数字签名12验证过程。
接收方在收到消息M和签名S后,验证是否成立,若成立,则发送方的签名有效。
实际应用时,数字签名是对消息摘要加密产生,而不是直接对消息加密产生,如图6.3(a)图6.3(d)所示。
1.由加密算法产生数字签名由加密算法产生数字签名13由加密算法产生数字签名又分为外部保密方式外部保密方式和内部保密方式内部保密方式,外部保密方式是指数字签名是直接对需要签名的消息生成而不是对已加密的消息生成,否则称为内部保密方式。
外部保密方式便于解决争议,因为第3方在处理争议时,需得到明文消息及其签名。
但如果采用内部保密方式,第3方必须得到消息的解密密钥后才能得到明文消息。
如果采用外部保密方式,接收方就可将明文消息及其数字签名存储下来以备以后万一出现争议时使用。
1.由加密算法产生数字签名由加密算法产生数字签名142.由签名算法产生数字签名签名算法的输入是明文消息M和密钥x,输出是对M的数字签名,表示为S=Sigx(M)。
相应于签名算法,有一验证算法,表示为Verx(S,M),其取值为算法的安全性在于从M和S难以推出密钥x或伪造一个消息M使M和S可被验证为真。
2.由签名算法产生数字签名由签名算法产生数字签名15公钥签名方案公钥签名方案n公钥签名方案:
n利用私钥生成签名,利用公钥验证签名,只有私钥的拥有者才能生成签名,所以能够用于证明谁生成的消息。
n任何知道公钥的人可以验证消息,(他们要确认公钥拥有者的身份,这是公钥的密钥分配问题),通常不对整个消息签名,因为这将会使交换信息长度增加一倍,使用消息的hashhash值,n数字签名可以提供消息的不可否认性,16数字签名的执行方式有两类:
直接方式和具有仲裁的方式。
1.直接方式直接方式是指数字签名的执行过程只有通信双方参与,并假定双方有共享的秘密钥或接收一方知道发方的公开钥。
1.3数字签名的执行方式数字签名的执行方式17直接方式的数字签名有一公共弱点,即方案的有效性取决于发方秘密钥的安全性。
如果发方想对已发出的消息予以否认,就可声称自己的秘密钥已丢失或被窃,因此自己的签名是他人伪造的。
可采取某些行政手段,虽然不能完全避免但可在某种程度上减弱这种威胁。
例如,要求每一被签名的消息都包含有一个时戳(日期和时间)并要求密钥丢失后立即向管理机构报告。
这种方式的数字签名还存在发方的秘密钥真的被偷的危险,例如敌手在时刻T偷得发方的秘密钥,然后可伪造一消息,用偷得的秘密钥为其签名并加上T以前的时刻作为时戳。
1.直接方式直接方式18上述直接方式的数字签名所具有的缺陷都可通过使用仲裁者得以解决。
和直接方式的数字签名一样,具有仲裁方式的数字签名也有很多实现方案,这些方案都按以下方式运行:
发方X对发往收方Y的消息签名后,将消息及其签名先发给仲裁者A,A对消息及其签名验证完后,再连同一个表示已通过验证的指令一起发往收方Y。
此时由于A的存在,X无法对自己发出的消息予以否认。
在这种方式中,仲裁者起着重要的作用并应取得所有用户的信任。
2.具有仲裁方式的数字签名具有仲裁方式的数字签名19以下是具有仲裁方式数字签名的几个实例,其中X表示发方,Y表示收方,A是仲裁者,M是消息,XY:
M表示X给Y发送一消息M。
2.具有仲裁方式的数字签名具有仲裁方式的数字签名20例1签名过程如下:
XA:
MEKXAIDXH(M)。
AY:
EKAYIDXMEKXAIDXH(M)T。
其中E是单钥加密算法,KXA和KAY分别是X与A共享的密钥和A与Y共享的密钥,H(M)是M的杂凑值,T是时戳,IDX是X的身份。
2.具有仲裁方式的数字签名具有仲裁方式的数字签名21在中,X以EKXAIDXH(M)作为自己对M的签名,将M及签名发往A。
在中A将从X收到的内容和IDX、T一起加密后发往Y,其中的T用于向Y表示所发的消息不是旧消息的重放。
Y对收到的内容解密后,将解密结果存储起来以备出现争议时使用。
2.具有仲裁方式的数字签名具有仲裁方式的数字签名22n如果出现争议,Y可声称自己收到的M的确来自X,并将EKAYIDXMEKXAIDXH(M)n发给A,由A仲裁,A由KAY解密后,再用KXA对EKXAIDXH(M)解密,并对H(M)加以验证,从而验证了X的签名。
2.具有仲裁方式的数字签名具有仲裁方式的数字签名23以上过程中,由于Y不知KXA,因此不能直接检查X的签名,但Y认为消息来自于A因而是可信的。
所以在整个过程中,A必须取得X和Y的高度信任:
X相信A不会泄露KXA,并且不会伪造X的签名;Y相信A只有在对EKAYIDXMEKXAIDXH(M)T中的杂凑值及X的签名验证无误后才将之发给Y;X,Y都相信A可公正地解决争议。
如果A已取得各方的信任,则X就能相信没有人能伪造自己的签名,Y就可相信X不能对自己的签名予以否认。
2.具有仲裁方式的数字签名具有仲裁方式的数字签名24本例中消息M是以明文形式发送的,因此未提供保密性,下面两个例子可提供保密性。
例2签名过程如下:
XA:
IDXEKXYMEKXAIDXH(EKXYM)。
AY:
EKAYIDXEKXYMEKXAIDXH(EKXYM)T。
2.具有仲裁方式的数字签名具有仲裁方式的数字签名25其中KXY是X,Y共享的密钥,其他符号与例1相同。
X以EKXAIDXH(EKXYM)作为对M的签名,与由KXY加密的消息M一起发给A。
A对EKXAIDXH(EKXYM)解密后通过验证杂凑值以验证X的签名,但始终未能读取明文M。
A验证完X的签名后,对X发来的消息加一时戳,再用KAY加密后发往Y。
解决争议的方法与例1一样。
2.具有仲裁方式的数字签名具有仲裁方式的数字签名26本例虽然提供了保密性,但还存在与上例相同的一个问题,即仲裁者可和发方共谋以否认发方曾发过的消息,也可和收方共谋以伪造发方的签名。
这一问题可通过下例所示的采用公钥加密技术的方法得以解决。
例3签名过程如下:
XA:
IDXESKXIDXEPKYESKXM。
AY:
ESKAIDXEPKYESKXMT。
2.具有仲裁方式的数字签名具有仲裁方式的数字签名27其中SKA和SKX分别是A和X的秘密钥,PKY是Y的公开钥,其他符号与前两例相同。
第步中,X用自己的秘密钥SKX和Y的公开钥PKY对消息加密后作为对M的签名,以这种方式使得任何第3方(包括A)都不能得到M的明文消息。
A收到X发来的内容后,用X的公开钥可对ESKXIDXEPKYESKXM解密,并将解密得到的IDX与收到的IDX加以比较,从而可确信这一消息是来自于X的(因只有X有SKX)。
第步,A将X的身份IDX和X对M的签名加上一时戳后,再用自己的秘密钥加密发往Y。
2.具有仲裁方式的数字签名具有仲裁方式的数字签名28与前两种方案相比,第3种方案有很多优点。
首先,在协议执行以前,各方都不必有共享的信息,从而可防止共谋。
第二,只要仲裁者的秘密钥不被泄露,任何人包括发方就不能发送重放的消息。
最后,对任何第三方(包括A)来说,X发往Y的消息都是保密的。
2.具有仲裁方式的数字签名具有仲裁方式的数字签名29数字签名标准DSS(DigitalSignatureStandard)是由美国NIST公布的联邦信息处理标准FIPSPUB186,其中采用了上一章介绍的SHA和一新的签名技术,称为DSA(DigitalSignatureAlgorithm)。
DSS最初于1991年公布,在考虑了公众对其安全性的反馈意见后,于1993年公布了其修改版。
2.数字签名标准数字签名标准30首先将DSS与RSA的签名方式做一比较。
RSA算法既能用于加密和签名,又能用于密钥交换。
与此不同,DSS使用的算法只能提供数字签名功能。
图2用于比较RSA签名和DSS签名的不同方式。
2.1DSS的基本方式的基本方式31RSA签名签名nRSA加密解密是可交换的n可以用于数字签名方案n给定RSA方案(e,R),(d,p,q)n要签名消息M:
计算:
nS=Md(modR)n要验证签名,计算:
nM=Se(modR)=Me.d(modR)=M(modR)32n使用RSA加密、认证:
n使