上海电力学院《应用密码学》课程设计
题目RSA加密解密的设计与实现
院系计算机科学与技术学院
专业年级2010级
学生姓名李正熹学号
指导教师
2013年1月8日
f目录
目录
1设计要求
2开发环境与工具
3设计原理算法工作原理
4系统功能描述与软件模块划分
5设计核心代码
6参考文献
7设计结果及验证
8软件使用说明
9设计体会
附录
f1设计要求
1随机搜索大素数随机生成公钥和私钥
2用公钥对任意长度的明文加密
3用私钥对密文解密
4界面简洁、交互操作性强
2开发环境与工具
Wi
dowsXP操作系统
MicrosoftVisualC60
1创建rsa工程
2在rsa工程中创建20103273李正熹cpp文件
f3设计原理
RSA算法简介
公开密码算法与其他密码学完全不同它是基于数学函数而不是基于替换或置换。与使用一个密钥的对称算法不同公开密钥算法是非对称的并且它使用的是两个密钥包括用于加密的公钥和用于解密的私钥。公开密钥算法有RSA、Elgamal等。
RSA公钥密码算法是由美国麻省理工学院MIT的RivestShamir和Adlema
在1978年提出来的并以他们的名字的有字母命名的。RSA是第一个安全、实用的公钥密码算法已经成为公钥密码的国际标准是目前应用广泛的公钥密码体制。
RSA的基础是数论的Euler定理其安全性基于二大整数因子分解问题的困难性公私钥是一对大素数的函数。并且该算法已经经受住了多年深入的密码分析虽然密码分析者既不能证明也不能否定RSA的安全性但这不恰恰说明该算法有其一定的可信度。
f4系统功能描述与软件模块划分
功能
1进行加密
加密
第一步随机两个素数p和q并求出
pq然后再求出
的欧拉函数值phi。
第二步在ephi中选出一个与phi互素的整数e并根据ed≡1modphi求出e的乘法逆元。至此我们已经得到了公开密钥e
和秘密密钥d
。
第三步让用户输入要进行加密的小于
一组正整数个数不超过MAXLENGTH输入以
f1为结束标志实际个数存入size中正整数以clearMAXLENGTH保存。
第四步对第三步所得的明文clearMAXLENGTH进行加密。遍历clearsize对每一个整数用以下算法进行加密并将加密后的密文保存在CiphertextMAXLENGTH中。
第五步输出密文CiphertextMAXLENGTH
2进行解密
第一步输入加密后的密文Ciphertext1MAXLENGTH输入以1为结束标志
第二步输入解密密钥dphi对密文进行解密结果保存在Decryptio
TextMAXLENGTH中。第三步输出解密后明文Decryptio
TextMAXLENGTH
生成随机素数先生成一个随机数然后判断它是否为素数从而输出u
sig
edlo
gfoo生成随机数
i
tpa
dua
u
sig
edlo
gb判断是否为素数
u
sig
edlo
gtiquu
sig
edlo
gpu
sig
edlo
gq从随机素r