我想知道一个私钥是否可以有多个公钥。
这可以做到吗?如果是这样,安全问题是什么!?
如果我基于相同的初始值(没有初始向量)生成多个密钥对,那么这些密钥不应该是“兼容的”吗?
发布于 2010-06-23 20:03:55
在我能想到的所有非对称加密系统中,公钥和私钥之间存在一对一的对应关系:给定私钥,您可以唯一地确定公钥,并且给定公钥,您可以唯一地确定私钥(当然,从公钥确定私钥在计算上是不可行的)。
然而,给定一种常见的非对称方案,您可以很容易地创建这样的方案:要使用n公钥创建私钥,只需在普通方案中生成n公钥-私钥对,并将“私钥”定义为私钥的集合。签名时只需使用所有私钥签名,验证时尝试验证其中一个签名。加密是通常的操作,解密应该尝试用所有密钥解密(其中一个密钥应该有效)。
发布于 2010-06-23 19:52:05
这在标准算法中是不可能的。
如果您查看一下如何在RSA中生成密钥对,就会首先通过指定公钥指数来选择一个公钥,然后再生成私钥。
我想不出多个公钥的用例。它们是公开的,你可以获取其中的任何一个,所以这并不能真正提高安全性。
发布于 2010-06-25 07:29:28
不清楚为什么你认为你需要多个公钥。它可能会帮助您了解到,如果使用公钥加密某些内容,则无法使用相同的公钥对其进行解密。
如果有三个人(A、B、C)使用您的公钥,则B和C不能读取由A加密的消息,但您(使用私钥)可以。
如果您希望能够发送只有A、B或C中的一个可以读取的消息,则它们都应该有一个私钥,并与您共享它们的公钥。
听起来你想把公钥和私钥一样对待,这可能是一个糟糕的计划。
https://stackoverflow.com/questions/3100192
复制相似问题