如何从私钥生成RSA公钥?

问题描述 投票:2回答:1

我正在阅读有关SO的问题,并发现我们可以使用python中的openssl从私钥生成公钥。现在我想知道它是如何工作的(数学部分)以及我如何在python或C中实现该方法,而不使用openssl或任何其他库?

encryption rsa public-key-encryption public-key pyopenssl
1个回答
2
投票

如果私钥以CRT格式存储(中国剩余定理),则不涉及数学;格式包括公共指数。这就是OpenSSL工具从私钥“创建”公钥的方式。

如果私有不以CRT格式存储,则在给定私有指数的情况下计算公共指数通常是不可行的。但是,您可以猜测常见的公共指数并轻松验证您的猜测。

在数学上,为了使用另一个快速计算一个指数,您需要知道totient,一个根据模数因子计算的数字。当然,RSA的安全性取决于将模数分解的不可行性。这种关系是对称的;你是否知道公共指数并尝试计算私有指数并不重要,反之亦然。

© www.soinside.com 2019 - 2024. All rights reserved.