Provable-Security
基於模擬的證明:模擬器能/不能做什麼?
我在“密碼學基礎”和“高效兩方計算”中看到了一些例子,其中模擬器可以做一些在現實世界模型中各方無法做到的事情,例如:
- 在“…的基礎”第 660 頁,投幣協議中,模擬器首先從受信任的第三方 (TTP) 接收結果,而不向其發送各方輸入。我的問題是為什麼它可以這樣做,在真正的協議中,各方首先交換他們的輸入。
- 在“高效二…”第140頁,全模擬不經意轉移,模擬器:
(a) 可以接收潛在零知識的對手輸入並提取其秘密值。這對於現實世界模型中的誠實方來說是不可能的。
(b) 模擬器(儘管對零知識使用了一些不正確的輸入)使對手相信零知識證明已經過驗證,而在現實世界模型中不會出現。
主要問題:在模擬現實世界時,模擬器能做什麼和不能做什麼?
你的問題有相當多的混亂。首先,區分真實模型和理想模型。理想模型中的對手發送對手的輸入並獲得其輸出(有時還可以確定誠實方是否獲得輸出,具體取決於模型)。我們經常將理想的對手稱為“模擬器”,因為這是我們建構安全證明的方式。因此,在沒有任何一方輸入的拋硬幣的情況下,模擬器首先獲取輸出。這是定義允許的。
現在,模擬器通常通過執行現實世界的對手來工作。在這裡它有力量。例如,它可以倒帶現實世界的對手,可以查看它的隨機磁帶,等等。(這會因模型而變得複雜。例如,在公共參考字元串模型中它是不同的。但我們現在暫且不談。)
最後,在 HYBRID 模型中,還有其他問題。在此模型中,雙方交換消息,但也可以訪問受信任的一方。在此模型中模擬協議時,模擬器實際上為攻擊者執行可信方。因此,在 ZK 混合模型中,模擬器獲取對抗性證明者的輸入(包括見證人)。這是所使用模型的合成定理所允許的。
這些都不是直截了當的,而且很難自學。我建議你在網上看一些影片;他們可能會有所幫助。例如,2011 年和2015 年的 Bar-Ilan 冬季學校涵蓋了安全計算,可能會幫助您入門。