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

最近更新

内蒙古2018版保育员初级考试试题试卷及答案 11页

内蒙古2018年保育员三级专业能力考试试题试卷.. 10页

关爱留守儿童暑期社会实践心得体会与关爱留守.. 16页

关于读书活动心得体会与关于读书演讲稿汇编 7页

交警大队开展交通安全隐患排查整治工作总结与.. 5页

云南省2020版保育员四级业务能力考试试题试卷.. 11页

2020版幼儿园小班保育员上学期考试试题试卷及.. 10页

2025年度奶茶店员工劳动合同解除备案与执行合.. 8页

2025年度夫妻忠诚协议及出轨赔偿条款合同 7页

2025年度太阳能设备维修服务委托协议 8页

2025年度大连正规房产买卖合同毁约处理细则 8页

2025年度大学生实习实训项目实习实训基地建设.. 9页

2025年度大型挂车租赁及全程物流跟踪服务合同.. 8页

2025年度外贸企业供应链金融合作协议书 8页

2025年度塑料管材防腐蚀性能购销合同 9页

2025年度城市综合体停车位使用权转让协议 7页

2025年度城市文化旅游节庆活动宣传策划合同 9页

2025年度城市地下管线探测与修复劳务合同承担.. 9页

2025年度城乡供水一体化项目供用水合同模板 9页

2025年度地基房屋买卖及配套设施管理合作协议.. 10页

2025年度地下室房屋租赁与艺术展览合作合同 8页

2025年度土建工程绿色施工废弃物处理合同 9页

2025年度土地流转居间与农业生态循环经济发展.. 9页

2025年度土地厂房租赁合同:航空航天装备维修.. 8页

2025年度国际贸易实习生合作协议范本 8页

XX学校义务教育优质均衡发展创建实施方案范文.. 8页

顺丁烯二酸酐工艺规程 25页

节后复工复产安全生产培训记录 6页

核电知识竞赛试题及答案 7页

(LARS)评价量表 1页