1 / 15
文档名称:

实验4 非对称密码算法RSA.doc

格式:doc   页数:15页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

实验4 非对称密码算法RSA.doc

上传人:用户头像没有 2016/6/5 文件大小:0 KB

下载得到文件列表

实验4 非对称密码算法RSA.doc

文档介绍

文档介绍:实验 4 非对称密码算法 RSA (验证型) 一、实验目的通过实际编程了解非对称密码算法 RSA 的加密和解密过程,加深对非对称密码算法的认识。二、实验原理对称密码算法要求通信双方通过交换密钥实现使用同一个密钥,这在密钥的管理、发布和安全性方面存在很多问题,而非对称密码算法解决了这个问题。加密密钥和解密密钥是不同的,其中加密密钥是可以公开的,解密密钥是要求保密的,并且不能用其中的一个推导出另一个。它的安全性是建立在“大数分解和素性检测”这个数论难题的基础上,即将两个大素数相乘在计算上容易实现,而将该乘积分解为两个大素数因子的计算量相当大。虽然它的安全性还未能得到理论证明,但经过 30年的密码分析和攻击,迄今仍然被实践证明是安全的。三、实验环境运行 Window s或者 Linu x 操作系统的PC机,具有 gcc ( Linux )、 VC ( Windows ) 等C语言编译环境。四、实验内容和步骤 1、为了加深对 RSA 算法的了解,根据已知参数:2, 11 ,3???Mqp ,手工计算公私钥,并对明文进行加密,然后对密文进行解密。 2、编写 RSA 程序,加密一段文字,了解 RSA 算法原理。尝试加密一大段文字,记录程序的运行时间。使用 DES 算法加密相同的文字,比较两种算法加密的速度。 3、编写一个程序,随机选择 3个较大的数 nex,, ,计算 nx e mod ,记录程序运行时间。查阅资料给出简单说明大数在计算机上是如何表示,如何进行运算。 4、查阅资料,找出目前实际可行的素数判定法则,并比较各自的优缺点。五、实验步骤 1、 p=3 , q=11 则 n=pq=33,f(n)=20 ,选择 e=7, 则 d=3 那么加密得 c=29 解密得 m=2 2、打开 VC++ ,编写程序如下: #include<> #include <> #include <> #include <> //using namespace std; typedef struct RSA_PARAM_Tag { //64 位数 unsigned __int64 p,q; //两个素数,不参与加密解密运算 unsigned __int64 f; //f=(p-1)*(q-1) ,不参与加密解密运算 unsigned __int64 n, e; //公匙, n=p*q , gcd(e,f)=1 unsigned __int64 d; //私匙, e*d=1 (mod f), gcd(n,d)=1 unsigned __int64 s; //块长,满足 2^s<=n 的最大的 s,即 log2(n) } RSA_PARAM;// 小素数表,用于素性测试前,用小素数来初步筛选素数. const static unsigned __int64 g_PrimeTable[]= {3,5,7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97 }; const static long g_PrimeCount=sizeof(g_PrimeTable) / sizeof(long); //乘数 const unsigned __int64 multiplier=**********; //加数 const unsigned __int64 adder=1343545677842234541; //随机数类 class RandNumber { private: unsigned __int64 randSeed;/* */ public: RandNumber(unsigned __int64 s=0); unsigned __int64 Random(unsigned __int64 n); };/* */ RandNumber::RandNumber(unsigned __int64 s) { if(!s) { randSeed= (unsigned __int64)time(NULL); } else { randSeed=s; } }/* 一个简单的随机数产生算法*/ unsigned __int64 RandNumber::Random(unsigned __int64 n) { randSeed=multiplier*randSeed+adder; return randSeed%n; } //定义了一个静态的类对象 static RandNumber g_Rnd;/* 模乘运算,返回值 x=a*b mod n */ inline unsigned __int64 M

最近更新

员工犯错保证书范文样板简洁版 1页

电梯设备买卖合同-买卖通用版合同 9页

架桥机作业安全关键控制点管理要求 4页

部队岗位申请书 2页

管理学计划与计划工作公开课获奖课件赛课一等.. 108页

地球的结构公开课获奖课件赛课一等奖课件 18页

谈电梯的安全监察、标准与安全检验 4页

民事上诉状(最高法院2016版) 2页

道路交通安全管理 5页

工程造价控制与管理 7页

防爆叉车技术及规范公开课获奖课件赛课一等奖.. 25页

土石方工程定额工程量计量公开课获奖课件赛课.. 28页

《中国古代诗歌散文欣赏》复习ppt课件(149页).. 149页

电潜泵井电流卡片分析公开课获奖课件赛课一等.. 15页

宠物电商物流配送效率优化-洞察阐释 34页

(荐)感悟作文3篇 2页

(热门)第一次做饭作文15篇 12页

龟虽寿原文翻译及赏析2篇 4页

高校教师年度个人总结(通用8篇) 13页

高中自我评价(通用14篇) 13页

电动单梁起重机的安全使用问题探讨 4页

道路绿化施工方案 60页

2024年黑龙江省哈尔滨市中考物理试卷(附参考答.. 10页

长歌行汉乐府优质课件公开课获奖课件省赛课一.. 10页

汽车检测与维修毕业论文《新能源汽车》 9页

江苏南京淳化街道创建“诗词之乡”为发展增添.. 1页

1,4-丁二醇工艺 21页

《GB_2894-2016 安全标志及其使用导则》.pdf 48页

歌罗西书第四章注解(黄迦勒) 11页

培训课件:电力传输 68页