我正在尝试查找有关如何以有 n 个密钥的方式加密某些内容的信息,并且解密需要其中的 k 个密钥。但是,我已经在谷歌上搜索了半个小时,但因为我不知道这叫什么(而且显然不擅长搜索),所以我找不到它。
编辑:最好可以选择键,如果它以特殊名称存在。
我正在尝试查找有关如何以有 n 个密钥的方式加密某些内容的信息,并且解密需要其中的 k 个密钥。但是,我已经在谷歌上搜索了半个小时,但因为我不知道这叫什么(而且显然不擅长搜索),所以我找不到它。
编辑:最好可以选择键,如果它以特殊名称存在。
要完成@Terry 的回答:
Shamir 的秘密共享适用于给定领域(数学概念)中的值。在实践中,如果您接受不会超过 255 个共享(即1 < k ≤ n ≤ 255 ),那么在具有 256 个元素的字段GF(256)中工作会很方便。这意味着您实际上在每个字节上独立于其他字节进行共享,因此您可以“共享”任何适合字节序列的秘密(因此,实际上,任何适合计算机的内容)。而且效率很高。
由于每个共享都与秘密数据具有相同的长度,因此您可能希望通过加密稍微优化一下。这意味着如果你想分享一个大的秘密值S(例如一个 3 GB 的视频),那么你:
这样,每个股东只需要记住K大小的东西(16 字节,很容易放在各种地方,例如智能卡甚至人脑),而秘密值S可以任意大并有效地存储和分布式(因为它是加密的,它可以向公众展示,例如通过对等网络传输)。
现在对于选择股票价值,这是一个有趣的问题。如果您有n 个份额和k的阈值,则 Shamir 方案的正常描述意味着每个份额本质上是随机的。秘密分裂输出股份,股份持有人只能得到。
计算可以简单地扩展到一个方案,其中最多k-1 个份额是任意选择的。所以有些股份仍然是随机的。
当必须记住共享(即密码)时,用户选择的共享才有意义。但是密码会受到暴力破解。例如,如果攻击者获得了k-1 个共享并且知道其他共享中的一个是密码,那么他可以对该额外共享运行字典攻击,即尝试潜在的密码(对于每个密码,使用该密码作为额外的共享,并查看结果是否“有意义”)。不幸的是,这削弱了整个系统。
事实上,Shamir 方案的一个重要特性是它是无条件安全的,这意味着它可以抵抗具有任意计算能力的攻击者,包括尚未发明的计算机(只要分裂中使用的随机源是真正随机的)。这简化了安全分析,特别是对于长期存储,您必须预测攻击者在几十年后将拥有多少计算能力。但是,如果您在其中插入密码,这种无条件的安全性就会在早晨的阳光下像露水一样蒸发。
您可能正在考虑Shamir 的秘密共享算法。
从维基百科的文章,
Shamir 的秘密共享是密码学中的一种算法。它是一种秘密共享形式,其中秘密被分成多个部分,为每个参与者提供自己独特的部分,其中一些部分或全部是重建秘密所必需的。指望所有参与者将秘密组合在一起可能是不切实际的,因此有时在任何 k 个部分足以重建原始秘密的情况下使用阈值方案。