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

最近更新

2025年度汽车修理厂车辆维修全面免责服务协议.. 9页

2025年度水利工程款支付与生态补偿协议 9页

2025年度民宿室内设计纯设计服务协议 9页

2025年度校园外卖代运营项目合同 9页

2025年3月孙丽鼻咽癌放疗护理攻略 23页

2025年度智能电网合伙经营合同 7页

2025年度智能房产交易委托代理协议书的意义与.. 8页

2025年度智能家居系统拓扑分析与智能化改造合.. 9页

2025年度智能家居产品研发委托代理合同 9页

2025年度智能化社区保安承包管理合同 8页

2025年度智能制造专利申请代理服务契约 9页

2025年度智慧家居系统合同财务审核要点与智能.. 9页

2025年度时尚秀场商业拍摄制作合同 9页

2025年度施工人员安全培训及考核合同 8页

2025年度新能源电动车销售业务合作协议 9页

2025年度新能源汽车专用运输服务合同模板 9页

2025年度新型城镇化小区地下车位租赁管理合同.. 8页

2025年度文化旅游项目业务承包合同 9页

2025年度文化创意产业孵化劳务咨询服务合同 8页

2025年度数据中心工程结算付款合作协议 7页

2025年度教育机构教师教学质量评估与改进合同.. 8页

2025年度教育培训机构品牌推广人员劳动合同 8页

2025年度房屋买卖不过户产权变更及过户风险防.. 8页

2025年度房地产众筹合作分红执行合同 7页

2025年度户外用品区域代理销售合同 9页

临床常用护理技术注意事项 85页

2025年度建筑工程架架子工人员技能培训及用工.. 8页

2025年度店铺转让协议版-医疗健康店铺转让 9页

2025年度广告宣传合作终止合同解除通知书 8页

2025年度幼儿园教师实习期幼儿教育法律法规聘.. 7页