07-共享门限秘密算法
0x-wen

门限共享秘密算法(Threshold Secret Sharing,TSS)

重点知识点

  1. 密钥分片:门限共享秘密算法将一个秘密(如加密密钥或钱包的助记词)分割成多个部分,称为份额(shares)。
  2. 门限值:确定一个门限值(K),只有当收集到至少K个份额时,才能恢复出原始的秘密。
  3. 安全性:即使部分份额丢失或被攻击者获取,只要不超过门限值,秘密仍然是安全的。
  4. 秘密恢复:只有当拥有足够数量的份额时,才能通过某种算法恢复原始的秘密。
  5. 可扩展性:算法可以设计成支持任意数量的份额和门限值,以适应不同的安全需求。
  6. 分布式存储:份额可以分布式存储在不同的物理位置或服务器上,增强了系统的容错性和抗攻击能力。

应用场景

  1. 多签名钱包:在加密货币钱包中,使用TSS可以允许多个用户共同管理资产,只有当一定数量的用户同意时才能进行交易。
  2. 分布式密钥管理:在企业或组织中,TSS可以用于安全地管理和访问敏感信息,如服务器的私钥。
  3. 云服务提供商:云服务可以利用TSS来提供更高级别的数据安全性,确保客户数据的安全存储和访问。
  4. 区块链治理:在区块链网络中,TSS可以用于实现多签名的治理机制,确保关键决策需要多个参与者的共识。

技术难点

  1. 秘密分割算法:设计一个既安全又高效的分割算法是一个挑战,需要确保分割后的份额无法被单独解密。
  2. 恢复算法的安全性:恢复算法必须能够抵御各种攻击,包括内部和外部的攻击。
  3. 性能问题:在处理大量数据或高频率的访问请求时,保持高性能是一个技术挑战。
  4. 实际部署的复杂性:在实际部署中,需要考虑如何安全地生成、存储和传输份额。
  5. 参与者的信任问题:在分布式系统中,如何确保参与者之间的信任和合作是一个问题。
  6. 容错和备份:需要设计有效的容错和备份机制,以防止份额的丢失或损坏。

门限秘密共享方案

Shamir的(t, n)门限方案

该方案基于多项式插值的原理,特别是拉格朗日插值法。需要n个份额中的任意t个份额来恢复秘密。

基本概念

  • 秘密(Secret, s):需要被共享的原始数据或密钥。
  • 份额(Shares):秘密分割成的多个部分,每个份额称为一个份额。
  • 门限值(Threshold, t):恢复原始秘密所需的最小份额数。
  • 参与者数(Total Participants, n):总共分割出的份额数量。

工作原理

  1. 秘密分割
    • 秘密分发者选择一个大素数p(通常远大于秘密s)。
    • 在模p的有限域GF(p)中,秘密分发者构造一个t-1次的多项式f(x),使得f(0) = s(秘密)。
  2. 生成份额
    • 秘密分发者随机选择n个不同的非零值x1, x2, …, xn作为多项式的根。
    • 对于每个根xi,计算多项式的值yi = f(xi)。
    • 将每个根xi和对应的计算值yi作为一对份额(xi, yi)分发给n个参与者。
  3. 秘密恢复
    • 任何t个或更多的份额持有者可以合作恢复原始秘密s。
    • 通过拉格朗日插值法,利用t个已知的份额(xi, yi)计算出多项式f(x)在x=0处的值,即秘密s。

安全性分析

  • 安全性前提:至少t-1个份额持有者是诚实的,没有串通攻击者。
  • 抵抗攻击:少于t个份额无法恢复多项式f(x),因此无法得知秘密s。

优点

  • 灵活性:可以在不改变其他份额的情况下,增加新的份额持有者或更新现有份额。
  • 可扩展性:适用于各种规模的参与者集合。
  • 去中心化:不需要可信的中心服务器来管理份额。

缺点

  • 存储需求:每个参与者需要存储一个份额对(xi, yi),随着参与者数量的增加,存储需求也会增加。
  • 通信复杂性:在秘密恢复时,需要t个份额持有者之间的通信。

Blakley的(t, n)门限方案

该方案基于几何概念,特别是基于多维空间中的点的性质。

基本概念

  • 秘密(Secret, s):需要被共享的数据或密钥。
  • 份额(Shares):秘密分割成的多个部分,每个份额是一个点的坐标。
  • 门限值(Threshold, t):恢复原始秘密所需的最小份额数。
  • 参与者数(Total Participants, n):总共分割出的份额数量。

工作原理

  1. 选择空间
    • Blakley方案首先在多维空间中选择一个点,该点的坐标表示秘密。
  2. 生成份额
    • 在一个足够高维的空间(通常是t维)中,秘密分发者选择一个点(秘密点),这个点的坐标是秘密s。
    • 然后,秘密分发者在通过秘密点的超平面上选择n-1个不同的点,这些点与秘密点一起定义了一个超平面。
  3. 分配份额
    • 每个参与者获得一个份额,即超平面上的一个点的坐标。
    • 为了恢复秘密,需要t个不共线的点(因为一个t维空间中的t个不共线的点可以确定一个超平面)。
  4. 秘密恢复
    • 当收集到t个份额时,这t个点的坐标可以用来确定包含秘密点的超平面。
    • 通过解这组线性方程,可以找到秘密点的坐标,即原始秘密s。

安全性分析

  • 安全性前提:至少需要t个份额才能确定超平面,从而恢复秘密。
  • 抵抗攻击:少于t个份额无法确定超平面,因此无法得知秘密。

优点

  • 安全性:只有达到门限值的份额才能恢复秘密,提供了良好的安全性。
  • 直观性:基于几何概念,易于直观理解。

缺点

  • 复杂性:相比于多项式基的方案,Blakley方案在计算和实现上可能更复杂。
  • 扩展性:添加或删除参与者可能比较复杂。

还有一些其他的解决方案,待需要时继续学习:

  1. Karnin-Green-Hellman方案:使用矩阵乘法来实现秘密共享, 允许灵活地设置访问结构和门限值。
  2. 一般访问结构上的秘密共享方案:不限于特定的门限值,支持更复杂的访问结构。允许为不同的参与者组合定义不同的访问权限。
  3. 多重秘密共享方案:允许每个参与者的子秘密在多次秘密共享过程中被重用。
  4. 多秘密共享方案:在一次秘密共享过程中可以共享多个秘密。
  5. 可验证秘密共享方案:允许参与者验证他们收到的子秘密的正确性。分为交互式和非交互式两种。
  6. 动态秘密共享方案:允许在不改变秘密的情况下,周期性地更新子秘密。提供了对秘密在生命周期内的动态保护。
  7. 量子秘密共享:利用量子力学原理来实现秘密共享。
  8. 可视秘密共享:通过图像处理技术,将秘密编码在图像中。
  9. 基于多分辨滤波的秘密共享:利用多分辨滤波技术来分割和共享秘密。
  10. 基于广义自缩序列的秘密共享:使用广义自缩序列的数学特性来实现秘密共享。
由 Hexo 驱动 & 主题 Keep
总字数 42.8k