复旦信息安全课件第4章密码应用

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第四章密码应用随着计算技术的发展和网络的普及使用,利用密码技术进行数字签名和身份验证已成为信息领域不可缺少的组成部分。4.1数字签名数字签名在网络安全通信中的密钥分配、认证以及电子商务和电子政务中有着广泛的应用。对于象合同、签署的命令等,传统的方法是手书签字或印章,从而在法律上生效并可认证。随着网络通信的发展,利用电子设备进行远距离的交易,如何保证其具有可验证性、不可抵赖性已成为一个重要问题。数字签名就是为此而产生。数字签名应满足如下要求:收方能够确认或证实发方的签名,但不能伪造;发方对发出的签名不能否认其签发的信息;收方对已收到的签名信息不能否认,即有收报认证;第三方可以确认收发双方间的信息传送,但不能伪造这一过程。数字签名的方式可分为确定性签名和随机化签名两种。确定性签名就是被签名的信息与签名信息一一对应,对于同一个密钥,一个特定信息的签名不会变化;随机化签名则对于同一个密钥,同一信息的签名是随机变化的,一个信息可以有多个合法签名。在数字签名具体实现时,必须倚赖于所使用的有关通信协议。另外,由于目前签名算法基本都是基于公钥密码算法设计的,其运算速度都受到一定限制,在实际使用时,通常是对压缩信息签名,即先用Hash函数对整体信息进行压缩,然后再对压缩文本签名。4.1.1几个常用的签名算法1.RSA签名体制在RSA体制中,首先每个用户产生密钥对:(e,d)和模n,并把n和e公开,d则由自己保存。当用户A要对信息m签名时,就用自己的秘密密钥dA对m进行签名:AdnmsAmod签名过程。对于给定的m和s,接受者B就可根据A的公开密钥eA计算AensmAmod'然后检查是否有m=m',就可确定s是否用户A对m的签字。由于只有签名人知道d,由RSA体制知,其他人是难于伪造的,而验证时就是用签名者的公钥进行计算,因此是容易实现证实(m,s)是否构成一对合法对。但由于只要知道A的公开密钥eA,就可计算AensmAmod从而获得明文。而在实际使用时,通常希望只有通信双方才知道内容,一种方法是先对明文用B的公开密钥eB加密明文m,即计算c=BenmBmod,然后对密文c进行签名,即s=AdncAmod。接收者B计算c'=AensAmod,然后检查是否有c=c',就可确定s是否用户A对m的签字。从这个角度来讲即保证了信息安全,又实现了签名。但是该方案存在一个问题,那就是用户B可以伪造A的签名。其方法是:B在收到了A用上述方法的签名后,即可获得m,c及对c的签名。B构造另一明文m',然后找满足m'x=mmodnB的x,把xeB作为B的新公开密钥(当然有相应的秘密密钥)。B就可用(s,c)作为用户A对m'的签名对。此外,就是利用A的签名来攻击发送给A的密文。其方法如下:当窃听者W获得B用A的公钥加密的密文c,想求出m。由于不知道dA,无法计算AdncAmod。为此采用如下方案:W随机选取r{1,2,,nA-1},然后计算x=AenrAmod,y=x*cmodnA,t=r-1modnA,然后W向A发出请求,要求A对y签名。A对y签名s=AdnyAmod,并将s送给W。W收到s后计算:t*smodnA=mncrcrcrrcxrnyrAddddeddAdAAAAAAAAmod)(mod1111,这里eAdA=1mod(nA)。即W通过计算t*s就得到c的明文m。防这类攻击可要求用户仅对Hash值签名。2.ElGamal签名体制ElGamal签名体制于1985年提出,其修正形式就是被美国NIST作为数字签名标准DSS。它是基于求离散对数的困难性.它的基本方案是:(1)密钥的产生:随机选取一个大素数p,且p-1有大素数因子,在p-1阶循环群Zp*中选一本原元a,用户A可在Zp*中任取元素SK作为秘密密钥,并计算PK=aSKmodp,将PK作为其公开钥,与p和a一起公开。(2)签名过程用户A要对消息m(mp)签名,可用其秘密密钥进行运算,并增加一随机数,其过程如下i)在0与p-1之间选择秘密随机数kii)计算r=akmodps=(m-rSK)k-1mod(p-1)iii)取(r,s)作为m的签名连同m一起发给对方。(3)验证过程:接收方收到(r,s)和m后,即验证下式是否成立:(PK)rrs?ammodp由此即可确定(r,s)是否用户A对m的签字。该方案的安全性取决于离散对数难解问题。但如果攻击者掌握了同一随机数下的两个信息m1和m2的合法签名,就可容易求出其秘密密钥。这是因为由s=(m-rSK)k-1modp可得m=(rSK+sk)mod(p-1)。因此由m1=(rSK+s1k)mod(p-1)和m2=(rSK+s2k)mod(p-1)即可求出SK。所以在实际使用时,对每个信息的签名,都应变换随机数k,并且不能泄露随机数k。3.DSS签名标准DSS签名标准是于1994年12月开始正式作为美国的数字签名标准,该标准中所采用的算法简记为DSA,它是由D.W.Kravitz在1993年设计的。(1)密钥的产生:在随机选取一个大素数p(其中512≤||p||≤1024,且按64bit递增),取字长为160bit的p-1素因子q,在{2,3,…,p-2}中选取a,使得a(p-1)/qmodp1。令b=a(p-1)modp。用户A可在{1,2,…,q-1}内任取元素SK作为秘密密钥,并计算PK=bSKmodp,将PK作为其公开钥,与p,q和b一起公开。(2)签名过程用户A要对消息m(mp)签名,可用其秘密密钥进行运算,并增加一随机数,其过程如下i)在0与q之间选择秘密随机数kii)计算r=(bkmodp)modqs=(m+rSK)k-1modqiii)取(r,s)作为m的签名连同m一起发给对方。(3)验证过程:接收方收到(r,s)和m后,计算w=s-1modq,u1=mwmodq,u2=rwmodq,v=(bu1PKu2modp)modq然后判断v是否与r相同,由此即可确定(r,s)是否用户A对m的签字。该方案的安全性取决于离散对数难解问题。但采用公共模的方法在大范围使用时有可能成为众矢之的,而随机数重复使用同样有被破译的危险。4.一般离散对数签名体制前面介绍的ElGamal签名体制和DSA签名体制可看作为一般离散对数签名体制的特例。(1)密钥的产生:随机选取一个大素数p,q为p-1或是p-1的大素数因子,gZp*,gq1modp,用户A可在Zq*中任取元素SK作为秘密密钥,并计算PK=gSKmodq,将PK作为其公开钥,与p,q和g一起公开。(2)签名过程用户A要对消息m签名,可用其秘密密钥进行运算,并增加一随机数,其过程如下i)在0与p-1之间选择秘密随机数kii)计算r=gkmodpsk=(b+cSK)modqiii)取(r,s)作为m的签名连同m一起发给对方。(3)验证过程:接收方收到(r,s)和m后,即验证下式是否成立:ragbPKcmodq由此即可确定(r,s)是否用户A对m的签字。其中系数a,b,c可变通选择。通过对a,b,c的不同选择,就可以给出一系列的签名算法,下表就是在选择了a,b,c后所给出的6种签名方案(令r'=rmodq)。方案签名算法验证算法1r'ks+mSKmodqrr'=gsSKmmodp2r'km+sSKmodqrr'=gmSKsmodp3skr'+mSKmodqrs=grSKmmodp4skm+r'SKmodqrs=gmSKr'modp5mks+r'SKmodqrm=gsSKr'modp6mkr'+sSKmodqrm=gr'SKsmodp4.1.2几个特殊的数字签名1.不可否认签名所谓不可否认签名,其实质是在没有签名者合作时不可能验证签名,从而可以防止复制或散布所签信息,这在电子出版系统的知识产权保护方面有相当应用的前景。由于只有在签名者合作时才能验证签名,这就会给签名者一种机会,即他可能在不利于他时而拒绝合作以达到否认他曾签名的信息。签名体制除了签名和验证外,还有一个否认协议,签名者可利用否认协议向人们证明一个伪造的签名确实是假的,如果签名者拒绝参与执行否认协议,就表明签名就是他的。(1)产生系统参数设p是一个大素数,并且p=2q+1,其中q也是素数,Zp*中的离散对数是难解的随机取Zp*中的阶为q的元素g,由此构造Zp*的q阶乘法子群G(即g为G的生成元),在{1,2…,q-1}中随机选择作为SK,令PK=gSKmodp,将PK与p,g一起作为公钥公开,而SK作为签名用户的秘密密钥。(离散对数难解问题)(2)签名过程签名用户要对消息mG签名,可用其秘密密钥计算s=(m)SKmodp,把s作为对m的签名连同m一起发给对方。但这个s事实上是无法被其他人证实的。(3)验证协议:•接收方收到s和m后,选择随机数k1,k2Zp*,并计算c=sk1PKk2modp,把c送给签名者。•签名者在收到c后计算d=cSK-1modqmodp,并把d送给签名的接收者。接收方计算t=pgmkkmod21,当且仅当t=d时可确定s是一个对m的合法签名。定理4.1:如果s≠(m)SKmodp,则接受者以概率1/q接收s作为m的签名。(4)否认协议该协议的作用是签名方要使接收方确信所接收到的签名信息是其他人伪造的。也就是说当签名方声明他没有对信息m签名,则必须执行该协议,并通过协议向接收方证明签名是伪造的。若签名方仅声明没有对信息m签名,又拒绝执行该协议,则就认定签名方对信息m签名了。该协议由两轮验证协议组成。①接收方选择随机数k1,k2*pZ,并计算c=sk1PKk2modp,把c送给签名者。②签名者在收到c后计算pcdqSKmodmod1,并把d送给签名的接收者。③接收方计算t=pgmkkmod21,验证t是否不等于d。④接收方选择随机数f1,f2*pZ,并计算C=sf1PKf2modp,把C送给签名者。⑤签名者在收到C后计算pCDqSKmodmod1,并把D送给签名的接收者。⑥接收方计算T=pgmffmod21,验证T是否不等于D。⑦接收者宣布s是伪造的当且仅当pDgdgkffkmod)()(1212。定理4.2:(1)如果s≠(m)SKmodp,且接收方和签名方都遵守否认协议,则pDgdgkffkmod)()(1212。(2)假设s=(m)SKmodp,且接收方遵守否认协议,如果dpgmkkmod21,Dpgmffmod21,则pDgdgkffkmod)()(1212的概率是1-q1。(该结论说明相等概率是1/q,即明明是签名人的签名,却被成功否认的概率为1/q)。作业:P11014;P13711.假设p是素数,QRp表示模p平方剩余全体所构成的集合则(1)QRp={x2modp|0x(p-1)/2}(2)恰好存在(p-1)/2个模p平方剩余和(p-1)/2个模p非平方剩余project2:编程实现64bit的RSA(包括素数和密钥对产生),实现传送SDES加密算法所要用的密钥,并与SDES算法一起形成传送SDES加密算法,然后用SDES加密算法加密的完整体系。提供:说明文档,源码,可执行程序,通过加密实验,给出运行结果.递交时间:必须在12月11日24点之前,网上上传1.不可否认签名(1)产生系统参数设p是一个大素数,并且p=2q+1,其中q也是素数,Zp*中的离散对数是难解的随机取Zp*中的阶为q的元素g,由此构造Zp*的q阶乘法子群G(即g为G的生成元),在{1,2…,q-1}中随机选择作为SK,令PK=gSKmodp,将PK与p,g一起作为公钥公开,而SK作为签名用户的秘密密钥。(离散对数难解问题)(2)签名过程签名用户要对消息mG签名,可用其秘密密钥计算

1 / 202
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功