所以说我想加密一个文件,我希望它被读取的唯一方法是两个不同的人输入他们的密钥。因此,例如有四个键:
key1,key2,key3,key4。
如果我使用key1加密它,那么以下组合将解除它:
这是否可以使用标准方法?
答案 0 :(得分:14)
生成唯一的内容密钥以加密邮件(这在许多邮件加密标准中很常见),然后针对该内容密钥应用erasure code方案,例如Reed-Solomon coding与足够的附加随机数据连接,以确保密钥的 n “分片”的任何 m 可以放在一起以创建最终密钥。 仅从随机数据部分中发出碎片,以便所有给出的碎片都不包含来自内容键的实际位。这样,任何数量的 m 之外的收集分片都不会提供有关密钥本身的任何有用信息。
编辑:Reed-Solomon生成关键分片似乎与Shamir's secret-sharing相同,首次发表于1979年;感谢@caf指出了这篇文章。
答案 1 :(得分:4)
随机生成对称密钥key1并使用它来加密数据,然后使用Shamir's Secret Sharing protocol从key1生成key2,key3和key4。
为了安全地分发key2,key3和key4,您可以使用公钥算法使用收件人的公钥加密它们。
答案 2 :(得分:2)
假设您正在分配键x1,x2,.. xN
使用主对称密钥 M 加密文件。然后存储 M 的几个加密副本:
任何两个密钥都将解锁一个主服务器的加密副本,这将解密该文件。
答案 3 :(得分:1)
不是你说的,我不认为。但你可以得到这样的效果:使用公钥加密;现在有4个公钥和4个私钥。作为#1号人员,使用其他3的每个成对组合加密您的消息。使用密钥2对消息进行加密,然后使用密钥3对消息进行加密。现在使用密钥2对消息进行加密,然后使用密钥4加密。最后,3然后4.现在,如果其他两个人聚在一起,他们可以恢复原始消息
答案 4 :(得分:0)
使第四个键成为其他三个的按位校验和...你甚至可以按顺序递增哪个键具有校验和值..所以
这样,无论你拥有四个键中的哪三个,都可以重新创建一个。使用所有四个密钥的某种组合来加密消息。