rsa算法实验心得.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
rsa算法实验心得   实验报告   姓名:XXXXXXXXX学号:0XXXXX班级:XXXXXXXXX日期:XX/12/*   题目:RSA算法实验   一、实验环境   1.硬件配置:   处理器:Inter(R)Core(TM)i5-2430MCPU@(4CPUs),~内存:2048MBRAM   2.使用软件:   (1)操作系统:win7旗舰版   (2)软件工具:MicrosoftVisualc++   二、实验涉及的相关概念或基本原理   它是第一个既能用于数据加密也能用于数字签名的算法。算法的名字以发明者的名字命名:RonRivest,AdiShamir和LeonardAdleman。但RSA的安全性一直未能得到理论上的证明。它经历了各种攻击,至今未被完全攻破。   RSA的安全性依赖于大数分解。公钥和私钥都是两个大素数的函数。从一个密钥和密文推断出明文的难度等同于分解两个大素数的积。   密钥对的产生。选择两个大素数,p和q。计算:   n=p*q   然后随机选择加密密钥e,要求e和(p-1)*(q-1)互质。最后,利用Euclid算法计算解密密钥d,满足   e*d=1(mod(p-1)*(q-1))   其中n和d也要互质。数e和n是公钥,d是私钥。两个素数p和q不再需要,应该丢弃,不要让任何人知道。   加密信息m时,首先把m分成等长数据块m1,m2,...,mi,块长s,其中#include   intcandp(inta,intb,intc){intr=1;b=b+1;while(b!=1){   r=r*a;r=r%c;b--;}   printf(%d\n,r);returnr;}   voidmain(){   intp,q,e,d,m,n,t,c,r;chars;   printf(pleaseinputthep,q:);scanf(%d%d,p,q);n=p*q;   printf(thenis%3d\n,n);t=(p-1)*(q-1);   printf(thetis%3d\n,t);printf(pleaseinputthee:);scanf(%d,e);if(et){   printf(eiserror,pleaseinputagain:);scanf(%d,e);}d=1;   while(((e*d)%t)!=1)d++;   printf(thencaculateoutthatthedis%d\n,d);printf(thecipherpleaseinput1\n);printf(theplainpleaseinput2\n);scanf(%d,r);switch(r){   case1: printf(inputthem:);/*输入要加密的明文数字*/scanf(%d,m);c=candp(m,e,n);   printf(thecipheris%d\n,c);break;   case2:printf(inputthec:);/*输入要解密的密文数字*/scanf(%d,c);   m=candp(c,d,n);   printf(thecipheris%d\n,m);break;}getch();}   2、代码的思想:首先随意输入两个素数p和q,然后利用算法计算出p*q即n,再算出(p-1)*(q-1)即t,并且同时输出计算的结果n和t,接下来输入e,经过算法可以计算出d,由此可以知道RSA算法的公钥和私钥;接下来可以有两个选择:一选择输入明文,有明文经过算法可以计算出密文;二输入密文,有密文经过算法可以计算出明文。   3、运行以上代码就可以得到实验的结果。五、实验结果   实验结果如下图所示:   六、实验心得:   通过这次的实验,了解了非对称密码算法RSA,会运用一些现成的算法进行编程,对一些比较复杂的算法开始基本认识并深刻的掌握。在以后所涉及这方面的知识将会有全新的了解和掌握。   实验报告   姓名:刘新平专业:互联网班级:10-03班学号:54101XX313   实验二非对称密码算法RSA   一、实验目的   通过实际编程了解非对称密码算法RSA的加密和解密过程,加深对非对称密码算法的认识。   二、实验环境   运行Windows或Linux操作系统的PC机,具有版本的Java语言编译环境。   三、实验内容和步骤   1.对RSA算法的理解   RSA算法的原理:   (1).选择两个大的素数p和q   (2).计算n=p*q和z=*.   (3).选择一个与z互素的数,将它称为d   (4).找到e,使其满足e*d=1modz   提前计算出这些参数以后,我们就可以开始执行加密了。首先将明文分成块,使得每个明文消息P落在间隔0*Pn中。

文档评论(0)

mmrs369 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档