是否有任何秘密共享加密方案的“现实世界”实现?

信息安全 密码学 密钥管理 文件加密
2021-08-22 17:31:36

想象一下像 TrueCrypt 这样的情况,用户 A 可以解密他的文件,或者他组织中 10 位董事中的任何 3 位都可以解密用户 A 的文件。据我了解,这类似于保护DNSSEC 根密钥的方式必填维基 条目有谁知道使用秘密共享的文件加密的任何商业或开源实现?

4个回答

至少有两个免费实现是 Ubuntu linux 的一部分,并实现了 Shamir 的秘密拆分和组合:

  • gfshare: Ubuntu Manpage: gfshare - gf(2**8) 中 Shamir Secret Sharing 的解释提供了可以将任意文件拆分为共享的秘密共享工具(gfsplit 和 gfcombine),以及供开发人员使用的库。

  • ssss ” 软件包提供了 ssss-split 程序,它会提示您输入一个不能超过 128 个字符的密码短语,以将其拆分成一组短语进行共享。然后 ssss-combine 程序提示输入足够多的共享短语并打印出秘密。

gfshare 直接处理文件,而 ssss 将用于拆分密码短语,然后可以与 gpg 或 openssl 或其他加密实用程序一起使用。所以 gfshare 对于您的用例来说似乎更简单。

我想说的是,商用的 PGP 产品至少已经有 10 年的时间了。它现在具有此功能:

http://www.pgpi.org/doc/pgpintro/#p24http://www.symantec.com/business/support/index?page=content&id=HOWTO41916

这是我用 Python 编写的 Shamir 的秘密共享库:https ://github.com/rxl/secret-sharing 。

拆分秘密真的很简单:

>>> from secretsharing import SecretSharer
>>> shares = SecretSharer.split_secret("c4bbcb1fbec99d65bf59d85c8cb62ee2db963f0fe106f483d9afa73bd4e39a8a", 2, 3)
['1-58cbd30524507e7a198bdfeb69c8d87fd7d2c10e8d5408851404f7d258cbcea7', '2-ecdbdaea89d75f8e73bde77a46db821cd40f430d39a11c864e5a4868dcb403ed', '3-80ebe2cfef5e40a2cdefef0923ee2bb9d04bc50be5ee308788af98ff609c380a']

...并恢复秘密:

>>> SecretSharer.recover_secret(shares[0:3])
'c4bbcb1fbec99d65bf59d85c8cb62ee2db963f0fe106f483d9afa73bd4e39a8a'

它支持一大堆秘密和共享格式,例如比特币私钥和 base32:

>>> from secretsharing import BitcoinToZB32SecretSharer
>>> shares = BitcoinToZB32SecretSharer.split_secret("5KJvsngHeMpm884wtkJNzQGaCErckhHJBGFsvd3VyK5qMZXj3hS", 2, 3)
['b-aweuzkm9jmfgd7x4k595bzcm3er3epf4dprfwzpprqa3exbuocs9byn4owfuqbo', 'n-btetgqqu8doacarsbyfdzpyycyj6gfdeaaxrpfx33pdjk4ou1d5owjdmdi1iegm9', 'd-njh33f14q7smucmh8iq8uaewc8mzub3mzptrwsegfiz3hc1fozkkjtguc4trh6sq']

物理/IT 交叉带有紧急情况的紧急情况 - 部分秘密的持有者从他们的保险箱中检索它们并一起输入密码以批准短期紧急访问权限。这在大型组织中很常见——尤其是在金融服务领域。

我认为您的意思是,我还没有看到纯技术解决方案的真实世界实现-加密算法处理 y 中的 x 个密钥来解锁。

我想知道什么样的场景需要它作为解决方案,而不是像我提到的碎玻璃场景这样的简单场景。