付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
非对称加密、解密算法RSA的C++实现
信息平安技术试验报告
———非对称加密、解密算法RSA的C++实现
计算机学院2023级12班学号:53081224姓名:胡守峰
非对称加密、解密算法RSA的C++实现
【我的目的】依据课上老师所讲“非对称加密、解密算法RSA”的有关学问,
编写其的C++语言实现。
【我的加密思想】第一步,用户首先输入两个素数p和q,并求出
n=p*q,然后再求出n的欧拉函数值phi。
其次步,在[e,phi]中选出一个与phi互素的整数e,并依据e*d≡1(modphi),求出e的乘法逆元。至此我们已经得到了公开密钥{e,n}和隐秘密钥{d,n}。
第三步,让用户输入要进行加密的小于n一组正整数(个数不超过MAXLENGTH=500),输入以-1为结束标志,实际个数存入size中,正整数以clear[MAXLENGTH]保存。
第四步,对第三步所得的明文clear[MAXLENGTH]进行加密。遍历clear[size],对每一个整数用以下算法进行加密,并将加密后的密文保存在Ciphertext[MAXLENGTH]中。
留意:此处不能用m2[j]=clear[j]^e整数的幂,由于当e和clear[j]较大时,会发生溢出,至使消失无法预料的结果。
第五步,输出加密后的密文。
【我的解密思想】第一步,依据在以上算法中求出的解密密钥[d,phi],对加
密后的密文Ciphertext[MAXLENGTH]进行解密,结果保存在DecryptionText[MAXLENGTH]中,算法如下:
Page2of9
其次步,输出对加密前的明文和加密并解密后的密文进行比较,推断两个数组是否全都,从而得知算法是否正确。
【我的试验】
1、RSA加密、解密算法的C++实现(可以在VC6.0上运行):
#include#include
usingnamespacestd;
#defineMAXLENGTH500//明文最大长度,即所允许最大整数个数
intsize=0;//保存要进行加密的正整数的个数intp,q;//两个大素数
intn,phi;//n=p*q,phi=(p-1)*(q-1)是n的欧拉函数值inte;//{e,n}为公开密钥intd;//{d,n}为隐秘密钥
intclear[MAXLENGTH],Ciphertext[MAXLENGTH];//分别用于存放加//密前的明//文和加密后的密文
intDecryptionText[MAXLENGTH];//存放解密后的明文
////////////////////////////////////////////////////////////
//以下为加密算法
voidEncryption(){//加密算法
cout>p>>q;
cout>e;floatd0;
for(inti=1;;i++)
{///求解乘法逆元e*d≡1(modphi)d0=(float)(phi*i+1)/e;if(d0-(int)d0==0)
Page3of9
break;}
d=(int)d0;cout>clear[j];if(clear[j]==-1)break;count=e;
while(count>0)
{//对明文进行加密Ciphertext=(clear)^emodn//加密算法Ciphertext[j]=(Ciphertext[j]*clear[j])%n;
count--;}}
cout0)
{//对密文进行解密DecryptionText=(Ciphertext)^d(modn)DecryptionText[j]=((DecryptionText[j]*Ciphertext[j])%n);count--;}}
Page4of9
cout>c;
if(c==
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年智慧物流仓储管理报告
- 2026年移动支付行业竞争分析报告
- 2026年电力安装公司技术员劳动合同三篇
- 2026届山西省祁县二中高三下学期一模考试化学试题试卷含解析
- 肾康丸对糖尿病肾病miR - 192信号通路的干预机制研究
- 肺部恶性肿瘤供血血管:CTA与DSA成像技术对比及临床应用研究
- 肺癌术后心律失常危险因素的多维度剖析与临床启示
- 肺炎链球菌肺炎小鼠模型中TLR2、TLR4表达特征及其免疫调节机制的深度剖析
- 肺保护性通气策略在腹腔镜胆囊切除术中的应用:肺顺应性与氧合的影响探究
- 肯尼亚私立高等教育管理体制:结构、挑战与展望
- 2023年度上海市教师招聘考试《中学生物》押题卷(含答案)
- 滨州科技职业学院辅导员考试题库
- 教师因两地分居调动工作申请书
- 游岳阳楼记带翻译
- GB/T 10592-2023高低温试验箱技术条件
- CB马达安装维护手册中文
- 2023年道县小升初英语考试题库及答案解析
- JJG 693-2011可燃气体检测报警器
- JJG 1148-2018电动汽车交流充电桩
- GB/T 18707.1-2002机械振动评价车辆座椅振动的实验室方法第1部分:基本要求
- GB/T 17044-2020钢丝绳芯输送带覆盖层与带芯层粘合强度试验
评论
0/150
提交评论