RSA已知明文和公钥能得到私钥加密的密文吗

2025-02-22 10:25:17
推荐回答(2个)
回答1:

首先破解RSA是指 密文 ->明文 的过程!

假设明文m,密文c,私钥d,公钥e,RSA加密的流程如下:

1、两个较大的互不相等的质数p和q

2、n = p * q

3、fn = (p - 1) * (q - 1)

4、e 与 fn 互质, 且1 < e < fn

5、d满足 de % fn = 1

6、加解密:

c = (m^e) % n 

m = (c^d) % n

上面的公式可以理解为通过公钥加密,而通过私钥解密。

第一种情况:已知明文和公钥得到私钥加密的密文,这个是加密过程,与私钥d关系不大,加密过程主要在于n的值!

假设这种情况已知明文m,公钥e,私钥d,密文c有无数种。

第二种情况:已知明文密文和公钥得到私钥。

已知明文m,密文c,公钥e求私钥d,套入次公式:c= (m^e) % n,n的值也是不唯一的,所以私钥d的值也不唯一。


在有正确答案做对比的情况下个人感觉第二种情况比较容易求出吧。

个人见解,欢迎讨论。

回答2:

mod 是一种整数之间的相互运算,就是通常所说的取余数运算。例如: 2187mod20=7就表示2187除以20,余数是7. 更常见的表示方法是2187=7(mod 20) 注意这里的等号通常都写成恒等号(就是三横,我这里打不出恒等号)。相应地读作2187与7关于模(即mod)20同余。关于同余有一套比较完整的理论,这是数论里的内容,本题只需要一些比较基础的数论知识。 一般来讲,公开密钥系统的公钥都是取两个大素数。对这两个大素数进行一系列的运算,详细的内容可以参考百科。本题里由于d与n,e与n互素,所以也可算。 本题就是对消息m=3的加密。利用公钥以及加密方法即得 密文=m^e对n=20取模。 结果就是3^7=2187=7(mod20).反过来,现在得到了密文7,那么利用解密密钥 d=3就知道 原文m=(密文)^3=7^3=343=3(mod 20),也就是原文是3.