16

我想知道我是否可以有多个公钥作为私钥。

这可以做到吗?如果是这样,安全问题是什么!?

如果我根据相同的初始值(没有初始向量)生成多个密钥对,这些密钥不应该是“兼容的”吗?

4

4 回答 4

9

在我能想到的所有非对称密码系统中,公钥和私钥之间存在 1-1 对应关系:给定私钥,您可以唯一确定公钥,给定公钥,您可以唯一确定私钥(但从公钥中确定私钥当然在计算上是不可行的)。

但是,给定一种常用的非对称方案,您可以轻松创建这样的方案:要使用公钥创建私钥n,只需n在正常方案中生成公钥-私钥对并将“私钥”定义为私钥的集合. 签名时只需使用所有私钥签名,验证时尝试验证其中一个签名。加密是通常的操作,解密应该尝试使用所有密钥解密(其中一个应该可以工作)。

于 2010-06-23T12:03:55.207 回答
6

这对于标准算法是不可能的。

如果您查看在 RSA 中如何生成密钥对,您首先通过指定公共指数来​​选择公钥,然后生成私钥。

我想不出多个公钥的用例。它们是公开的,您可以获取其中任何一个,因此并不能真正提高安全性。

于 2010-06-23T11:52:05.473 回答
1

目前尚不清楚为什么您认为您需要多个公钥。它可能会帮助您了解,如果使用公钥加密某些内容,则无法使用相同的公钥对其进行解密。

如果三个人(A、B、C)拥有你的公钥,B 和 C 无法读取由 A 加密的消息,但你(使用私钥)可以。

如果您希望能够发送只有 A、B 或 C 中的一个可以读取的消息,他们应该每个人都有一个私钥,并与您共享他们的公钥。

听起来您想将公钥视为私钥,这可能是一个糟糕的计划。

于 2010-06-24T23:29:27.773 回答
-1

私钥/公钥具有 1-1 关系,因此给定私钥不可能有多个公钥。

但是,您可以为同一个公钥拥有 3 个单独的证书,如果这是您正在寻找的东西的类型。

于 2010-07-13T05:08:17.767 回答