从私钥生成公钥

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

当openssl生成公钥/私钥对时,它首先生成私钥,然后根据私钥计算公钥吗?还是应该与私钥同时计算公钥?

是否可能有多个公用密钥与同一个私人密钥匹配?

谢谢

private-key public-key
1个回答
0
投票

实际上,至少在RSA中不这样,您可以拥有一个公共密钥和几个“不同”的私有密钥。在RSA中,步骤是先生成公钥,然后再生成私钥。这是因为在开始和最终生成私钥之前会选择几个随机选择的值,但是在生成私钥后它们会全部丢弃。如果保留它们,则可以使用不同的值重做该步骤,并且仍然使用相同的公共密钥,但是虽然乍一看所得到的私有密钥看起来会有所不同,但是它们是mathematically equal。即使您使用可能会创建多个密钥的算法,但出于所有意图和目的,它们都是同一密钥,因为无法推断出是否使用了一组私钥中的某个密钥进行签名,只能推断出该密钥是您拥有的公用密钥的有效对。

而且,这似乎是一个X-Y问题。即使您找到了为单个私钥创建多个公钥的算法,由于公钥本来就是公开的,所以没有什么可以阻止公众加密同一条消息并观察相同的加密结果。因此,您不能有两个不想与他人联系使用这些密钥的秘密演员。正如您特别提到的OpenSSL,在SSL上您可能会向不同的CA提供不同的公钥(假设存在这样的算法,因为我指出它在RSA中是相反的),或者可能将它们嵌入到不同的应用程序/设备中,但是由于CA支持单个服务于多个域/服务器的证书,以及服务于单个域的多个CA,目前的做法似乎没有任何好处。

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