RSA加解密过程及实现.docx
- 文档编号:27625004
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:6
- 大小:85.99KB
RSA加解密过程及实现.docx
《RSA加解密过程及实现.docx》由会员分享,可在线阅读,更多相关《RSA加解密过程及实现.docx(6页珍藏版)》请在冰豆网上搜索。
RSA加解密过程及实现
RSA加解密过程及实现
本科生作业
兰州理工大学
计算机与通信学院
2017年暮季学期
信息安全
课程
专业:
姓名:
学#:
联网工程
授课教师:
郭显
成绩:
RSA加解密过程及其实现
1.RSA概述1-1RSA算法
RSA加密算法是一种最常用的非对称加密算法,
CFCA在证书服务中离不了它。
在公钥加密标准
和电子商业中,RSA被广泛使用。
RSA算法使
用乘方运算,明文以分组为单位进行加密,每个小必须小于或等于也(〃屮位,在实际应用中,分组的大小,位,其中22必2讥对明文分组M和密文分组C,加密和解密过程如下:
分组的二进制值均小于”,
也就是说,分组的大
C=Mcmodit
M=Cdmodn=(A/'modn=M曲modn
其中收发双方均已知n,发送方已知e,只有接收方已知d,因此公钥加密算法的公钥为
PU={e9n},私钥为PR={d,n}o该算法要能做公钥加密,必须满足以下条件:
(1)可以找到使得对所有的MVH,有
Mmmodn=Mo
(2)对所有的Mvn,计算协和cd是比较容易的。
(3)由。
和”确定d是不可行的。
1.2公钥与私钥
(1)随意选择两个大素数”和9,P不等于计算〃o
(2)根据欧拉函数,不大于〃且与"互素的整数个数为(P-i)S-i)
(3)选择一个整数'‘与(p-i)(9-d互素,并且。
小于
(H)
(4)用以下这个公式计算d:
血三lmod((p-l)(g-l))
(5)将”和°的记录销毁。
(询是公钥,(”,d)是私钥。
他〃)是秘密的。
Alice将她的公钥曲)传给Bob,而将她的私钥5”)藏起来。
RSA加感算法流程及加密过程图
图1RSA加密过程
2.实例描述
(1)选择两个素数,p=17,9=Ho
(2)计算n==17x11=187o
(4)选择〃使其与0(〃)“60互素且小于0(小这里选
(5)确定〃使得de三1mod160且t/<160o因为23x7=161=1x160+1,所以d=23。
d可利用扩展的欧几里得算法来计算。
所得的公钥PU={7,187}、私钥P/?
={23,187}o该例说明了
输入明文M=177时这些密钥的使用情况。
加密时下计算:
需计算c=177?
mod187o
利用模算术的性质,我们如
1777nx)d187=[(1774mod187)x(1772mod187)x(177nx)d187)]imd187177modl87=177
1772mod187=31329modl87=1001774mod187=98150624lmod187=89177?
nx)dl87=(177x100x89)mod187=1575300nx)dl87=12
解密时,我们计算M=10mod187
1223mod187=[(12mod187)x(122mod187)x(12°mad187)x(12*mad187)x(12"imd187)]mod187
12modl87=12
122modl87=144124modi87=20736modl87=166128modi87=429981696mod187=67
1123niodl87=(12xl44xl66x67x67)nx)dl87=1287660672mod187=177
3.RSA算法的安全性
在RSA密码应用中,公钥刖是被公开的,即「和”的数值可以被第三方窃听者得到。
破解RSA密码的问题就是从已知的。
和“的数值(”等于旳),想法求出的数值,这样就可以得到私钥来破解密文。
从上文中的公式:
d三『(mod(S-l)(g-1)))或de=1mod((p_l)(g_1))我们可以看出。
密码破解的实质问题是:
从凶的数值,去求出(P-1)和(q-1)o换句话说,只要求出〃和。
的值,我们就能求出d的值而得到私钥。
当P和。
是一个大素数的时候,从它们的积凶去分解因子P和9,这是一个公认的数学难题。
比如当凶大到1024位时,迄今为止还没有人能够利用任何计算工具去完成分解因子的任务。
然而,虽然RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。
即RSA的重大缺陷是无法从理论上把握它的保密性能如何。
此外,RSA的缺点还有:
A)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。
B)分组长度太大,为保证安全性,”至少也要600bits以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。
因此,使用RSA只能加密少量数据,大量的数据加密还要靠对称加密算法。
4.程序代码#include
b=b+l;
while(b!
=l)
{
r=r*a;
r=r%c;
}printf(H%d\n,\r);returnr;
}
voidmain()int
chars;
printf「请输入p,q:
n);
scanf(n%dT\&m);
c=rsa(m9e,n);
printf("其密码是%d\n,\c);
break;
case2:
printf(H输入要解密的密文数字c:
n);/*输入要解密的密文数字*/
scanf(n%df\&c);
m=rsa(c9d,n);
printf(n其密码是%d\n,\m);
break;
}
}
5.程序测试结果
图2RSA加密
图3RSA解密
总结:
通过c语言的程序实现对RSA算法的理解加深了。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- RSA 解密 过程 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)