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

问题描述 投票:0回答:5

我想知道是否存在某种非对称加密算法可以使用两个不同的私钥,以便加密的消息可以通过其中一个私钥解密?

encryption public-key-encryption private-key public-key encryption-asymmetric
5个回答
11
投票

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

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

简单地用两个不同的 asymm 加密相同的对称密钥。密钥,您将得到两个不同的密码块,它们都包含相同的消息对称密钥,因此您可以使用其中之一进行解密。


3
投票

您可以在此基础上使用对称加密和秘密共享方案,“将密钥分成两半”。

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

我如何看待它的步骤:

  1. 使用(伪)随机生成的密钥加密数据。
  2. 使用 Shamir 的秘密共享分发秘密,这是两份共享的密钥,其中一份就足以获得密钥。

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


2
投票

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


1
投票

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


0
投票

如果你

  • 均匀随机选择e,位长为len(N) - 1,
  • 确保 gcd(e, phi(N)) = 1(要么继续生成 e 直到成立,要么对 pq 使用安全素数并将 e 的 LSB 设置为 1),
  • 然后推导出对应的d,

您有两个随机且秘密的 RSA 指数,即 sk_1 (e, N)sk_2 = (d, N)双私有密钥对。意思是,您需要将它们都保密。

您现在可以互换使用它们进行概率(OAEP)加密和解密;对于概率 (PSS) 签名创建和验证:

  1. sk_1可以加密消息msk_2可以解密
  2. sk_2可以加密消息msk_1可以解密
  3. sk_1可以签署消息msk_2可以验证它
  4. sk_2可以签署消息msk_1可以验证它

我喜欢称这个不错的属性为双功能非对称密钥,直到我找到它的实际学术术语——如果已经有的话。到目前为止,我认为 RSA 可能是唯一可以生成具有双功能的密钥对的非对称密码系统。

© www.soinside.com 2019 - 2024. All rights reserved.