Reference-Request

oracle行為和實際執行之間的區別

  • November 2, 2015

假設在安全證明中有一個地方,預言機的行為與相應的實際執行不同(例如,解密預言機拒絕某些類型的密文,但在現實世界中,解密函式接受它們)。讓我們也假設這種情況的機率是不可忽略的(即,對手可以很容易地強迫它)。

我的理解是,這自動意味著證明是不正確的,儘管我只能說“預言機行為和實際執行之間存在差異”。

首先,我說的對嗎?如果是這樣,有沒有更深刻的解釋?你對這個問題有一些權威的參考嗎?

**更新:**在這方面我能找到的唯一例子是Bellare 和 Ristenpart 的一篇論文,其中討論了 Waters 的 IBE 方案的證明。這個證明很棘手:

但是 A 可以進行提取查詢,迫使任何可以想像的模擬器失敗,即必須中止。這意味著對 DBDH 的優勢取決於 A 不會導致中止,因此可能是 A 實現的情況 $ \varepsilon $ 在正常的 IND-CPA 實驗中具有優勢,但幾乎總是會導致模擬器中止。在這種(假設的)情況下,模擬器無法有效地利用對手證明失敗。(…) 作為補償,Waters 引入了“人工流產”

雖然我掌握了註釋句子中的含義,但我想有更深入的解釋

模擬不能與真實遊戲有太大偏差的原因在於以下推理。您假設您有一個贏得原始遊戲的對手,但是如果您偏離真實遊戲的行為並且對手可以注意到這一點,您不知道對手的行為。正是因為在模擬中遇到真實遊戲未涵蓋的行為時,您對對手的行為沒有任何假設。如果對手現在總是可以迫使您的模擬偏離真實遊戲,那麼您將無法再使用對手,因為您無法再預測其行為(例如,您只需每次都中止模擬,因為您無法回答對手的查詢如果您無法回答查詢,您將不知道對手會做什麼)。

如果您的模擬失敗的機率不可忽略,那麼這本身就不是問題。您需要估計對手導致模擬失敗的機率。通常,證明試圖以某種方式將潛在查詢集劃分為可回答的查詢和迫使模擬中止的查詢。例如,假設這個分區是根據某種分佈隨機定義的,並且模擬不會洩露任何關於哪些查詢不好的資訊,那麼攻擊者沒有比“意外命中”錯誤分區中的查詢更好的策略,你可以輕鬆估計其機率(因為它獨立於對手的行為)。

例如假設你作為一個模擬必須猜測對手沒有查詢 1 in $ n $ 可能的事情,因為你無法回答這個問題。想想例如(即,你已經分區了,你有 $ n-1 $ 好查詢和 1 個壞查詢)。現在,如果你隨機選擇 $ i\in [n] $ ,那麼對手沒有比意外命中更好的策略了 $ i $ (即,模擬與真實遊戲中的模擬完全相同,只是發生了不想要的事件,讓我們假設該事件獨立於對手在模擬中看到的其他事物)。然後對於每個查詢,中止的機率是 $ 1/n $ 如果對手進行多項式查詢,您只需放鬆減少的嚴格性(您的條件是對手在所有查詢中都沒有擊中錯誤)。現在,無論對手的策略如何,模擬總是以相同的機率中止,你很好。可以在 Alex Dent 的A Note On Game-Hopping Proofs中找到關於如何正式建模的簡短討論。但實際上推理和計算非常簡單。請注意,這裡的預言機在真實遊戲和模擬遊戲中的行為也存在差異,這並不意味著證明沒有意義。

但是,如果任何對手總是可以強制模擬中止,那麼你就有問題了。與 Waters 證明一樣的問題是,對手導致模擬中止的機率並不獨立於對手的行為(如上所述)。所以他無法將對手的獲勝機率與減少意義聯繫起來。因此,他不得不介紹這種複雜的人工流產技術。正如您已經提到的,在使用 Bellare 和 Ristenpart 的策略時可以避免。

如果您對特定證明有疑問,提出特定問題可能會更容易。我不確定我的編輯是否對您有幫助。

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