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

最近更新

二零二五年度校园食堂托管经营合作协议 10页

《唐山日丰公司人力资源管理问题及改进对策研.. 4页

《KPI绩效考核管理》 4页

T有色金属公司的环境会计信息披露研究的开题报.. 7页

AT89S52单片机最小系统设计 4页

二零二五年度导师带徒产学研合作人才培养合同.. 8页

二零二五年度夫妻自愿离婚后子女教育费用分担.. 8页

2025年减负增效工作总结范文(2) 3页

06091《薪酬管理》复习资料 5页

二零二五年度办公室装修与员工工作效率优化合.. 9页

主题餐厅装修承包协议范本 8页

低压集抄集中器模块化设计研究 2页

第8课《艺术品》教案(北师大版初三上)doc初中.. 2页

2025年度跨境贸易财税代理合作协议 8页

2025年度艺术品租赁合同书 9页

2025年度网络直播平台主播选拔合同 8页

2025年度电子商务信息咨询服务协议书 9页

粉煤灰酸浸液中AlCl-3·6H-2O的结晶分离研究 2页

重视定期妇检远离宫颈及乳腺疾病 84页

2025年度时尚服饰厂家与销售店联合营销合同协.. 9页

2025年度文化娱乐项目合同法律意见书范本 9页

2025年度承揽合同增值税税率调整与税务审计服.. 9页

2025年度工艺品行业分销管理协议 9页

2025年度定制门窗安装与户外遮阳系统合同 10页

店面运营管理的沟通技巧 34页

2025年度别墅空调安装与智能家居系统集成合同.. 9页

2025年度农业合作社农副产品统购统销合同 9页

2025年度健身营养餐盒私教服务协议 9页

2025年度人工智能辅助医疗劳动合同协议书范本.. 8页

部分建筑材料开篇章 10页