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

上传人:东*** 文档编号:270893656 上传时间:2022-03-27 格式:PDF 页数:202 大小:1.76MB
返回 下载 相关 举报
复旦大学信息安全课件第4章密码应用_第1页
第1页 / 共202页
复旦大学信息安全课件第4章密码应用_第2页
第2页 / 共202页
复旦大学信息安全课件第4章密码应用_第3页
第3页 / 共202页
复旦大学信息安全课件第4章密码应用_第4页
第4页 / 共202页
复旦大学信息安全课件第4章密码应用_第5页
第5页 / 共202页
点击查看更多>>
资源描述

《复旦大学信息安全课件第4章密码应用》由会员分享,可在线阅读,更多相关《复旦大学信息安全课件第4章密码应用(202页珍藏版)》请在金锄头文库上搜索。

1、第四章 密码应用第四章 密码应用 随着计算技术的发展和网络的普及使用,利用密码技术进行数字签名和身份验证已成为信息领域不可缺少的组成部分。随着计算技术的发展和网络的普及使用,利用密码技术进行数字签名和身份验证已成为信息领域不可缺少的组成部分。4.1 数字签名数字签名 数字签名在网络安全通信中的密钥分配、认证以及电子商务和电子政务中有着广泛的应用。数字签名在网络安全通信中的密钥分配、认证以及电子商务和电子政务中有着广泛的应用。 对于象合同、签署的命令等,传统的方法是手书签字或印章,从而在法律上生效并可认证。对于象合同、签署的命令等,传统的方法是手书签字或印章,从而在法律上生效并可认证。 随着网络

2、通信的发展,利用电子设备进行远距离的交易,如何保证其具有可验证性、不可抵赖性已成为一个重要问题。数字签名就是为此而产生。随着网络通信的发展,利用电子设备进行远距离的交易,如何保证其具有可验证性、不可抵赖性已成为一个重要问题。数字签名就是为此而产生。 数字签名应满足如下要求:数字签名应满足如下要求: 收方能够确认或证实发方的签名,但不能伪造;发方对发出的签名不能否认其签发的信息;收方能够确认或证实发方的签名,但不能伪造;发方对发出的签名不能否认其签发的信息; 收方对已收到的签名信息不能否认,即有收报认证;收方对已收到的签名信息不能否认,即有收报认证; 第三方可以确认收发双方间的信息传送,但不能伪

3、造这一过程。第三方可以确认收发双方间的信息传送,但不能伪造这一过程。 数字签名的方式可分为确定性签名和随机化签名两种。数字签名的方式可分为确定性签名和随机化签名两种。 确定性签名就是被签名的信息与签名信息一一对应,对于同一个密钥,一个特定信息的签名不会变化;确定性签名就是被签名的信息与签名信息一一对应,对于同一个密钥,一个特定信息的签名不会变化; 随机化签名则对于同一个密钥,同一信息的签名是随机变化的,一个信息可以有多个合法签名。随机化签名则对于同一个密钥,同一信息的签名是随机变化的,一个信息可以有多个合法签名。 在数字签名具体实现时,必须倚赖于所使用的有关通信协议。在数字签名具体实现时,必须

4、倚赖于所使用的有关通信协议。 另外,由于目前签名算法基本都是基于公钥密码算法设计的,其运算速度都受到一定限制,另外,由于目前签名算法基本都是基于公钥密码算法设计的,其运算速度都受到一定限制, 在实际使用时,通常是对压缩信息签名,即先用在实际使用时,通常是对压缩信息签名,即先用Hash函数对整体信息进行压缩,然后再对压缩文本签名。函数对整体信息进行压缩,然后再对压缩文本签名。4.1.1几个常用的签名算法几个常用的签名算法 1.RSA签名体制签名体制 在在RSA 体制中,首先每个用户产生密钥对:体制中,首先每个用户产生密钥对:(e,d)和模和模n,并把,并把n和和e公开,公开,d则由自己保存。当用

5、户则由自己保存。当用户A要对信息要对信息m签名时,就用自己的秘密密钥签名时,就用自己的秘密密钥dA对对m进行签名:进行签名:AdnmsAmod签名过程。对于给定的签名过程。对于给定的m和和s,接受者,接受者B就可根据就可根据A的公开密钥的公开密钥eA计算计算AensmAmod然后检查是否有然后检查是否有m=m,就可确定,就可确定s是否用户是否用户A对对m的签字。的签字。 由于只有签名人知道由于只有签名人知道d,由,由RSA体制知,其他人是难于伪造的,而验证时就是用签名者的公钥进行计算,因此是容易实现证实体制知,其他人是难于伪造的,而验证时就是用签名者的公钥进行计算,因此是容易实现证实(m,s)

