- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
RSA数字签名.
密码学与信息安全技术实验报告
实验编号:实验七 实验名称:RSA算法数字签名 实验内容描述:
通过实验实例了解RSA算法数字签名。 实验设计与实现:
1、RSA数字签名体制:
RSA算法中数字签名技术实际上是通过一个Hash函数来实现的。数字签名的特点是它代表了文件的特征,文件如果发生改变,数字签名的值也将发生变化。不同的文件将得到不同的数字签名。一个最简单的Hash函数是把文件的二进制码相累加,取最后的若干位。Hash函数对发送数据的双方都是公开的。
只有加入数字签名及验证才能真正实现在公开网络上的安全传输。加入数字签名和验证的文件传输过程如下:
(1) 发送方首先用Hash函数从原文得到数字签名,然后采用公开密钥体系用发达方的私有密钥对数字签名进行加密,并把加密后的数字签名附加在要发送的原文后面;
(2) 发送一方选择一个秘密密钥对文件进行加密,并把加密后的文件通过网络传输到接收方;
(3) 发送方用接收方的公开密钥对密秘密钥进行加密,并通过网络把加密后的秘密密钥传输到接收方;
(4) 接受方使用自己的私有密钥对密钥信息进行解密,得到秘密密钥的明文;
(5) 接收方用秘密密钥对文件进行解密,得到经过加密的数字签名;
(6) 接收方用发送方的公开密钥对数字签名进行解密,得到数字签名的明文;
(7) 接收方用得到的明文和Hash函数重新计算数字签名,并与解密后的数字签名进行对比。如果两个数字签名是相同的,说明文件在传输过程中没有被破坏。
如果第三方冒充发送方发出了一个文件,因为接收方在对数字签名进行解密时使用的是发送方的公开密钥,只要第三方不知道发送方的私有密钥,解密出来的数字签名和经过计算的数字签名必然是不相同的。这就提供了一个安全的确认发送方身份的方法。
2、RSA数字签名体制的基本算法表述:
(1)体制参数
假设用户甲使用如下的参数:
大合数n=p1*p2,其中p1和p2是大素数;
用户甲将公开模数n和公钥e,而将p1,p2与私钥d严格保密。
(2)签名算法
假设用户甲对数据M∈Zn进行签名,计算
S=Sig(M)=Md mod n
并将S作为用户甲对数据M的数字签名附在数据M后。
(3)验证算法?????? 假设用户乙需要验证用户甲对数据M的签名S,用户乙计算M’=Sdmod n并判断M’是否等于M,如果M’=M,则说明签名S确实是用户甲所产生的,否则,签名S可能是由攻击者伪造生成的。
完整地,验证算法可以表述如下:?????? Ver(M,S)=(M=Sdmod n) true:false?????? 如果(M=Sdmod n )为真,则表达式的值为true,否则表达式的值为false。
RSA数字签名体制的实现过程如图1所示。发送方用户甲发送报文M时,先用自己的私钥d1对报文进行加密,产生密文d1(M);再用接收方用户乙的公钥e2进行第二次加密,产生密文e2(d1(M))。接收方用户乙收到密文后,先用自己的私钥d2进行第一次解密,还原出密文d1(M),即d2(e2(d1(M)))=d1(M);再用发送方用户甲的公钥e1进行第二次解密,得到明文P,即e1(d1(M))=M。
RSA数字签名体制必须同时使用收。发双方的私钥d1和公钥e1才能获得原文(明文),也才能完成发送方的身份认证和接收方无法伪造或篡改报文的功能。因为只有发送方才有其私钥d1,所以,只要能用其公钥e1还原,发送方就无法否认所发送的报文。
3、实验过程:
流程分析:
甲方构建密钥对儿,将公钥公布给乙方,将私钥保留。
甲方使用私钥加密数据,然后用私钥对加密后的数据签名,发送给乙方签名以及加密后的数据;乙方使用公钥、签名来验证待解密数据是否有效,如果有效使用公钥对数据解密。
乙方使用公钥加密数据,向甲方发送经过加密后的数据;甲方获得加密数据,通过私钥解密。
校验数字签名:
实验结果:
实验结论:
RSA算法数字签名是个加密的过程,数字签名验证是个解密的过程。使用公钥加密、私钥解密,完成了乙方到甲方的一次数据传递,通过私钥加密、公钥解密,同时通过私钥签名、公钥验证签名,完成了一次甲方到乙方的数据传递与验证,两次数据传递完成一整套的数据交互!。
您可能关注的文档
最近下载
- 社会研究方法(第六版)PPT课件.ppt
- 四川省成都市2024-2025学年高一上学期期中考试数学试题含答案 (2).pdf VIP
- 燃气工程技术标.doc VIP
- 2025年中国浮选剂行业市场发展前景及发展趋势与投资战略研究报告.docx
- 浙江国企招聘-2024宁波市北仑区凤凰城建设发展有限公司招聘1人笔试模拟试题及答案解析.docx VIP
- 安全技术交底范本(大全).docx VIP
- 成都新都投资集团有限公司2025年招聘财务会计岗等岗位(23人)笔试备考试题及答案解析.docx VIP
- CJJ1-2008城镇道路工程施工与质量验收规范.doc VIP
- 长效生长激素使用的安全性问题分析(专家咨询会0908).ppt VIP
- 财务监理合同7篇.docx VIP
文档评论(0)