Secret-Sharing

秘密共享域問題

  • October 4, 2020

全部,

我對 SPDZ 家庭等秘密共享計劃有一個非常基本的問題。

就我現在所見,SS 方案總是假設一定的可變範圍。例如,假設變數的位長是 $ k=32 $ 其基礎操作域在 $ p $ ( $ p $ 的位長為 $ l=128 $ ),然後,所有秘密值 $ x $ 內共享 $ [-2^{31},2^{31}-1] $ .

但是,當談到生成隨機數時,我有點困惑。說,我正在嘗試生成 Beaver’s Triple,我應該有嗎 $ c=a\cdot b $ , 所有這些數字都在其中共享 $ [-2^{31},2^{31}-1] $ ,或者我應該在下面共享所有這些數字 $ p $ . 從原始論文本身,我找不到答案。因此,我想在這裡尋求一些幫助以及為什麼會出現這種情況的見解。它應該與 ABY 或任何其他框架相同嗎?

感謝您的幫助和建議!

秘密共享方案允許您在多方之間分發秘密消息。但是,一個基本問題是如何表示此消息。在許多 SS 方案中,此消息是一個整數 $ 0 $ 和一些最大值 $ M-1 $ (對於無符號值),並且每當您添加秘密共享值時,加法都會模數 $ M $ .

加法模數在應用程序中不是很有用,因此通常認為 secret 比方案中的模數小得多,這樣就不會發生迴繞。當您為實際數據提出較大的素數模數和更小的尺寸時,這就是您的範例中發生的情況。

但是,您必須在這裡理解的是,數據大小和模數的這種差異只是為了啟用某些應用程序而存在,但實際的 MPC 協議並不關心底層數據的大小:它只是假設它是小於模數。這與程式非常相似:如果您使用 64 位長的數據類型,則任何環繞模 $ 2^{64} $ 添加變數是程序員的錯,因為程序並不真正關心這一點。

鑑於此,為了回答您的具體問題,協議通常認為計算是在某個域上定義的,例如整數模素數 $ p $ ,並且他們並不真正關心提供給他們的數據。特別是,每當你看到類似“sample a random value”之類的東西時,它通常意味著在整個域中隨機,即在 $ 0 $ 和 $ p-1 $ (對於未簽名的,儘管這無關緊要)。對於三元組的情況,必須如此,因為這些隨機值用於掩蓋乘法門的輸入,因此必須在整個域中隨機均勻地選擇它們,以便重建的值不會洩露任何關於敏感的輸入。

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