Secret-Sharing

手動秘密共享?

  • October 10, 2018

使用小桌子(最好使用筆和紙)進行等效的 Shamir 秘密共享的可行選項是什麼?我們想分享一個秘密 $ K $ 進入 $ n\ge2 $ 股,所以 $ m $ 分享 ( $ 2\le m\le n $ ) 是重建秘密所必需的,並且小於 $ m $ 股票沒有透露任何資訊 $ K $ .


為了 $ m=n $ (例如 2-out-of-2),我們可以使用 $ n-1 $ 分享 $ S_i $ ( $ 1\le i<n $ ) 的均勻隨機獨立位,以及另一個 $ S_0 $ 這是秘密的按位異或 $ K $ 和其他股份: $ S_{0,j}=K_j\oplus\left(\displaystyle\bigoplus_{i=1}^{n-1}S_{i,j}\right) $ . 秘密由隨機共享的按位異或重構: $ K_j=\displaystyle\bigoplus_{i=0}^{n-1}S_{i,j} $ .

這很容易擴展到 $ 2^k $ 符號,例如八進製或十六進制。


對於 2-out-of-3,我們可以使用三元系統,第一股 $ S_0 $ 隨機小數,兩股 $ S_i $ ( $ i\in{1,2} $ ) 被定義為 $ S_{i,j}=S_{1,j}+i,K_j\bmod3 $ . 秘密可以從任意兩個共享中重構,如下:

$$ K_j,=,S_{1,j}-S_{0,j}\bmod3,=,S_{2,j}-S_{1,j}\bmod3,=,S_{0,j}-S_{2,j}\bmod3 $$ 加法(用於編碼)和減法(用於解碼)的表是:

| 0 1 2 | 0 1 2
----+------ ----+------
+ 0 | 0 1 2 - 0 | 0 1 2
+ 1 | 1 2 0 - 1 | 2 0 1
+ 2 | 2 0 1 - 2 | 1 2 0

這很容易擴展到基礎 $ 3^k $ ; 例如對於 $ k=2 $

| 0 1 2 3 4 5 6 7 8 | 0 1 2 3 4 5 6 7 8
----+------------------ ----+------------------
+ 0 | 0 1 2 3 4 5 6 7 8 - 0 | 0 1 2 3 4 5 6 7 8
+ 1 | 1 2 0 4 5 3 7 8 6 - 1 | 2 0 1 5 3 4 8 6 7
+ 2 | 2 0 1 5 3 4 8 6 7 - 2 | 1 2 0 4 5 3 7 8 6
+ 3 | 3 4 5 6 7 8 0 1 2 - 3 | 6 7 8 0 1 2 3 4 5
+ 4 | 4 5 3 7 8 6 1 2 0 - 4 | 8 6 7 2 0 1 5 3 4
+ 5 | 5 3 4 8 6 7 2 0 1 - 5 | 7 8 6 1 2 0 4 5 3
+ 6 | 6 7 8 0 1 2 3 4 5 - 6 | 3 4 5 6 7 8 0 1 2
+ 7 | 7 8 6 1 2 0 4 5 3 - 7 | 5 3 4 8 6 7 2 0 1
+ 8 | 8 6 7 2 0 1 5 3 4 - 8 | 4 5 3 7 8 6 1 2 0

看到這個_ $ k=3 $ 用於 26 個字母和空格。

只要股份的簡潔性不是問題,我們可以直接用三進制編碼二進制,用八進制編碼 $ k=2 $ , 十六進制 $ k=3 $ , base64 與 $ k=4 $ .


其他的呢 $ m $ -在……之外- $ n $ 計劃?特別是 4 選 2、5 選 2、4 選 3?

已知 (m,n)-門檻值方案等價於 n-1 m 維相互正交的拉丁 m-超立方體。對於 m=2,素數 n 有一個基本結構(拉丁方)。對於 m > 2,您將需要更高維的表,應該仍然存在一種為素數 n 生成它們的簡單方法。

使用拉丁方格的 2-of-4 秘密共享方案。

這篇非常有趣的論文的第 45 頁開始。

那麼其他 m-out-of-n 方案呢?特別是 4 選 2、5 選 2、4 選 3?

不幸的是,我不知道 3-of-4。

引用自:https://crypto.stackexchange.com/questions/52289