惡意模型中的安全與範例中的安全證明存在問題
想像一下,現實世界中的惡意對手使用 $ Y = 0 $ 作為其輸入,因此他將輸出計算為( $ X $ && $ y=0 $ ) = $ 0 $ . 我們可以得出結論,現實世界中的真實視圖是:
實景: $ X, Y = 0 $ 和 $ output = 0 $
真實世界
現在,假設模擬器想要在理想世界中模擬現實世界的視圖。為了模擬 $ x $ (誠實方的輸入),模擬器必鬚髮送 $ 1 $ 到受信任方,然後接收 $ x $ 從中。至此模擬器成功模擬 $ X $ ,但現在模擬器將輸出計算為 $ X $ && $ (Y = 1) $ = $ X $ ,這不等於真實視圖中的輸出 $ X $ && $ 0 $ = $ 0 $ . 因此模擬器無法模擬理想模型中的輸出。
理想世界
惡意模型中的定義2.3.1
該定義表明,對於真實模型的每個對手 A,都必須存在一個用於理想模型的模擬器 S。考慮到這個定義,我可以找到一個對手(誰發送 $ y = 0 $ 在現實世界中)沒有任何模擬器,因此該協議在惡意模型中並不安全。在 Lindell 的書第 27 頁(以下證明)中,據說這個協議是安全的!!!我感到很困惑。(我發現協議不安全的情況)。
協議證明
如果我理解正確,您認為是對手 $ \mathcal A $ 腐敗的 $ P_2 $ 在現實世界中,而忽略 $ P_2 $ 的輸入 $ y $ 並且只是輸出 $ 0 $ 不論價值 $ x $ 由…發送 $ P_1 $ , 那正確嗎?你聲稱這個對手是不可模擬的。
好吧,這個對手當然是可模擬的:模擬器向受信任方發送任何內容,接收任何內容,然後輸出 $ 0 $ .
順便說一句,證明展示了更多內容:它展示瞭如何為任何對手建構模擬器,如下所示。在現實世界中,對手收到 $ x $ , 執行任何基於 $ x $ , $ y $ , 及其輔助輸出 $ z $ ,並輸出結果。模擬器發送 $ 1 $ 對受信任方,接收 $ x $ ,執行與現實世界對手相同的計算,並輸出其結果。