代码之家  ›  专栏  ›  技术社区  ›  Ωmega

两个私钥非对称加密-可能吗?

  •  9
  • Ωmega  · 技术社区  · 12 年前

    我想知道是否存在一些非对称加密算法,可以使用两个不同的私钥,这样加密的消息就可以用其中一个私钥解密?

    4 回复  |  直到 12 年前
        1
  •  11
  •   Boris B.    10 年前

    非对称密钥从不用于加密 消息 (太慢,有大小限制等),仅用于加密小缓冲区,如消息的对称密钥。

    当您使用asymm加密消息时。密钥,您实际上正在加密 对称的 对消息进行加密的密钥。

    只需使用两个不同的asymm对相同的对称密钥进行加密。密钥,你会得到两个不同的密码块,这两个密码块都包含消息的相同对称密钥,所以你可以用其中任何一个解密。

        2
  •  3
  •   Armon A.    12 年前

    除此之外,您可以使用对称加密和秘密共享方案,“将密钥一分为二”。

    有关秘密共享的详细信息: http://en.wikipedia.org/wiki/Secret_sharing

    如何看待它的步骤:

    1. 使用(伪)随机生成的密钥对数据进行加密。
    2. 使用分发机密 Shamir's secret sharing 这是两个份额的密钥,其中一个份额就足以获得密钥。

    最终结果是需要一个(或多个)“密钥”来获取数据。

        3
  •  2
  •   Serge    12 年前

    据我所知,目前还没有这样的算法,但有一个通用的解决方案。加密后的文本与用于加密文本本身的对称密钥的一组密码一起传输。密钥的每个这样的密码是用其中一个接收方的公钥对原始密钥进行加密的结果。因此,所有知道其私钥的接收方都可以解密用于加密数据的密钥,然后解密消息本身。

        4
  •  1
  •   blah    12 年前

    通常使用混合加密方案。即,使用对称密钥密码系统对消息进行加密,然后使用每个预期接收方的公钥对对称密钥进行加密。