Encryption 如何加密某些东西,以便可以使用三个密钥中的任意两个进行解密?

Encryption 如何加密某些东西,以便可以使用三个密钥中的任意两个进行解密?,encryption,Encryption,所以,假设我想加密一个文件,我想让它被读取的唯一方法是两个不同的人输入他们的密钥。例如,有四个键: 键1,键2,键3,键4 如果我使用key1对其进行加密,则以下组合将对其进行解密: 键2,键3 键3,键4 键2,键4 这是否可以使用标准方法实现?将第四个键设为其他三个键的位校验和。。。您甚至可以按顺序递增具有校验和值的键。。所以 键4第1位是键1-3中第1位的校验和,并且 键1第2位是键2-4中第2位的校验和,并且 键2第3位是键1、3、4和中第3位的校验和 键3第4位是键1、2、4和中第

所以,假设我想加密一个文件,我想让它被读取的唯一方法是两个不同的人输入他们的密钥。例如,有四个键:

键1,键2,键3,键4

如果我使用key1对其进行加密,则以下组合将对其进行解密:

  • 键2,键3
  • 键3,键4
  • 键2,键4

这是否可以使用标准方法实现?

将第四个键设为其他三个键的位校验和。。。您甚至可以按顺序递增具有校验和值的键。。所以

  • 键4第1位是键1-3中第1位的校验和,并且
  • 键1第2位是键2-4中第2位的校验和,并且
  • 键2第3位是键1、3、4和中第3位的校验和
  • 键3第4位是键1、2、4和中第4位的校验和
  • 键4第5位是键1、2、3中第5位的校验和, 等等
  • 有点像条纹raid 5


    这样,无论你有四把钥匙中的哪三把,你都可以重新创建丢失的一把。使用所有四个密钥的某种组合来加密消息

    假设您正在分配键x1,x2。。xN

    使用主对称密钥M加密文件。然后存储M的多个加密副本:

    • 用x1和x2加密
    • 用x2和x3加密
    • 用x1和x3加密

    任何两个密钥都将解锁主机的一个加密副本,这将解密文件。

    我认为不是您所说的那样。但是你可以得到这样的效果:使用公钥密码;现在有4个公钥和4个私钥。作为person#1,使用其他3个人的每一对组合对您的邮件进行加密。例如,使用密钥2加密消息,然后使用密钥3加密该消息。现在用密钥2加密消息,然后用密钥4加密。最后是3,然后是4。现在,如果其他任何两个集合在一起,它们可以恢复原始消息。

    生成唯一的内容密钥来加密消息(这在许多消息加密标准中是常见的),然后针对该内容密钥应用一种方案,并连接足够多的额外随机数据,以确保n个“碎片”中的任意m个可以将关键点的位置放在一起以创建最终关键点碎片仅从随机数据部分发出,因此发出的碎片中没有一个包含来自内容键的实际位。这样,任何数量的小于m的收集碎片都不会提供有关密钥本身的任何有用信息


    编辑:Reed Solomon生成的关键碎片似乎与1979年首次出版的相同;感谢@caf指出这篇文章。

    随机生成对称密钥key1并使用它加密数据,然后使用从key1生成key2、key3和key4


    为了安全地分发密钥2、密钥3和密钥4,您可以使用公钥算法使用收件人的公钥对其进行加密。

    类似但不重复的问题:您所描述的是阈值加密。请看:很遗憾,我在维基百科或谷歌上找不到任何实现。这假定每个加密机都有所有密钥。你需要加上公钥密码。你在说什么,格鲁德利格?我不确定我是否理解。这会对更多的键进行组合爆炸:你需要n/M(n-m)!用如此简单的方案复制@杰弗里,实际上你需要第(n-1)个三角形数:n*(n-1)/2@Zarel,假设有4个参与方,每个参与方都希望能够加密其他任何两方都可以读取的消息。要使用上述方案,每个人都必须拥有其他人的密钥,以便他们能够加密每个组合。因此,他们中的任何一个都可以拥有所有的密钥,并且能够单独解密