安全證明中的“Challenger”和“Oracle”是什麼關係?
在基於遊戲的安全證明中,我發現在 PPT 對手和挑戰者之間進行遊戲是不可取的。攻擊者能夠向不同的預言機發出查詢並接收相應的響應。假設 A 是協議的參與者,攻擊者發送的查詢可能是:Test(A) 或雜湊查詢。
關於 Test(A) 查詢的一點解釋:這個查詢通常用於證明密鑰交換協議的語義安全性。如果詢問此查詢,A 將隨機投擲硬幣“b”,如果 b=1,A 用正確的會話密鑰(如果已形成)回復對手;否則,回復一個隨機位串。
我的問題是:由於對手和挑戰者之間進行遊戲,這是否意味著挑戰者可以訪問所有預言機(例如參與者、雜湊)而對手只能通過挑戰者查詢預言機?比如說,如果對手想要發出一個 Test(A) 查詢,挑戰者會收到這個查詢並將其傳遞給參與者 A,並將收到的回復從 A 傳輸給對手(見下圖)?挑戰者似乎是對手和神諭之間的溝通媒介。
(實際上我不確定上面例子中的 A 是否可以稱為 oracle。“oracle”這個概念也讓我感到困惑……)
提前謝謝了。
您通過挑戰者和對手之間的遊戲來定義安全性,而對手的目標是贏得比賽。預言機是給予對手的能力,例如,測試預言機允許“實施”對對手的挑戰。所有的預言機都由挑戰者控制,如果你在隨機預言機模型中,那麼挑戰者控制雜湊函式,即隨機預言機,並且通常可以對這個預言機的答案進行程式(這意味著它可以選擇如何回答為只要答案在對手看來都是隨機的,並且與之前的查詢一致)。所以實際上你在挑戰者周圍的盒子也應該覆蓋左邊的所有神諭,因為它們是由挑戰者控制的。
當你想證明安全性時,你會做什麼,即表明不可能有一個有效的對手以不可忽略的機率贏得比賽,你表明挑戰者可以“模擬”整個環境,即預言機,對手以一種不被對手注意到的方式,但贏得比賽需要對手解決一些被認為很難解決的問題。因此,在最簡單的情況下,您可以建構一個直接簡化,因為您可以證明挑戰者可以“連接”外部挑戰者(對於一些假設的難題,例如加密方案的 CPA 安全性),例如,轉發其所有Enc() 向外部挑戰者查詢,贏得這場比賽的對手也贏得了“外部”比賽(因此與假設的 CPA 安全性相矛盾)。
通常在不僅是被動安全的密鑰交換協議中(普通的 DH 可以在 DDH 下顯示),安全證明將通過一系列“混合遊戲”來工作,其中一個人逐步修改安全遊戲(每一步都被爭論基於某些難度假設(例如,CPA 安全性),對手不會注意到這一點,直到一個遊戲的結論很容易。在密鑰交換協議中,這通常是從我們硬編碼 b=0 的遊戲變體到硬編碼 b=1 的遊戲變體的過渡。