Multiparty-Computation

多方計算的正式定義是什麼(在哪裡)?

  • November 4, 2018

我只是好奇我們在哪裡可以看到 MPC 的(原始)正式定義。MPC的正式定義是什麼(在哪裡)?

我們有很多工具來建構 MPC 協議。不經意轉移(或 OT 擴展)是 MPC 的一部分嗎?

關於多方計算 (MPC)的維基百科頁面將是一個好的開始。它很好地介紹了該主題,並且會提到與Oblivious Transfer的關係。

我會說,一般來說,

MPC研究允許一組 $ n $ 派對 $ P_1,\ldots,P_n $ , 其中每個 $ P_i $ 有私人輸入 $ x_i $ , 計算一個函式 $ (z_1,\ldots,z_n) = f(x_1,\ldots,x_n) $ 這些投入以這樣的方式該締約方 $ P_i $ 只學習價值 $ z_i $ .

如果你想要一個更精確的定義,你將不得不定義我用粗體寫的術語。一些定義可以在Ronald Cramer、Ivan Bjerre Damgård 和 Jesper Buus Nielsen所著的Secure Multiparty Computation and Secret Sharing一書中找到。儘管本書是針對特定類型的 MPC,即資訊論 MPC,但大多數定義都適用於一般情況。

直覺地說:

  • 聚會只是一些執行一些程式碼的電腦程序。它通常被形式化為圖靈機,但它由互動式圖靈機精確化以對網路進行建模。
  • 協議只是各方遵循的一組規則。將其視為程序本身的原始碼。它指示各方在什麼時間做什麼以達到預期的結果
  • 一方只學 $ z_i $ 如果它從協議中學到的任何東西都可以僅從其輸入中進行模擬 $ x_i $ 和輸出 $ z_i $ . 這要精確得多,通常是通過通用可組合性框架完成的(例如,請閱讀我上面引用的書)。

現在,Oblivious Transfer (OT) 只是一個要計算的特定函式,而 OT 協議只是一個 MPC 協議,它允許對該函式進行安全計算。函式可以描述為 $ f(b,(m_0,m_1)) = (m_b,\lambda) $ , 在哪裡 $ \lambda $ 只是意味著相應的一方沒有得到任何輸出。

此外,雖然 OT 協議是僅適用於該特定功能的 MPC 協議,但可以證明您可以從 OT 協議建構通用 MPC 協議(即任何功能的協議)。因此,在某種意義上,OT 和 MPC 是“相同的”(更準確地說,它們在某種特定意義上是等價的)。

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