Multiparty-Computation
多方計算來計算增加的股份而不透露個人股份
我有 $ n $ 人,每個人都持有一個秘密整數 $ x_i $ ( $ i $ 從 $ 1 $ 至 $ n $ ) 我正在尋找一種方法讓他們共同計算這些秘密的總和,而不會向彼此透露他們各自的秘密。
在這個問題中,總和的驗證並不重要,因為錯誤會導致稍後中止。重要的問題是他們無法獲得有關其他方持有的數字的資訊。
我的另一個問題是這仍然可以完成/如果加法是在有限域上的,它是否需要不同的解決方案?
我有 $ n $ 人,每個人都持有一個秘密整數 $ x_i $ ( $ i $ 從 $ 1 $ 至 $ n $ ) 我正在尋找一種方法讓他們共同計算這些秘密的總和,而不會向彼此透露他們各自的秘密。
基於算術秘密共享的安全多方計算(“算術 GMW”)的簡單應用可以做到這一點。
協議如下:
- (一次性設置)選擇一個素數 $ p $ 保證大於所有輸入值的總和(您可以在此處安全地使總和過大,例如選擇一個大於 $ 2^{96} $ 對於 64 位輸入)。這個素數將用於定義我們將使用的有限域。如果您已經有一個首選的,請在此處使用它。接下來的所有算術都將在該欄位中進行。
- 參加每一個聚會 $ P_i $ 選擇 $ n-1 $ 來自有限域的隨機整數。給他們打電話 $ s_{i,j} $ 然後讓 $ s_{i,n}=x_i-\sum_{j=1}^{n-1}s_{i,j} $ . 這創建了一個算術 $ n $ -在……之外- $ n $ 分享 $ x_i $
- 參加每一個聚會 $ P_i $ 發送 $ s_{i,j} $ 至 $ P_{j} $ .
- 參加每一個聚會 $ P_i $ 計算 $ r_i=\sum_{\ell=1}^{n}s_{\ell,i} $ ,也就是說,讓他們全部總結他們收到的所有份額。
- 參加每一個聚會 $ P_i $ 廣播他們的結果 $ r_i $ 給所有其他方(或只給需要知道總和的一方)。
- 與所有人共度每一個聚會 $ r_j $ 計算 $ \sigma=\sum_{j=1}^{n}r_j $ . 該值是所需的總和。