下载此文档

RSA加密算法.docx


文档分类:IT计算机 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
数学与计算机学院密码学实验报告
年级 2009级学号 2009432133 姓名王祥辉成绩
专业网络工程实验地点主楼502 指导教师常卓
实验项目 RSA加密算法实验日期 2012年9月17日
实验目的
通过实际编程了解非对称密码算法RSA的加密和解密过程,加深对非对称密码算法的认识
实验原理
对称密码算法要求通信双方通过交换密钥实现使用同一个密钥,这在密钥的管理、发布和安全性方面存在很多问题,而非对称密码算法解决了这个问题。加密密钥和解密密钥是不同的,其中加密密钥是可以公开的,解密密钥是要求保密的,并且不能用其中的一个推导出另一个。它的安全性是建立在“大数分解和素性检测”这个数论难题的基础上,即将两个大素数相乘在计算上容易实现,而将该乘积分解为两个大素数因子的计算量相当大。虽然它的安全性还未能得到理论证明,但经过30年的密码分析和攻击,迄今仍然被实践证明是安全的。
实验要求
编写一个程序,随机选择3个较大的数x、e、n,然后计算xe mod n,记录程序运行时间。实际中应用的素数为512位,n也就为1024位。这样的大数在计算机上如何表示、如何进行运算,查阅资料给出简单说明。
实验步骤、结果(程序+注释+截图)及分析
1程序
#include <iostream>
#include "ctime"
#include <cstdlib>
#include ""
#include <>
#include <> using namespace std;
int main ()
{ clock_t start,finish; double time; long x,e,n; cout<<"随机产生3个大数(在10000000~999999999之间)进行xe mod n的时间为"<<endl; start = clock(); srand(time(0)); x = 100000000*(rand ()%11)+10000000*(rand ()%11)+1000000*(rand ()%11)+100000*(rand ()%11)+10000*(rand ()%11)+1000*(rand ()%11)+100*(rand ()%11)+10*(rand()%11)+rand ()%11; e = 100000000*(rand ()%11)+10000000*(rand ()%11)+1000000*(rand ()%11)+100000*(rand ()%11)+10000*(rand ()%11)+1000*(rand ()%11)+100*(rand ()%11)+10*(rand()%11)+rand ()%11; n = 100000000*(rand ()%11)+10000000*(rand ()%11)+1000000*(rand ()%11)+100000*(rand ()%11)+10000*(rand ()%11)+1000*(rand ()%11)+100*(rand ()%11)+10*(rand()%11)+rand ()%11; cout<<"x="<<x<<" "<<"e="<<e<<" "<<"n="<<n<<endl; start

RSA加密算法 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人顾生等等
  • 文件大小89 KB
  • 时间2018-06-19