Multiparty-Computation

什麼樣的對手是妥協的一方?

  • July 2, 2013

想像多方執行安全的多方計算協議以安全地評估功能。讓 Alice 成為打算獲得所有部分結果並在協議結束時將這些部分結果組合成完整結果的當事方之一。

在實踐中,如果 Alice 的機器被攻破,攻擊者冒充 Alice,並且他在協議結束時得到了完整的結果,那麼理論上他會是一個什麼樣的對手?

攻擊者不是被動的對手,他不是竊聽各方。

攻擊者是活躍的對手(或拜占庭對手)嗎?我相信活躍的對手會破壞各方以執行任意/惡意程式碼等。但是在這裡,攻擊者並沒有破壞各方來進行他選擇的一些計算,而是他損害了旨在獲得結果的一方。

攻擊者是非自適應對手嗎?攻擊者實際上只控制一方,但他有完整的結果。

我相信您所描述的內容與典型的 MPC 對手模型有些正交。通常在 MPC 中,我們讓對手知道腐敗方知道的所有資訊(因此,如果腐敗方學習了輸出,則允許對手學習輸出)。我們在 MPC 協議中關心的是對手無法學習任何附加資訊(例如,未損壞方的輸入、中間計算結果等)。

因此,如果攻擊者破壞了 Alice,並且 Alice 打算獲得結果,那麼攻擊者就可以知道結果,這在 MPC 的定義中是可以的。在這種情況下,對手很可能確實是一個被動的對手。如果他們一開始不知道攻擊 Alice,你可以認為它是一個自適應對手,但在執行過程中弄清楚,破壞她,學習輸出。

因此,例如,我們使用 MPC 來統計選票,並且在協議結束時向 Alice 顯示選票。對手破壞 Alice 並在最後學習投票記錄這一事實是可以的,並且仍然符合 MPC 的安全定義。她不應該學習的是個人的投票。

為了解決這個問題,假設讓 Alice 只有在她沒有腐敗的情況下才知道投票記錄,那麼我們需要某種方法來檢測她是否腐敗。

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