- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
信息安全RSA加密算法实验报告.doc
实 验 报 告
学号: 2011221104220026 姓名:孙元喜
课程名称
信息安全课程设计
实验课时
n
实验项目
RSA加密算法的实现
实验时间
2013.06.02
实验目的 通过编程实现RSA的加密和解密过程,加深对公钥(非对称)密码算法的认识。
实验环境
Windows7 VS2012 实验内容(算法、程序、步骤和方法)
实验原理:
实验准备:
对RSA公钥密码体制进行分析,它是基于大整数素分解问题,且包含参数:n公开参数,e 公钥,以及解密参数p,q,其中p,q是两个大素数,是关于p,q的参数,d是解密密钥,由 ,e计算所得。
根据参数分析以及必要的数学基础分析,需要两基本算法:模n的大数幂乘的快速算法;模n求逆的算法。
算法实现需要参数导入。
算法的分步实现
根据算法首先对密文数据进行文件导入并存入相应的数组:
if ((fp=fopen(data.txt,r))==NULL)
{printf(cannot open the file\n);
exit(0);
}
while(!feof(fp))
{fscanf(fp,%d,c[i]);
i++; }
sl=i-1;
printf(打开文件密文数据:\n);
for(j=0;ji-1;j++)
{printf(%d ,c[j]);
if(j0 j%10==0) printf(\n);}
}
整数的素因子分解
输入数据n=18923,利用遍历算法寻找n的因子;
对n的因子数据p,q进行素数检验;
for(i=n-1;i1;i--)
if(n%i==0)
{p1=i;
q1=n/i;
for(i=2;i=p1;i++)
if(p1%i==0)break;
if(i==p1)p=p1;
else continue;
for(j=2;j=q1;j++)
if(q1%j==0)break;
if(j==q1)q=q1;
else continue;
}
③ 根据以上算法,可以得数据:p=127,q=149;
3、模n求逆算法
①根据2所得的p,q进行求解求得=18648;
②输入数据e=1261,并根据,并对算法进行分析利用辗转相除的原理实现算法求逆;
n1=nn;
n2=e;
q=n1/n2;
r=n1-q*n2;
while(r!=0)
{n1=n2;
n2=r;
t=b2;
b2=b1-q*b2;
b1=t;
q=n1/n2;
r=n1-q*n2;
}
if(n2==1)
{d=(b2+nn)%nn;
printf(请输出逆元:%d\n,d);
}
else printf(逆元不存在:);
}
③根据以上算法,可以得数据:d=5797;
4、大数幂乘算法
①根据导入数据的参数密文c:12423 11524 7243 7459 14303 6127 10964 16399 9272 13629调用,以及进行求解m:
for(i=0;isl;i++)
{char m1[100];
c1=1;j=0;
a=c[i];
b=d;
while(b0)
{if(b%2==0)
{b=b/2;
a=(a*a)%n;}
else{b=b-1;c1=(c1*a)%n;}}
②根据算法可得明文数据:5438 1364 2925 14571 14303 5746 8805 4588 1144 40
数字转化为字符
将所得的数字数据转化为字符数据:
for(i=0;isl;i++)
{int j=0;
char m1[100];
while(m[i]!=0)
{m1[j]=m[i]%26+a;
m[i]=m[i]/26;
j++;}
将所得的字符数据的方向输出:
for(k=j-1;k=0;k--)
printf(%c,m1[k]);
printf(%c, );}
输出的数据:
ibe cam ein vol ved ina nar gum bsa bo
实验数据记录 打开文件密文数据:
12423 11524 7243 7459 14303 6127 10964 16399 9272 13629
请输出n的值:18923
请输出p、q的值:127 149
请输出nn的值:18648
请输出e的值:1261
请输出逆元:5797
请输出明文:
5438 1364 2925 14571 14303 5746 8805 4588 1144 40
请输出明文:
ibe cam ein vol ved ina nar gum bsa bo
Press any
您可能关注的文档
- 互联网上的金融理财产品有如何发展与监管.doc
- 互联网与中国社会管理创新.pdf
- 互联网及其应用自考论文.doc
- 互联网数据中心机房建设方案.doc
- 互联网热点数据分析.pdf
- 互联网知识竞赛复习资料.doc
- 互联网络金融讲师培训老师刘杰克教授做客清华大学上海工商银行班讲授互联网银行营销课程.pdf
- 互联网行业运维管理解决方案.pdf
- 互联网访问控制解决方案中人网.pdf
- 互联网软件应用与开发每章重点.pdf
- 团结出版社有限公司2025年度公开招聘工作人员笔试高频难、易错点备考题库及完整答案详解1套.docx
- 四川成都市青白江区人民法院编外人员招聘3人笔试备考题库带答案详解.docx
- 国家体育总局2024年事业单位公开招聘人员(秋季)笔试高频难、易错点备考题库参考答案详解.docx
- 国务院发展研究中心公共管理与人力资源研究所招聘笔试高频难、易错点备考题库及参考答案详解1套.docx
- 四川泸州市文化广播电视和旅游局选调直属事业单位工作人员笔试高频难、易错点备考题库含答案详解.docx
- 四川成都市成华区市场监督管理局招聘编外聘用制工作人员笔试备考题库附答案详解.docx
- 嘉兴市中级人民法院面向社会招录10人笔试备考题库及答案详解一套.docx
- 嘉兴市南湖区教育体育局所属事业单位招聘笔试备考题库及参考答案详解1套.docx
- 司法鉴定科学研究院2025年度事业编制工作人员公开招聘笔试高频难、易错点备考题库附答案详解.docx
- 启东市公安局警务辅助人员招聘20人笔试高频难、易错点备考题库及答案详解一套.docx
文档评论(0)