这个Shamir Secret 共享实用程序使用密钥,然后生成 N 个必须手动分发给每个人的密钥。
这可能适用于大多数低安全性情况,但不适用于没有人知道所有密钥或一开始创建的密钥的中等或高安全性场景。
鉴于这一新要求,哪些预先存在的系统以安全的方式提供 Shamir 机密?它们是如何工作的?
是否存在使 Shamir Secrets 的安全创建和分发更值得信赖的附加密码学?
这个Shamir Secret 共享实用程序使用密钥,然后生成 N 个必须手动分发给每个人的密钥。
这可能适用于大多数低安全性情况,但不适用于没有人知道所有密钥或一开始创建的密钥的中等或高安全性场景。
鉴于这一新要求,哪些预先存在的系统以安全的方式提供 Shamir 机密?它们是如何工作的?
是否存在使 Shamir Secrets 的安全创建和分发更值得信赖的附加密码学?
没有像一维安全等级这样的东西,可以将所有甚至大多数场景评为低、中或高安全性。每个场景都有上下文、要求、目标和总体攻击模型。
无论如何,Shamir 的秘密共享是“完美的”,因为它是为数不多的提供无条件安全性的算法之一:即使是无限强大的计算机也无法破坏该方案提供的功能。
这些特点是什么?即:
不管其完善程度如何,该算法仅用于中转:在股票产生时,值m作为一个整体存在于某个物理系统中;当值m必须被重建时,它被重建:它再次作为一个整体存在于其他一些物理系统中。分裂只在时空中的这两点之间起作用。对于某些用法就足够了,其中一些可能是“高安全性”;例如,我使用它来拆分智能卡管理系统中主密钥的备份副本(主密钥确实存在于特定系统中;完成备份是为了能够从灾难性丢失中恢复,例如洪水或火灾)。
没有算法可以做所有事情。在某些情况下,Shamir 的秘密共享的安全功能与所需的不匹配。在“份额”和“阈值”的上下文中,例如,有组签名:这适用于必须生成数字签名的情况,没有单个实体能够自行生成签名。但是我们也希望即使产生了许多签名也能保持这个属性。如果您想为此使用 Shamir 的秘密共享,那么您将拆分一个普通的签名私钥,并在签名时重建它,但这需要一个“受信任的系统”,用于密钥生成和密钥使用。该系统将暂时获得完整密钥的知识。如果这对您来说是不可接受的,那么您必须做其他事情,这就是组签名算法的目的。组签名允许由足够多的密钥共享所有者的集体行动生成签名,而不会向其中任何人透露私钥,无论他多么不诚实。
组算法本质上比 Shamir 的秘密共享更具限制性,因为根据定义,它们不会重建被分割的秘密;因此,他们只能计算涉及秘密的特定函数(例如签名生成或非对称解密)。另一方面,良好的群算法可以在一定程度上避免对可信系统的需求(许多群签名具有诚实阈值:如果足够多的恶意密钥共享所有者相互合作,他们可能会获得一些额外的权力)。
组算法的安全性不亚于 Shamir 的秘密共享;他们只是做别的事情。