應用密碼學
Shamir 秘密分享
Shamir 秘密分享(SSS)把一個祕密切成 n 份份額,使任意 t 份能重建它,而任意 t−1 份對它毫無洩漏。整套方案建立在一個關於多項式的樸素事實上:t 個點唯一決定一條 (t−1) 次曲線,而 t−1 個點則讓它完全無法確定。
要以門檻 t 分享祕密 S,在有限體上建一個隨機多項式 f(x) = S + a1·x + a2·x^2 + ... + a_(t−1)·x^(t−1),把祕密藏為常數項 f(0) = S。把點 (i, f(i)) 交給參與者 i。任取其中 t 個點,便能用 Lagrange 內插法還原 f 並讀出 f(0) = S;只有 t−1 個點時,S 的每個可能值都恰好等機率。這是資訊理論層級的安全——即使面對擁有無限計算力的對手也成立,而不只是計算受限的對手。
用途包括把助記詞備份分散給數位守護者(SLIP-39 為硬體錢包標準化了 Shamir 備份)、分割託管使任何單一員工都無法動用資金,以及作為門檻簽章、DKG 與 MPC 底下的祕密分享層。一個警示:純 SSS 需要一位可信發牌者來建立份額(他會短暫得知 S),而基本的 SSS 不可驗證——惡意發牌者或說謊的份額持有者可提交錯誤份額,破壞重建。可驗證祕密分享與 DKG 填補了這兩個缺口。
f(x) = S + a1*x + ... + a_(t-1)*x^(t-1), with S = f(0)
SSS 是對金鑰的 t-of-n「重建」,這不同於 t-of-n 門檻「簽章」:SSS 在一處重組祕密以使用(一瞬間的單點失效),而門檻簽章從不重組它。備份與復原用 SSS,即時運作用門檻簽章。
又称
另见