惡意對手與模擬器和真實理想視圖之間的互動
這個例子來自“Efficient Secure Two-Party Protocols-Carmit Hazay-Yehuda Lindell”。
上面例子的安全證明是這樣的:
我畫了一張從上面的安全證明推導出來的圖。
圖片1:
[
圖二:
我有幾個問題:
- 請向我解釋一下模擬器和對手是如何相互作用的?我的意思是模擬器可以向對手發送什麼樣的請求,反之亦然。(對手可以向模擬器發送什麼樣的請求)。
- 根據安全證明和圖片 1,為什麼模擬器從對手那裡獲取輸入 x 而不是從損壞的 P1 獲取?
- 模擬器應該信任對手嗎?我的意思是,圖 1 中的對手是否有可能故意修改輸入 x,然後將其提供給模擬器?如果是,模擬器將如何計算出這種修改?
- 請您向我解釋一下兩張圖片中 P1 和 P2 的真實視圖是什麼?請向我解釋圖 1 和圖 2 中模擬器必須模擬什麼?
根據上面2.3.1的定義和第24頁的描述,我想答案是這樣的:
Case1:當 P1 損壞時:P1 的真實視圖是 (x),P2 的真實視圖是 (x, y, x ^ y) 模擬器必須模擬 P1 的視圖和 P2 的輸出。
Case2:當 P2 損壞時:P1 的真實視圖是 (x),P2 的真實視圖是 (x, y, x ^ y) 模擬器必須模擬 P2 的視圖和 P1 的輸出。
如果我的答案不正確,請更正。
在沒有冒犯作者的意思的情況下,這個證明也許可以寫得更清楚一點;可能,因為這是一個相當小的結果,他們並沒有為此付出太多努力。這是一個更長但希望更清晰的改寫,應該可以消除您的術語混亂。
腐敗的 $ P_1 $
現實世界的對手 $ \mathcal A $ 腐敗的 $ P_1 $ 有輸入 $ x $ 和輔助輸入 $ z $ . 它發送一些價值 $ x’ $ 至 $ P_2 $ 並輸出一些值 $ x’’ $ ; 兩個都 $ x’ $ 和 $ x’’ $ 計算自 $ x $ 和 $ z $ . 自從 $ P_2 $ 是誠實的,它計算和輸出 $ x’ \wedge y $ , 為其接收值 $ x’ $ 並輸入 $ y $ ,按照協議的指示;輸出對是 $ (x’’, x’ \wedge y) $ .
理想世界的對手 $ \mathcal S $ (又名模擬器)再次輸入 $ x $ 和輔助輸入 $ z $ ; 它首先計算 $ x’ $ 和 $ x’’ $ 從 $ x $ 和 $ z $ 就像 $ \mathcal A $ 做*。然後它發送(或指示 $ P_1 $ 發送) $ x’ $ 給受信任的一方;誠實的 $ P_2 $ 發送 $ y $ . 受信方返回 $ \varepsilon $ (空字元串)到 $ \mathcal S $ 和 $ x’ \wedge y $ 至 $ P_2 $ . $ \mathcal S $ 輸出 $ x’’ $ 和 $ P_2 $ 輸出 $ x’ \wedge y $ ; 模擬是完美的。
腐敗的 $ P_2 $
現實世界的對手 $ \mathcal A $ 腐敗的 $ P_2 $ 有輸入 $ y $ 和輔助輸入 $ z $ . 它接收 $ P_1 $ 的輸入 $ x $ 並輸出一些值 $ y’ $ 計算自 $ x $ , $ y $ 和 $ z $ . 自從 $ P_1 $ 是誠實的,它輸出 $ \varepsilon $ 按照協議的指示;輸出對是 $ (\varepsilon, y’) $ .
模擬器 $ \mathcal S $ 再次有輸入 $ y $ 和輔助輸入 $ z $ ; 它發送 $ 1 $ 給可信賴的一方和誠實的人 $ P_1 $ 發送 $ x $ . 受信方返回 $ \varepsilon $ 至 $ P_1 $ 和 $ x \wedge 1 = x $ 至 $ \mathcal S $ . 誠實的 $ P_1 $ 輸出 $ \varepsilon $ , 和 $ \mathcal S $ 計算和輸出 $ y’ $ 就像 $ \mathcal A $ 做; 模擬是完美的。
- 這基本上就是他們所說的“ $ \mathcal S $ 收到
$$ … $$從 $ \mathcal A $ 。”你可以考慮一下 $ \mathcal S $ 被授予黑盒或預言機訪問權限 $ \mathcal A $ : 它發送 $ \mathcal A $ 價值 $ x $ 和 $ z $ 和 $ \mathcal A $ 返回 $ x’ $ 和 $ x’’ $ 就像在現實世界中一樣。然而,這有點尷尬,因為本書此時尚未定義此類黑盒/oracle 訪問,尤其是未出現在安全定義中。