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年推进基本医疗服务公平可及化 61页

2025年尿路结石预防与治疗攻略 24页

二零二五年度企业廉洁自律培训协议 8页

二零二五年度企业培训人员借调与员工培训服务.. 8页

2025年发烧原因与诊断方法探究 52页

二零二五年度企业反垄断合规与律师事务所合作.. 9页

二零二五年度企业信用评估委托代办服务合同 9页

二零二五年度人工智能教育平台合作框架协议 8页

二零二五年度人力资源公司企业员工档案管理服.. 8页

二零二五年度互联网科技公司个人入股合同 7页

2025年出血凝血障碍诊疗策略探究 31页

2025年感恩亲情素材200字作文 12页

二零二五年度乙方商铺租赁合同附带租金预付安.. 7页

二零二五年度临时用电安全协议书(施工企业专.. 9页

2025年养老护理基础培训教程 41页

二零二五年度中日合资企业日语外贸顾问劳动合.. 9页

2025年愚人节起源于哪个国家呢 5页

二零二五年度个体家具制造厂品牌及生产线整体.. 8页

二零二五年度个人转租房屋租赁合同(含社区健.. 7页

二零二五年度个人车位出租与停车场安全管理协.. 8页

二零二五年度个人著作权转让合同 9页

二零二五年度个人经营性贷款委托合同 7页

2025年情人节经典抖音语句 11页

2025年儿童心理发展关键理论解析 81页

二零二五年度个人家居用品销售提成与设计咨询.. 9页

二零二五年度个人农村土地租赁合同(附带农业.. 8页

二零二五年度个人信用担保抵押借款协议 8页

2025年保险医疗与临床诊疗比较研究 37页

艺术舞蹈老师简历模板 1页

服装设计合作协议书 5页