RSA加密与解密的简单实现

本文深入介绍了RSA非对称加密算法,包括其由来、加密过程及实例演示。通过选取质数p和q计算N,然后找到与r互质的e和计算私钥d,实现加密解密。同时,文中提到了RSA算法的优缺点,如安全性高但效率较低,适合处理小量数据。最后,给出了Python代码示例来计算秘钥d。
摘要由CSDN通过智能技术生成


前言


一、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的内容,和实现 相关 更多内容将会在以后发布

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值