- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.2数字签名
合肥工业大学 胡东辉 2006年9月 2.2 数字签名 2.2.1 数字签名的概念 2.2.2 利用RSA密码实现数字签名 2.2.3 利用ElGamal密码实现数字签名 2.2.4 美国数字签名标准DSS 2.2.1 数字签名概念 日常生活中的签名,盖章 数字签名满足的条件 签名者事后不能抵赖自己的签名 任何其他人不能伪造签名 如果当事人双方关于签名的真伪发生真伪,能够在公正的仲裁者面前通过验证来确认其真伪。 数字签名概念(续) 需要解决的问题 A如何在文件M上签名? B如何验证A的签名真伪? A如何鉴别别人伪造自己的签名? B如何阻止A签名后又抵赖? 2.2.2 利用RSA密码实现数字签名 签名: SA=D(M,KdA) = (MdA) mod n 验证: E(SA,keA)= (MdA)eA mod n =M 对RSA数字签名的攻击 TRUDY要伪造A对M3的签名,容易找M1和M2,使得 M3=M1*M2 mod n 设法让A对M1和M2进行签名 S1=(M1) dA mod n S2= (M2) dA mod n TURDY可以伪造: (S1S2) mod n =((M1) dA (M2) dA ) mod n =(M3)dA mod n =S3 RSA数字签名的应用 PGP 2.2.3 利用ElGamal密码实现数字签名 选P是一个大素数,p-1是又大素因子,?是p的本原元,将p和?公开。用户随机选择一个整数x作为自己的秘密的解密钥,1≤x≤p-2,计算y= ?x mod p,取y为自己的公开加密钥。公开参数p和?可以由一组用户共用。 产生签名 设用户A要对明文消息m加签名,0≤m≤p-1,其签名过程如下: 用户A随机地选择一个整k,1kp-1,且(k,p-1)=1; 计算 r= ? k mod p 计算 s=(m-xAr)k-1 mod p-1 取(r,s)作为m的签名,并以〈m,r,s〉的形式发给用户B 验证签名 用户B验证 ? m = yrA rs mod p, 是否成立,若成立,则签名为真,否则为假。 因为: s=(m-xAr)k-1 mod p-1 ? m= xAr + ks mod p-1 ? m =? xAr + ks = (? xA)r (? k)s = yrA rs mod p 2.2.4 美国数字签名标准DSS 主要参数 P为素数, 2511≤p≤2512 q为一个素数,它(p-1)的因子,2159≤p≤2160 g=h(p-1)/q mod p, 其中1hp-1,且h(p-1)/q mod p1 X为一随机数,0xq Y=gx mod p K为一随机数,0kg 签名的产生 r=(gk mod p) mod q s=(k-1(SHA(M) + xr)) mod q 其中,k-1为k的乘法逆元,即kk-1 =1 mod q SHA(M)为M的HASH函数,是M的报文摘要,保证M的数据完整性 将(M,r, s)发送给接收方 验证签名 收到 M, r, s, 若0rq, 0sq,计算 w=s-1 mod q u1=(SHA(M)w) mod q U2=(rw) mod q V=((gu1yu2) mod q) mod q 若r=v ,则确认签名正确 证明略 * * 数字签名和认证有何区别和联系? 问题 什么叫盲签名?什么叫群签名? 问题
文档评论(0)