RSA- 是否可以从给定的 public 密钥生成私钥?

RSA- Is it possible to generate a private key from a given public key?

我正在尝试保护系统并正在考虑使用 RSA 加密来识别服务器(它的 public 密钥将固定到客户端)和保护发送的密码。 这一切都是为了防御MITM攻击。

所以我的问题是, 在客户端和服务器之间获得 MITM 的攻击者是否可以生成他自己的 public 和私钥对,以便客户端看到与固定相同的 public 密钥,但私钥将属于攻击者?同样,不一定要找到服务器私钥,而是找到一个不同的私钥 - 以便它与服务器 public 匹配,并且客户端可以被愚弄。 谢谢!

不,那不可能。模数在私钥和 public 密钥之间共享,并且对于密钥对是唯一的。您需要将模数分解为单独的素数以从中生成有效的私钥。这就是所谓的 RSA 问题,正是它使 RSA 适合非对称密码学。

唯一可以分解模数的情况是 RSA 密钥对生成被破坏,或者当底层随机数生成器在多个实例上重复时,并且攻击者通过它学习密钥对。然后是侧通道,糟糕的密钥管理...