6、是否构成一对合法对。是否构成一对合法对。 但由于只要知道但由于只要知道A的公开密钥的公开密钥eA,就可计算,就可计算AensmAmod从而获得明文。而在实际使用时,通常希望只有通信双方才知道内容,从而获得明文。而在实际使用时,通常希望只有通信双方才知道内容,一种方法是先对明文用一种方法是先对明文用B的公开密钥的公开密钥 eB加 密 明 文加 密 明 文 m , 即 计 算, 即 计 算c=BenmBmod,然后对密文,然后对密文 c 进行签名,即进行签名,即 s=AdncAmod。接收者。接收者 B 计算计算c=AensAmod, 然后检查是否有, 然后检查是否有 c=c,就可确定,就可确定

7、s 是否用户是否用户 A 对对 m 的签字。从这个角度来讲即保证了信息安全,又实现了签名。的签字。从这个角度来讲即保证了信息安全,又实现了签名。 但是该方案存在一个问题,那就是用户但是该方案存在一个问题,那就是用户B可以伪造可以伪造A的签名。的签名。 其方法是:其方法是:B在收到了在收到了A用上述方法的签名后,即可获得用上述方法的签名后,即可获得m,c及对及对c的签名。的签名。 B构造另一明文构造另一明文m,然后找满足,然后找满足mx=mmod nB的的x,把,把xeB作为作为B的新公开密钥的新公开密钥(当然有相应的秘密密钥当然有相应的秘密密钥)。 B就可用就可用(s,c)作为用户作为用户A对

8、对m的签名对。的签名对。此外,就是利用此外,就是利用 A 的签名来攻击发送给的签名来攻击发送给 A 的密文。其方法如下:的密文。其方法如下: 当窃听者当窃听者 W 获得获得 B 用用 A 的公钥加密的密文的公钥加密的密文 c,想求出,想求出 m。由于不知道。由于不知道 dA,无法计算,无法计算AdncAmod。为此采用如下方案:。为此采用如下方案: W 随机选取随机选取 r 1,2,nA-1,然后计算,然后计算 x=AenrAmod,y=x* *cmod nA,t=r-1 mod nA,然后,然后 W 向向 A 发出请求,要求发出请求,要求 A 对对 y 签名。签名。 A 对对 y 签名签名

9、s=AdnyAmod,并将,并将 s 送给送给 W。 W收到收到s后计算:后计算:t*s mod nA= mncrcrcrrcxrnyrAddddeddAdAAAAAAAAmod)(mod1111, 这里这里 eAdA=1mod (nA)。即。即 W 通过计算通过计算 t*s 就得到就得到c 的明文的明文 m。防这类攻击可要求用户仅对。防这类攻击可要求用户仅对 Hash 值签名。值签名。 2.ElGamal签名体制签名体制 ElGamal签名体制于签名体制于1985年提出,其修正形式就是被美国年提出,其修正形式就是被美国NIST作为数字签名标准作为数字签名标准DSS。它是基于求离散对数的困难性

10、它的基本方案是:。它是基于求离散对数的困难性它的基本方案是: (1)密钥的产生:随机选取一个大素数密钥的产生:随机选取一个大素数p,且,且p-1有大素数因子,在有大素数因子,在p-1阶循环群阶循环群p*中选一本原元中选一本原元a,用户,用户A可在可在p*中任取元素中任取元素SK作为秘密密钥,并计算作为秘密密钥,并计算 PK=aSKmod p, 将将PK作为其公开钥,与作为其公开钥,与p和和a一起公开。一起公开。 (2)签名过程签名过程 用户用户A要对消息要对消息m(m1。令。令b=a(p-1)mod p。 用户用户A可在可在1,2,q-1内任取元素内任取元素SK作为秘密密钥,并计算作为秘密密钥

11、,并计算PK=bSKmod p, 将将PK作为其公开钥,与作为其公开钥,与p,q和和b一起公开。一起公开。 (2)签名过程签名过程 用户用户A要对消息要对消息m(mp)签名,可用其秘密密钥进行运算,并增加一随机数,其过程如下签名,可用其秘密密钥进行运算,并增加一随机数,其过程如下 i)在在0与与q之间选择秘密随机数之间选择秘密随机数k ii)计算计算r=(bkmod p)mod qs=(m+r SK)k-1mod q iii)取取(r,s)作为作为m的签名连同的签名连同m一起发给对方。一起发给对方。 (3)验证过程:验证过程: 接收方收到接收方收到(r,s)和和m后,计算后,计算w=s-1mo

