我在阅读有关SO的问题,发现我们可以openssl
在python中使用私钥生成公钥。现在,我想知道这是如何工作的(数学部分),如何在不使用openssl
或任何其他库的情况下,在python或C中实现该方法?
如果私钥以CRT格式(中国剩余定理)存储,则不涉及任何数学运算;该格式包括公共指数。这就是OpenSSL工具从私钥“创建”公钥的方式。
如果私有数据不是以CRT格式存储的,则给定私有数据指数通常无法计算出公共指数。但是,您可以猜测常见的公共指数并轻松验证您的猜测。
在数学上,为了快速使用另一个指数来计算一个指数,您需要知道totient,即从模数因子计算得出的数字。当然,RSA的安全性取决于分解系数的不可行性。这种关系是对称的。您是否知道公共指数并尝试计算私有指数并不重要,反之亦然。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句