惡意模型中的安全證明
根據上述協議(Efficient Secure Two-Pary Protocols-Hazay-Lindell -page 27),作者根據以下兩段證明了該協議的安全性:
我們分別考慮 P1 損壞的情況和 P2 損壞的情況。如果 P1 損壞,則模擬器 S 從 A 接收它在協議中發送給 P2 的位。該位完全確定了 P1 對函式的輸入,因此 S 只需將其發送給受信任方,從而完成模擬。在 P2 損壞的情況下,S 將輸入 1 發送到受信任方並接收回輸出位 b。通過上面的觀察,b是理想模型中誠實P1的輸入。因此,模擬器 S 只是將位 x = b 作為 A 在實際執行中期望從誠實 P1 接收的值傳遞給 A。這裡的模擬是完美的。
我們強調上述方法是有效的,因為 P2 是唯一接收輸出的一方。如果 P1 也接收輸出,那麼 S 在 P2 損壞的情況下的模擬將無法工作。為了看到這一點,考慮一個破壞 P2 的對手,使用輸入 y = 0 並在協議中輸出其視圖,包括它從 P1 接收的位 x。在這種情況下,S 不能將 y = 1 發送給可信方,因為 P1 的輸出不會正確分佈。因此,它必須結束 y = 0,在這種情況下,它為 A 生成的視圖並不總是正確的,因為它不知道P1的輸入位 x。
根據上面的定義,我明白為什麼真實和理想模型中的輸出應該無法區分很重要,但我不知道為什麼模擬器S應該知道P1的輸入位x很重要!正如我在上述作者的證明中強調的那樣,為什麼模擬器應該知道輸入位 x;如果它應該知道這一點,請向我解釋上面的定義2.3.1(在提到的書中)如何告訴我們模擬器應該模擬一方的輸入(上述協議中的P1)。
綜上所述,模擬器模擬受害方的輸入重要嗎?請根據定義 2.3.1 向我解釋一下好嗎?
根據定義2.3.1,我知道理想和真實模型中誠實和腐敗方的輸出對的分佈應該是無法區分的,但是對我來說,必須模擬各方的輸入是沒有意義的。
為了使協議安全,任何對手的輸出都必須是可模擬的,包括僅輸出其輸入的對手的輸出。
此外,請注意,在這種情況下,協議指示 $ P_1 $ 發送其輸入位 $ x $ 至 $ P_2 $ , 所以在 $ P_2 $ 已損壞,它可以輸出 $ P_1 $ ,所以它也必須是可模擬的。