从私钥生成 public 密钥
Generate public key from private key
openssl生成public/private密钥对时,是否先生成私钥,再从私钥计算出public密钥?还是应该public key 和私钥同时计算?
是否可以有多个 public 密钥匹配同一个私钥?
谢谢
至少在 RSA 中不是,事实上,您可以拥有一个 public 密钥和多个 "different" 私钥。在 RSA 中,步骤是先生成 public 密钥,然后再生成私钥。这是因为在开始和最终私钥生成之前选择了几个随机选择的值,但在生成私钥后它们都被丢弃了。如果保留它们,则可以使用不同的值重做该步骤并仍然使用相同的 public 密钥,但是虽然生成的私钥乍一看会有所不同,但它们是 mathematically equal。即使您使用可能创建多个密钥的算法,出于所有意图和目的,它们都是相同的密钥,因为无法推断是否使用一组私钥中的某个密钥进行签名,只能推断出该密钥是您拥有的 public 密钥的有效对。
此外,这似乎是一个 X-Y 问题。即使您找到了为单个私钥创建多个 public 密钥的算法,因为 public 密钥本来就是 public,也没有什么可以阻止 public ] 从加密相同的消息并观察相同的加密结果。所以你不能有两个不想关联使用这些密钥的秘密演员。正如您特别提到的 OpenSSL,在 SSL 上,您可能会向不同的 CA 提供不同的 public 密钥(假设存在这样的算法,因为正如我指出的那样,它在 RSA 中是相反的),或者可能将它们嵌入到不同的 apps/device,但由于 CA 支持为多个 domains/server 提供服务的单个证书,以及为单个域提供服务的多个 CA,因此目前的做法似乎没有任何好处。
openssl生成public/private密钥对时,是否先生成私钥,再从私钥计算出public密钥?还是应该public key 和私钥同时计算?
是否可以有多个 public 密钥匹配同一个私钥?
谢谢
至少在 RSA 中不是,事实上,您可以拥有一个 public 密钥和多个 "different" 私钥。在 RSA 中,步骤是先生成 public 密钥,然后再生成私钥。这是因为在开始和最终私钥生成之前选择了几个随机选择的值,但在生成私钥后它们都被丢弃了。如果保留它们,则可以使用不同的值重做该步骤并仍然使用相同的 public 密钥,但是虽然生成的私钥乍一看会有所不同,但它们是 mathematically equal。即使您使用可能创建多个密钥的算法,出于所有意图和目的,它们都是相同的密钥,因为无法推断是否使用一组私钥中的某个密钥进行签名,只能推断出该密钥是您拥有的 public 密钥的有效对。
此外,这似乎是一个 X-Y 问题。即使您找到了为单个私钥创建多个 public 密钥的算法,因为 public 密钥本来就是 public,也没有什么可以阻止 public ] 从加密相同的消息并观察相同的加密结果。所以你不能有两个不想关联使用这些密钥的秘密演员。正如您特别提到的 OpenSSL,在 SSL 上,您可能会向不同的 CA 提供不同的 public 密钥(假设存在这样的算法,因为正如我指出的那样,它在 RSA 中是相反的),或者可能将它们嵌入到不同的 apps/device,但由于 CA 支持为多个 domains/server 提供服务的单个证书,以及为单个域提供服务的多个 CA,因此目前的做法似乎没有任何好处。