沙米爾的秘密計劃:知道門檻
如果我通過應用共享來解碼密鑰,是否可以知道何時達到門檻值並揭示了秘密,而不必被告知門檻值是什麼*?*
此外,是否可以確定共享是否是“有效”共享(即最初由 SSS 為給定秘密生成)?
是的。如果您擁有的所有股份都是有效的,您可以知道您何時達到了門檻值。重建秘密 $ t+1 $ 共享將產生與重建秘密相同的結果 $ t+2 $ 分享。從重建它 $ t-1 $ 但是(總是)會產生完全不同的結果。重建秘密 $ t-2 $ 或更少的股票將有可能產生不同的結果 $ 1-1/q $ ,前提是所有的係數(除了階 $ 0 $ 並訂購 $ t-1 $ ) 均從 $ \mathbb{Z_q} $ 和高階係數一致地從 $ \mathbb{Z_q^*} $ . 如果通過將所有係數選擇為非零來避免“弱共享”,則機率將略微偏離。
例如,如果您使用拉格朗日基多項式重構原始多項式,則在門檻值上添加更多份額不會增加所得多項式的次數,並且零次數項將保持不變。
存在秘密共享的變體,可讓您驗證共享是有效還是無效,例如Pedersen Verifiable Secret Sharing。
不,除非您將門檻值編碼為您的共享格式,否則您不知道何時達到門檻值。
為了理解這一點,我將快速修改 SSS 的工作方式:
共享秘密的人構造/選擇一個隨機(大)素數並選擇 $ k $ 隨機數(係數),其中 $ k $ 是門檻值。他根據這些係數構造了一個多項式。對於每一股,他隨機挑選一個 $ x $ 併計算多項式 $ x $ 隨機接收 $ y $ 作為回報。一個純粹的份額只是一對 $ (x,y) $ .
顯然,您無法從一堆(隨機)點中學習多項式的次數,因此無法恢復門檻值(即次數+ 1)。但是,您可以為您的共享定義一種格式,包括 a) 生成所需欄位的素數,b) 門檻值,c) $ x $ 您的股份價值和 d) $ y $ 你的份額的價值。在這種情況下,您可以從您的份額中恢復門檻值。
是否可以確定共享是否為“有效”共享?
不
。如上所述,份額是(可能)一些通用參數(門檻值,素數)和一個點。由於該點的 x 座標應該是完全隨機的,因此 y 座標也將是隨機的,因此總會有一個多項式通過該點。