【发布时间】:2020-05-03 07:12:45
【问题描述】:
openssl 生成公钥/私钥对时,是不是先生成私钥,再根据私钥计算公钥?还是应该和私钥同时计算公钥?
是否可以有多个公钥匹配同一个私钥?
谢谢
【问题讨论】:
-
这取决于特定的加密系统。
openssl 生成公钥/私钥对时,是不是先生成私钥,再根据私钥计算公钥?还是应该和私钥同时计算公钥?
是否可以有多个公钥匹配同一个私钥?
谢谢
【问题讨论】:
至少不是在 RSA 中,事实上,您可以拥有一个公钥和几个“不同”的私钥。在 RSA 中,首先生成公钥,然后生成私钥。这是因为在开始和最终生成私钥之前选择了几个随机选择的值,但是在生成私钥之后它们都被丢弃了。如果保留它们,则可以使用不同的值重做该步骤并仍然使用相同的公钥,但是虽然生成的私钥乍一看会有所不同,但它们是mathematically equal。即使您使用可能创建多个密钥的算法,出于所有意图和目的,它们也是相同的密钥,因为无法推断是否使用一组私钥中的某个密钥进行签名,只有密钥是您拥有的公钥的有效对。
另外,这似乎是一个 X-Y 问题。即使您找到一种为单个私钥创建多个公钥的算法,由于公钥本来就是公开的,因此没有什么可以阻止公众加密相同的消息并观察相同的加密结果。所以你不能有两个不想关联使用这些密钥的秘密演员。正如您特别提到的 OpenSSL,在 SSL 上,您可能会向不同的 CA 提供不同的公钥(假设存在这样的算法,因为正如我指出的那样,它在 RSA 中是相反的),或者可能将它们嵌入到不同的应用程序/设备中,但由于 CA 支持单个cert 服务于多个域/服务器,多个 CA 服务于一个域,目前的做法似乎没有任何好处。
【讨论】: