【网络安全】|非对称加密体系-RSA算法

一、RSA算法
1、RSA密钥的生成步骤:
选择素数:选择两个大的素数p和q,并计算它们的乘积n=p×q。n的长度(通常以位数表示)决定了RSA算法的安全性。

计算欧拉函数:使用欧拉函数φ(n)=(p-1)(q-1)=t,计算出一个值t。

选择公钥指数e:选择一个质数e,使得e与t互质(即最大公约数为1),并且e小于t且大于1。e是公钥的一部分。

计算私钥指数d:计算e关于t的模逆元d,即找到一个整数d,满足(d×e) mod t = 1。d是私钥的一部分。

生成密钥对:公钥为(n,e),私钥为(n,d)。这对密钥将被用于后续的加密和解密操作。

2、RSA算法的加密和解密过程
加密:假设要加密的明文信息为M,首先将其转化为一个整数m(m必须小于n)。然后使用公钥(n,e)对m进行加密,计算密文
c=m^e mod n。

解密:接收方收到密文c后,使用私钥(n,d)进行解密,计算明文
m=c^d mod n。由于只有接收方持有私钥,因此只有接收方能够成功解密出原始的明文信息。

二、
问题1: 已知加密算法c=m^e mod n,已知c, e,n, 为什么不能得到明文m
答: 这个加密过程是不可逆的,必须通过知道私钥d才能进行解密

问题2,已经解密算法m=c^d mod n,已知d为e关于ϕ(n)=t的模逆元,已知e, 且逆模元唯一,为什么不能得到私钥d,
答: 虽然私钥 𝑑 可以通过公钥 𝑒和 𝜙(𝑛)计算得出,但计算 𝜙(𝑛)需要知道 𝑛的两个素因子的值。而在RSA中, 𝑛 是两个大素数 𝑝 和 𝑞的乘积。如果攻击者仅知道 𝑛 和 𝑒,但不知道 𝑝 和 𝑞,那么计算 𝜙(𝑛) 是非常困难的,因为这是一个大数分解问题。

RSA算法的安全性主要依赖于两个关键因素:大数分解的困难性和私钥的保密性

这个算法简直不要太嚣张,就好像在告诉你,来,加解密算法告诉你了,怎么计算密钥对也告诉你了,加密算法中除了明文所有的因子都告诉你了,你来破解。。。

三、RSA攻击
思路:
n = p * q
在 RSA 加密中,n 通常是两个大质数的乘积。如果有两个不同的模数 n1 和 n2,其中:
n1 = p1 * q1
n2 = p2 * q2
其中 p1, q1, p2, 和 q2 是质数,如果 n1 和 n2 使用了相同的质数 q,则它们的最大公约数(gcd)将是 q。

因此,如果 n1 和 n2 共享一个质数 q,那么 gcd(n1, n2) 就等于 q

例子:
n1 = p1 * q
n2 = p2 * q
其中 p1 和 p2 是不同的质数,q 是相同的质数。那么:
gcd(p1 * q, p2 * q) = q
总结一下,math.gcd(x, y):计算并返回两个整数 x 和 y 的最大公约数。在实际的攻击场景中,知道了 gcd(n1, n2) 就可以用来恢复这个公共的质数,从而进一步破解 RSA 加密。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值