- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
作业3--RSA实验报告--夏磊--S1048035
信息安全实验报告
作业3-RSA加密解密
姓名: 夏磊
学号: S1048035
班级: 2010级秋季班
指导教师: 王 昭
目录
信息安全实验报告 1
1 设计思路及主要代码分析 3
1.1 实验目的 3
1.2 实验要求 3
1.3 设计思路 3
1.3.1 程序流程图 3
1.3.2 实验原理 4
1.3.3 设计说明 5
1.4 程序源代码 6
1.4.1 程序工程结构 6
1.4.2 大数运算代码BigNumber.cpp 6
1.4.3 应用程序代码RSA_XIALEIDlg.cpp 20
1.4.4 运算库头文件:CBigNumber.h 37
1.5 测试数据 39
2 实验结果及问题分析 39
2.1 运行结果 39
2.2 性能测试 54
2.3 结果分析 55
3 附录 55
3.1 机器环境及配置 55
3.2 编译环境 56
3.3 程序及源码 56
设计思路及主要代码分析
实验目的
1、理解RSA加密和解密原理。
2、理解使用RSA进行数字签名和验证的过程
3、大素数生成及验证的算法算法。
实验要求
实现RSA算法,包括素数生成,加密和签名。并进行加解密正确性测试及性能测试。
设计思路
程序流程图
主程序流程图
实验原理
RSA算法描述:
找两素数p和q
取n=p*q
取t=(p-1)*(q-1)
取任何一个数e,要求满足et并且e与t互素(就是最大公因数为1)
取d*e%t==1
这样最终得到三个数: n d e
设消息为数M (M n)
设c=(M**d)%n就得到了加密后的消息c
设m=(c**e)%n则 m == M,从而完成对c的解密。
注:**表示次方,上面两式中的d和e可以互换。
输入:
X=0
FOR i=0 TO n
X=X*10
X=X+(int)(str[n]-48)
RETURN X
输出:
str=
WHILE(X0)
str=(char)(X%10-48)+str
RETURN str
设计说明
程序首先随机生成两个大素数P和Q,再生成公钥(E,N)和私钥(D,N)
加解密过程:读入明文文件,生成加密,然后再进行解密。
数字签名:读入明文文件,进行签名,然后再验证签名。(普遍采用的签名都是先对明文数据先做一下MD5摘要,然后再对摘要后的内容进行签名及验证,本实验为有针对性的处理,省略了MD5的过程,直接对明文数据进行签名及验证)
在操作的同时,进行信息提示和计时,以便做性能测试。
程序源代码
程序工程结构
大数运算代码BigNumber.cpp
/*****************************************************************
大数运算库源文件:BigNumber.cpp
*****************************************************************/
#include stdafx.h
#include BigNumber.h
//小素数表
const static int PrimeTable[550]=
{ 3, 5, 7, 11, 13, 17, 19, 23, 29, 31,
37, 41, 43, 47, 53, 59, 61, 67, 71, 73,
79, 83, 89, 97, 101, 103, 107, 109, 113, 127,
131, 137, 139, 149, 151, 157, 163, 167, 173, 179,
181, 191, 193, 197, 199, 211, 223, 227, 229, 233,
239, 241, 251, 257, 263, 269, 271, 277, 281, 283,
293, 307, 311, 313, 317, 331, 337, 347, 349, 353,
359, 367, 373, 379, 383, 389, 397, 401, 409, 419,
421, 431, 433, 439, 443, 449, 457, 461, 463, 467,
479, 487, 491, 499, 503, 50
您可能关注的文档
- UPS供应链物流.doc
- UPS国际快递及观后感.doc
- UPS市场的新变革.docx
- UPS投标书.doc
- UPS机动车辆统一保险投标书.doc
- UPS概述.doc
- USB-CAN转换接口设计.doc
- USB30中文资料.docx
- UNIX家族及类UNIX系统.doc
- USB30开发笔记.doc
- 你到底是UTF-8还是ANSI(editplus).docx
- 佛山龙谦建筑设计专业英语.doc
- 体积浓度ppm与质量浓度mgm3.doc
- 使用DevExpress的WebChartControl控件绘制图表(柱状图折线图饼图).doc
- 使用Power Designer工具进行数据库设计.doc
- 使用SPI接口控制74HC595LED显示-bascom.doc
- 使用struts2和hibernatespring完成一个用户注册程序.doc
- 使用Radiator进行无线网路验证.doc
- 使用VREPALR修复NOVELL网络的卷.doc
- 使用MD5算法对AndroidSQLite中的内容进行加密.doc
文档评论(0)