Archipelago

Lec 12秘密共享(Secret Sharing)

讲义完成更新于 2026-09-16

Lec 12 秘密共享(Secret Sharing)

MIT 6.5610 · Lecture 12 · 关键词:门限秘密共享、Shamir 方案、多项式插值、完美安全、线性性 说明:以标准处理撰写(Shamir 1979),要点与本课"Secret Sharing"一致。


TL;DR

  • Shamir 秘密共享把秘密编码为随机多项式的常数项,任意 t+1t+1 份可恢复,至多 tt 份不泄露信息。
  • 它提供信息论安全,不依赖攻击者算力,但依赖随机性、分发渠道与参与者阈值。
  • 线性结构使共享值可局部相加,也为鲁棒共享与多方计算奠定基础。

0. 问题

把秘密 ss 分成 nn 份发给 nn 方,使得:

  • 任意 tt 份可重构 ss(门限 threshold);
  • 任意 t−1t-1 份对 ss 零信息(信息论意义)。

记为 (t,n)(t,n)-门限方案。


1. Shamir 秘密共享

在有限域 Fq\mathbb{F}_q(q>nq>n)上工作。

定理

Shamir (t,n)(t,n) 方案

  • 分发:随机选 t−1t-1 个系数 a1,…,at−1←RFqa_1,\dots,a_{t-1}\xleftarrow{R}\mathbb{F}_q,构造 t−1t-1 次多项式 p(x)=s+a1x+a2x2+⋯+at−1xt−1,p(0)=s.p(x) = s + a_1 x + a_2 x^2 + \cdots + a_{t-1}x^{t-1},\quad p(0)=s. 第 ii 方拿到份额 (i,p(i))(i, p(i))。
  • 重构:任意 tt 个点用拉格朗日插值唯一确定 pp,取 p(0)=sp(0)=s。 :::

🔎 为何 tt 个点足够、t−1t-1 个点不够:t−1t-1 次多项式由 tt 个点唯一确定(插值)。少于 tt 个点时,对任意候选秘密 s′s' 都恰好存在一个过这些点且 p(0)=s′p(0)=s' 的多项式 → 候选秘密在 t−1t-1 份持有者眼中等可能,故零信息(完美安全)。


2. 关键性质

完美安全:<t<t 份的联合分布与 ss 统计独立(不依赖任何计算假设)。 线性性(同态):份额逐点相加 = 秘密相加;常数乘亦然。即 Shamir 是线性秘密共享方案(LSSS)。

🔎 线性性是 MPC(L13)的关键引擎:各方在自己的份额上本地做线性运算,就等价于在秘密上做了对应的线性运算,无需通信。


3. 工程视角

  • 分布式密钥管理:把根私钥/签名密钥用 (t,n)(t,n) 分给多个 HSM/管理员,任何 tt 人才能动用 → 无单点泄露(门限签名、MPC 钱包、托管恢复)。
  • 可验证秘密共享(VSS):朴素 Shamir 不防恶意分发者发错份额;VSS(如 Feldman 用承诺)让各方能验证份额一致性。
  • 与纠错码的联系:Shamir 份额 = Reed–Solomon 码字,≥t\ge t 个点重构对应纠删/纠错。

4. 秘密共享小结

  • (t,n)(t,n) 门限:tt 份重构、t−1t-1 份零信息。
  • Shamir = 随机 t−1t-1 次多项式,份额是点,重构靠拉格朗日插值。
  • 完美(信息论)安全 + 线性同态 → MPC 基石。
  • 实战配 VSS 防恶意分发;用于门限签名/密钥托管。

我的理解

阈值机制分散了信任,却没有消除信任;串通阈值、份额恢复和成员变更仍需明确治理。