gpt4 book ai didi

.net - 给定一个私钥,是否可以推导出它的公钥?

转载 作者:行者123 更新时间:2023-12-03 06:02:11 25 4
gpt4 key购买 nike

从我通过阅读各种 Material 了解到的一点点来看,公钥-私钥对是非对称加密的基础,也是选择 2 个素数(大致是您的私钥)并将它们相乘(大致是您的公钥)的基础)。在我看来,如果您知道私钥,就可以生成公钥。这是正确的还是我弄错了什么?

让我更困惑的是,不可能仅使用私钥(使用 .NET 类 RSACryptoServiceProvider)将 RSA key 序列化为 XML。不确定这个限制是有意还是无意!

最佳答案

在大多数非对称加密系统实现中,唯一可以保证的事实是您无法从公钥中找到私钥。相反,在大多数情况下,从私钥找到公钥是微不足道的。

例如,在 RSA 中,您可以使用私钥创建公钥:

openssl rsa -in private.pem -pubout -out public.pem

令人误解的是术语:“私钥”指的是两个不同的概念,无论您是在谈论理论,还是在谈论实际实现:

  • 理论私钥是一对(d, n),它与(e, n)具有完美的对称(数学)关系。如果您比较这些,则无法从其中一个计算出另一个。
  • 实用私钥(例如在 openssl 实现中)是指包含(d, n)的文件,但也包含几个用于解码速度目的的重要中间值。除此之外,理论上“未知”的公钥e部分通常按照约定固定为通用值(在openssl中默认为0x10001,尽管它可以更改,强烈建议仅坚持 very specific values )。因此,从私钥推导公钥(e, n)是微不足道的,原因不止一个。

关于.net - 给定一个私钥,是否可以推导出它的公钥?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/696472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com