我想知道我是否可以有多个公钥作为私钥。
这可以做到吗?如果是这样,安全问题是什么!?
如果我根据相同的初始值(没有初始向量)生成多个密钥对,这些密钥不应该是“兼容的”吗?
我想知道我是否可以有多个公钥作为私钥。
这可以做到吗?如果是这样,安全问题是什么!?
如果我根据相同的初始值(没有初始向量)生成多个密钥对,这些密钥不应该是“兼容的”吗?
在我能想到的所有非对称密码系统中,公钥和私钥之间存在 1-1 对应关系:给定私钥,您可以唯一确定公钥,给定公钥,您可以唯一确定私钥(但从公钥中确定私钥当然在计算上是不可行的)。
但是,给定一种常用的非对称方案,您可以轻松创建这样的方案:要使用公钥创建私钥n
,只需n
在正常方案中生成公钥-私钥对并将“私钥”定义为私钥的集合. 签名时只需使用所有私钥签名,验证时尝试验证其中一个签名。加密是通常的操作,解密应该尝试使用所有密钥解密(其中一个应该可以工作)。
这对于标准算法是不可能的。
如果您查看在 RSA 中如何生成密钥对,您首先通过指定公共指数来选择公钥,然后生成私钥。
我想不出多个公钥的用例。它们是公开的,您可以获取其中任何一个,因此并不能真正提高安全性。
目前尚不清楚为什么您认为您需要多个公钥。它可能会帮助您了解,如果使用公钥加密某些内容,则无法使用相同的公钥对其进行解密。
如果三个人(A、B、C)拥有你的公钥,B 和 C 无法读取由 A 加密的消息,但你(使用私钥)可以。
如果您希望能够发送只有 A、B 或 C 中的一个可以读取的消息,他们应该每个人都有一个私钥,并与您共享他们的公钥。
听起来您想将公钥视为私钥,这可能是一个糟糕的计划。
私钥/公钥具有 1-1 关系,因此给定私钥不可能有多个公钥。
但是,您可以为同一个公钥拥有 3 个单独的证书,如果这是您正在寻找的东西的类型。