12、d q,u1=m wmodq , u2=r wmodq ,v=(bu1PKu2mod p)mod q 然后判断然后判断v是否与是否与r相同,由此即可确定相同,由此即可确定(r,s)是否用户是否用户A对对m的签字。的签字。 该方案的安全性取决于离散对数难解问题。该方案的安全性取决于离散对数难解问题。 但采用公共模的方法在大范围使用时有可能成为众矢之的,而随机数重复使用同样有被破译的危险。但采用公共模的方法在大范围使用时有可能成为众矢之的,而随机数重复使用同样有被破译的危险。 4.一般离散对数签名体制一般离散对数签名体制 前面介绍的前面介绍的ElGamal签名体制和签名体制和DSA 签名体制可看作

13、为一般离散对数签名体制的特例。签名体制可看作为一般离散对数签名体制的特例。 (1)密钥的产生:随机选取一个大素数密钥的产生:随机选取一个大素数p,q为为p-1或是或是p-1的大素数因子,的大素数因子,g Zp*,gq 1mod p,用户,用户A可在可在Zq*中任取元素中任取元素SK作为秘密密钥,并计算作为秘密密钥,并计算 PK=gSKmod q, 将将PK作为其公开钥,与作为其公开钥,与p,q和和g一起公开。一起公开。 (2)签名过程签名过程 用户用户A要对消息要对消息m签名,可用其秘密密钥进行运算,并增加一随机数,其过程如下签名,可用其秘密密钥进行运算,并增加一随机数,其过程如下 i)在在0

14、与与p-1之间选择秘密随机数之间选择秘密随机数k ii)计算计算r=gkmod ps k=(b+c SK) mod q iii)取取(r,s)作为作为m的签名连同的签名连同m一起发给对方。一起发给对方。 (3)验证过程:验证过程: 接收方收到接收方收到(r,s)和和m后,即验证下式是否成立:后,即验证下式是否成立: ra gbPKcmod q 由此即可确定由此即可确定(r,s)是否用户是否用户A对对m的签字。的签字。 其中系数其中系数a,b,c可变通选择。通过对可变通选择。通过对a,b,c 的不同选择,就可以给出一系列的签名算法,的不同选择,就可以给出一系列的签名算法, 下表就是在选择了下表就

15、是在选择了a,b,c后所给出的后所给出的6种签名方案种签名方案(令令r=r mod q)。方案签名算法验证算法1rks+mSK modqrr=gsSKm mod p2rkm+sSK modqrr=gmSKs mod p3skr+mSK modqrs=grSKm mod p4skm+rSK modqrs=gmSKr mod p5mks+rSK modqrm=gsSKr mod p6mkr+sSK modqrm=grSKs mod p4.1.2几个特殊的数字签名几个特殊的数字签名 1.不可否认签名不可否认签名 所谓不可否认签名,其实质是在没有签名者合作时不可能验证签名,从而可以防止复制或散布所签信

16、息,这在电子出版系统的知识产权保护方面有相当应用的前景。所谓不可否认签名,其实质是在没有签名者合作时不可能验证签名,从而可以防止复制或散布所签信息,这在电子出版系统的知识产权保护方面有相当应用的前景。 由于只有在签名者合作时才能验证签名,这就会给签名者一种机会,即他可能在不利于他时而拒绝合作以达到否认他曾签名的信息。由于只有在签名者合作时才能验证签名,这就会给签名者一种机会,即他可能在不利于他时而拒绝合作以达到否认他曾签名的信息。 签名体制除了签名和验证外,还有一个否认协议,签名者可利用否认协议向人们证明一个伪造的签名确实是假的,如果签名者拒绝参与执行否认协议,就表明签名就是他的。签名体制除了签名和验证外,还有一个否认协议,签名者可利用否认协议向人们证明一个伪造的签名确实是假的,如果签名者拒绝参与执行否认协议,就表明签名就是他的。 (1)产生系统参数产生系统参数 设设p是一个大素数,并且是一个大素数,并且p=2q+1,其中,其中q也是素数,也是素数,Zp*中的离散对数是难解的中的离散对数是难解的 随机取随机取Zp*中的阶为中的阶为q的元素的元素g,由此构造,由此构造Zp*的的q阶乘法子

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

当前位置:首页 > IT计算机/网络 > 网络安全

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