實數上的秘密共享 - 電腦實現的困難
我最近問了一個關於“無限域上的秘密共享”論文的問題 - B. Chor 和 E. Kushilevitz描述了間隔中實數的秘密共享方案 $ [0,1] $ . 我得到了一個關於如何建構一個奇妙的答案 $ (k,n) $ -方案。
但是,我正在努力為一般情況實施推薦的方案——我想相信有一種算法可以做到這一點;但是,我無法這樣做。以下是我卡住的地方的摘要 -
對於案件 $ (k,n) = (3,5) $ ,我使用了我在下面描述的“2空間對角線分配”技術:
我們有 10 個獨立的 $ (3,3) $ 構造的方案表示為
$$ r_{j,1}, r_{j,2}, S - r_{j,1} - r_{j,2} \pmod 1 ;;\forall j \in {1,\ldots,10} $$
讓 $ r_{j,3} $ 表示 $ S - r_{j,1} - r_{j,2} \pmod 1 $
我的任務如下;
$ 1 \rightarrow (r_{1,1},r_{2,2},r_{3,3},r_{6,1}, r_{7,2} ,r_{8,3} $ )
$ 2 \rightarrow (r_{2,1},r_{3,2},r_{4,3},r_{7,1}, r_{8,2} ,r_{9,3} $ )
$ 3 \rightarrow (r_{3,1},r_{4,2},r_{5,3},r_{8,1}, r_{9,2} ,r_{10,3} $ )
$ 4 \rightarrow (r_{4,1},r_{5,2},r_{6,3},r_{9,1}, r_{10,2},r_{1,3} $ )
$ 5 \rightarrow (r_{5,1},r_{6,2},r_{7,3},r_{10,1},r_{1,2} ,r_{2,3} $ )
我假設這種看起來正確的分配技術要麼可重用於其他(k,n)方案,要麼取決於差異(nk)。
我嘗試了 2 和 3 空間對角線分配 $ (3,6) $ 方案..
但是,我無法為上述(和一般)案例制定分配技術。
希望能在我對該計劃的調查中找到一般任務以進一步取得進展的任何幫助。提前致謝。
回想一下 a 的定義 $ (k,n) $ - 門檻值秘密共享方案是任何一組至少 $ k $ 球員(出 $ n $ 總玩家)可以根據他們的份額恢復秘密。從非門檻值方案(在您上一個問題的答案中推薦)建構門檻值方案的天真方法是給出所有可能的 $ k $ - 的組合 $ n $ 球員新鮮 $ (k,k) $ 分享秘密。(我會注意到,這僅適用於較小的值 $ n $ .)
您似乎被困在如何列舉所有可能組合的問題上。一個很好的參考是這個關於 Stack Overflow 的綜合答案,其中提到了幾種算法。
這是一個快速的 Python 腳本,它將計算所有的組合 $ k=3, n=5 $ :
import itertools players = {1, 2, 3, 4, 5} k = 3 for subset in itertools.combinations(players, k): print(subset)
使用結果子集:
(1, 2, 3) (1, 2, 4) (1, 2, 5) (1, 3, 4) (1, 3, 5) (1, 4, 5) (2, 3, 4) (2, 3, 5) (2, 4, 5) (3, 4, 5)
這當然是適用於任何值的通用算法 $ k $ 和任何一組玩家。