共享加密文件但使用不同的密钥进行解密

时间:2011-07-02 01:52:49

标签: security encryption public-key-encryption

我只是好奇,如果有任何加密算法可以支持这种情况。

双方共享纯文本文件(T),该文件被加密(比如说对称AES)成为加密文件(E)。加密文件将存储在服务器中,加密后,可以随时添加其他方。

当第一方想要获取T文件时,他/她通过P1K解密E文件 当第二方想要获取T文件时,他/她通过P2K解密E文件。

任何想法如何仅使用纯加密算法实现此目的(不使用数据库存储中间密钥)?

3 个答案:

答案 0 :(得分:1)

如果发件人已经拥有秘密消息的预期收件人的公钥组件,则可以使用配对密钥加密使用GnuPG完成此操作。

发件人需要将数据加密到预期收件人的公钥(也可能是发件人自己的密钥),只有那些人才能使用他们的私钥来解密秘密邮件。

不确定是否要求了解或访问接收方公钥是一个问题,或者将答案视为发送方必须拥有的一种信息数据库。

所有用户都可以保留自己的私人位,而不是他们都必须共享相同的密码,在这种情况下,没有用户可以访问任何联系人的私钥。

http://www.gnupg.org/

答案 1 :(得分:1)

纯文本(T)可以使用AES等对称密码使用密钥(Ks)加密。

Ks使用尽可能多的公钥加密,允许知道对称密码,并作为加密消息包的一部分添加。

解密只是意味着针对用户的私钥迭代加密的K列表。

答案 2 :(得分:0)

谁通过了谁的钥匙? (另外,传统上P表示明文,C表示密文。)

并且有一个简单的答案(除非我误解你,这是一个明显的可能性,因为你的问题不是很清楚):首先给每个接收者“一半”,而另一半接受时你希望他们能够解密消息。

如何将钥匙分成两半?一个不错的方法是用nonce对它进行异或:给人1K⊕N1和人2K⊕N2。当您希望它们解密消息时,分别给它们N1或N2。

另一个简单的答案是,当您希望他们解密邮件时,只需为每个人提供使用收件人的公钥加密的密钥。