文章目录
前言
一、RSA简介:1977年,三位数学家Rivest、Shamir 和 Adleman 设计了一种算法,可以实现非对称加密。这种算法用他们三个人的名字命名,叫做RSA算法。从那时直到现在,RSA算法一直是最广为使用的"非对称加密算法"
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
二、RSA加密的算法的实现
1.随意选择连个大的质数p和q(注意这里要足够大不然很容易被破解还应该是质数)N=p*q
2.计算r= (p-1)(q-1)根据欧拉函数
3.选取e 要求要与r互质 e的范围是0<e<r,
4.计算d 公式为 d*emodN(其中这个mod是取余的意思)
5.其中(N,e)是公钥,(N,d)是私钥
6.加密 如图
三、举个例子
First: 取两个质数 p q 分别为 3 和11;所以就确定了N的值为311
为33(通常应该取很大的数,但这里为了计算方便选取了小的质数)
Second :计算r的值(p-1)(q-1)这里值为20
Third:选取e与 m互质数为7 (这里不唯一,按照要求取就完了)
Four:计算d (与N作为秘钥不可外传)d*emod r =1
这里取d取3 大功告成
Last but not least :选取明文 3 利用上述加密公式 密文为7 解密为3 是不是很神奇
可以自己算一下 要动手才行
代码如下(示例):
这里可以用python 代码 跑一跑 得到 秘钥 d
t= 20
i=0
e= 7
while True:
if(1+t*i)%e==0:
break
i+=1
print(i)
```c
#得到i之后 输出d相关代码为
print((1+i*r)/e)
四、RSA的优缺点
#优点
1. 不需要进行密钥传递,提高了安全性
2.可以进行数字签名认证
#缺点
1.加密解密效率不高,一般只适用于处理小量数据(如:密钥)
2.容易遭受小指数攻击
注:可以采用 Linux 系统工具gmpy2,直接求d
import gmpy2
p=
q=
e=
d= gmpy2.invert(e,(p-1)*(q-1))
print(d)
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了RSA的内容,和实现 相关 更多内容将会在以后发布