- 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算法实验心得
实验报告 姓名: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)