Multiparty-Computation

在 MPC 的模擬證明中,為什麼隨機預言機可以提取對手的輸入?

  • April 28, 2021

我正在 MPC 中學習基於模擬的安全證明,並閱讀了 Lindell 教授的精彩教程“如何模擬它”。

以下是我對為什麼在編寫針對惡意對手的模擬證明時需要“提取對手的輸入”的理解(如果我錯了,請更正):對於惡意對手,不能保證遵循協議,因此“模擬器能夠提取 A 的輸入”的意思是“只要協議沒有中止,我們就可以確定 A 必須輸入一些有效的東西(即遵循協議)”。因此,“提取輸入”步驟對於編寫針對惡意對手的證明至關重要。如果我們可以提取 A 的輸入,那麼剩下的一切都與半誠實證明相同。

用 ZKP 將半誠實 OT 變成惡意 OT 的例子符合我的上述理解,因為 ZKP 可以證明證明者的正確行為,並且可以提取證明者的輸入。然而,在閱讀其他證明時,我發現很難理解為什麼隨機預言機也可以提取輸入。

例如,定理 1 的證明

$$ 1 $$說“SIMs 建立了兩個表 T1 = (x, φ) 和 T2 = ((h, t), ψ) 來分別回答對 H1 和 H2 的雜湊查詢”。SIM 如何知道 H1 和 H2 的輸入?如果 SIM 可以做到這一點,是否意味著我們可以簡單地通過要求各方對他們的輸入進行雜湊處理來提取輸入,並且任何半誠實安全協議都可以通過簡單地引入額外的雜湊輸入步驟而成為惡意安全協議(這顯然不是真的) ? 我知道我的理解中一定存在一些基本錯誤,如果有人能指出,將不勝感激。謝謝。

$$ 1 $$Jarecki S, Liu X. 集合交集的快速安全計算。

這正是使隨機預言模型成為理想化模型的原因。如果 $ H $ 是標準模型中的雜湊函式,攻擊者可以執行 $ H $ “在它的頭腦中”,這對於模擬器來說是難以理解的。但在隨機預言機模型中,評估雜湊函式的唯一方法 $ H $ 是通過一個定義良好的 oracle 介面。模擬器開始扮演這個界面的角色!——就像它被允許扮演誠實方的角色一樣。

如果 SIM 可以做到這一點,是否意味著我們可以簡單地通過要求各方對他們的輸入進行雜湊處理來提取輸入,並且任何半誠實安全協議都可以通過簡單地引入額外的雜湊輸入步驟而成為惡意安全協議(這顯然不是真的) ?

如果協議指示各方對某些資訊進行散列,而對手這樣做了,那麼,是的,模擬器(在隨機預言模型中)將能夠觀察到對散列的呼叫。但是攻擊者根本不能呼叫散列函式(而只是在協議中發送垃圾消息),或者散列“錯誤”值,或者散列十億個“誘餌”值。在所有這些情況下,模擬器都需要做一些明智的事情!

在您的假設範例中,協議將需要包含一些方法,以供其他參與者“檢查”是否呼叫了雜湊。我不確定這在您的場景中會是什麼樣子。但它必須給模擬器一些優勢:在看到對手在協議的其餘部分中的行為之後,以及看到對手提出的所有隨機預言查詢的列表之後,希望模擬器能夠推斷出哪個查詢是“真正的”一個。

我想你會發現“如何模擬它”中的例子會有這個屬性。您不能只要求對手查詢 $ H $ 根據他們的私人輸入,然後對結果不做任何事情。他們必須與 $ H $ 以某種方式為模擬器提供優勢,當允許模擬器觀察所有查詢時 $ H $ 並且還要觀察其餘的協議消息。我相信你會在“如何模擬它”中看到,模擬器會“交叉引用”這些表格 $ T_1 $ 和 $ T_2 $ 攻擊者發送的協議消息,以便提取。

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