实验四RSA加解密算法的实现.doc

实验四RSA加解密算法的实现.doc

ID:52718122

大小:174.00 KB

页数:5页

时间:2020-03-29

实验四RSA加解密算法的实现.doc_第1页
实验四RSA加解密算法的实现.doc_第2页
实验四RSA加解密算法的实现.doc_第3页
实验四RSA加解密算法的实现.doc_第4页
实验四RSA加解密算法的实现.doc_第5页
资源描述:

《实验四RSA加解密算法的实现.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验四RSA加解密算法的实现一.实验目的1、对算法描述可进行充分理解,精确理解算法的各个步骤。2、完成RSA软件算法的详细设计。3、用C++完成算法的设计模块。4、编制测试代码。二.实验内容1.实验原理及基本技术路线图<方框原理图)加密过程:第一步,用户首先输入两个素数p和q,并求出n=p*q,然后再求出n的欧拉函数值phi。第二步,在[e,phi]中选出一个与phi互素的整数e,并根据e*d≡1

2、超过MAXLENGTH=500),输入以-1为结束标志,实际个数存入size中,正整数以clear[MAXLENGTH]保存。p1EanqFDPw第四步,对第三步所得的明文clear[MAXLENGTH]进行加密。遍历clear[size],对每一个整数用以下算法进行加密,并将加密后的密文保存在Ciphertext[MAXLENGTH]中。DXDiTa9E3d注意:此处不能用m2[j]=clear[j]^e整数的幂,因为当e和clear[j]较大时,会发生溢出,至使出现无法预料的结果。RTCrpUDGiT第五步,输出加密后的密文。解密过程:第一步,根据在以上算法

3、中求出的解密密钥[d,phi],对加密后的密文Ciphertext[MAXLENGTH]进行解密,结果保存在DecryptionText[MAXLENGTH]中,算法如下:5PCzVD7HxA第二步,输出对加密前的明文和加密并解密后的密文进行比较,判断两个数组是否一致,从而得知算法是否正确。2.所用仪器、材料<设备名称、型号、规格等)5/5计算机一台、vc6.03.实验方法、步骤#include#includeusingnamespacestd。#defineMAXLENGTH500//明文最大长度,即所允许最大整数个数ints

4、ize=0。//保存要进行加密的正整数的个数intp,q。//两个大素数intn,phi。//n=p*q,phi=(p-1>*(q-1>是n的欧拉函数值jLBHrnAILginte。//{e,n}为公开密钥intd。//{d,n}为秘密密钥intclear[MAXLENGTH],Ciphertext[MAXLENGTH]。//分别用于存放加//密前的明//文和加密后的密文xHAQX74J0XintDecryptionText[MAXLENGTH]。//存放解密后的明文////////////////////////////////////////////////

5、////////////LDAYtRyKfE//以下为加密算法voidEncryption(>{//加密算法cout<<"请输入两个较大的素数:"。cin>>p>>q。cout<<"p="<*(q-1>。//求解n的欧拉函数值cout<<"n="<>e。floatd0。for(inti=1。。i++>{///求解乘法逆

6、元e*d≡1(modphi>d0=(float>(phi*i+1>/e。if(d0-(int>d0==0>break。}d=(int>d0。cout<

7、cout<<"加密前的明文为:"。for(i=0。iCiphertext[i]=1。5/5intcount。for(intj=0。j{cin>>clear[j]。if(clear[j]==-1>break。count=e。while(count>0>{//对明文进行加密Ciphertext=%n。//加密算法count--。}}cout<<"密文为:"。size=j。//实际密文长度for(intk=0

8、。kcou

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。