网络安全实验_rsa算法.pdfVIP

  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文档。上传文档
查看更多
网络安全作业 1.RSA 算法流程如下: (1 )密钥生成算法流程: 1)随机地选择两个大素数 p和q (需); 2 )计算乘积 n=p×q; 3)计算欧拉函数 z= (n)=(p-1)(q-1) 。其数值等于小 于 n并且与 n互质的整数的个数。 4 )选择一个随机数 e,使 e与z 互质,且 1ez。 5)计算 d,使 d*e=1 mod z 。 6)其中,公钥 KP={e,n} ,私钥 KS={d,n} 。 (2 )RSA 加密、解密的过程 首先将明文分块并数字化,每个数字化明文块的长度小于或等于 log 2 n。然后对每个明文块 M依次进行 加、解密: ①加密:使用公钥 e 和加密密文 m,即 C=M e mod n; ②解密:使用私钥 d 将密文 c 解密,获得明文 m ,即 M= C d mod n。 2. 具体的数据结构与算法: (1 )存储大整数的数据结构: typedef struct { int length; unsigned int n[MAX]; } Lint; 这里大整数用 65536进制表示并使用结构体 Lint 存储大整数 。Lint 由一个整型变量 length和一个无符号整 型数组 n[MAX] 构成 , length存储大整数的位数, n[MAX] 具体存储每一位的值。 (2 )具体的算法: 具体的算法主要参考了此书:振江等译.《密码编码学 —— 加密方法的 C与 C十十实现 (第二版 )》.: 电子工业, 2003 具体的算法包括:基于上述数据结构的大整数的加、减、乘、除、模幂运算,求逆元运算,以及大素 数的判定等。这些算法的具体容都在原程序与其注释中。 3. 源程序 此程序的开发环境是 Microsoft Visual studio 2008 。 (1)RSA 生成密钥源程序及运行结果 #includeiostream #includecmath using namespace std; void main() { int p,q; cout*****RSA 生成密钥算法 *****endlendl; cout 请输入两个较大的素数: endl; cinpq; coutp=p,q=qendl; int n,o; n=p*q; o=(p-1)*(q-1); coutn=n,o=oendl; cout 请从 (0 ,o-1) 中选择一个与 o 互素的数 e:endl; int e,i; float d; cine; for(i=1;;i++) { d=(float)(o*i+1)/e; if(d-(int)d==0) break; } coute=e,d=dendl; cout 公开密钥 Pk={e,n}={e,n}endl; cout 秘密密钥 Sk={d,n}={d,n}endl; coutendl; cout 请输入要加密的正整数(以 -1结束): endl; int m1[500],m3[500],m4[500]; double m2[500]; int j; for(j=0;j500;j++) {

文档评论(0)

171****9219 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档