隨機預言機來證明一個 Authenticated DH 協議
我試圖了解他們如何使用隨機預言機來解決 CDH。例如,在以下論文第 7 頁的安全證明中;用於智能電網通信的輕量級消息認證方案,Fouda 等人。2001 年。作者使用隨機預言機來破壞經過身份驗證的 DH 協議的安全性。他們假設一個對手可以破壞共享密鑰的語義安全性,並使用這個對手和一個隨機預言機來解決 CDH。
- 據我了解,隨機預言機就像一個雜湊函式,其中輸入是隨機字元串,輸出也是另一個隨機字元串,那麼我們如何使用它來解決 CDH;
- 在論文中,他們給了對手一個元組 $ (g, g^a, g^b) $ 並允許他向隨機預言機進行查詢。然後,他們跟踪對隨機預言機的查詢以監控 $ g^{ab} $ 被查詢。但是為什麼對手會向隨機預言機查詢 g^ab 呢?它是遊戲的一部分嗎?
回答您的問題:
- 隨機預言機 - 是雜湊函式的替代品。它的輸入是任何位串,輸出是隨機字元串。在某種意義上——這是一個理想的散列函式。但是為了評估它,你(攻擊者)需要明確地詢問預言機。
2)“為什麼對手會向隨機預言機查詢 g^ab。它是遊戲的一部分嗎?” - 不,對手當然沒有義務為您提供任何東西,也沒有義務向 ROM 索要 $ g^{ab} $ . 但是,很容易看出,如果攻擊者沒有向 oracle 請求 $ g^{ab} $ ,他的成功機率微乎其微。在文章中它被簡單地表達為“對會話密鑰沒有概念”;這確實是真的 - 回想一下,無論攻擊者之前的所有操作/查詢如何,oracle 都會為此輸入返回一些隨機字元串。雖然這不是一個嚴格的數學陳述,但它仍然正確地描述了發生的事情。
此外,我會嘗試解釋為什麼這個 ROM 模型對建模散列函式有好處。在這個證明中,我們基本上使用了這樣一個事實,即任何攻擊者都會明確地向預言機詢問雜湊值,並且我們可以跟踪所有這些查詢。而在現實生活中,對於真正的雜湊函式,我們無法跟踪攻擊者的行為。但是,如果散列函式是好的(理想的),要得到散列值,每個人都需要通過將散列函式應用於某些輸入來誠實地計算它(例如,你不能從散列值導出某些輸入的散列值其他,甚至以某種方式相關的輸入)。因此,如果散列函式足夠好,任何成功的攻擊者在某個時候都應該計算散列 $ g^{ab} $ ,即這個攻擊者應該知道 $ g^{ab} $ 在某個步驟。因此,該攻擊者能夠解決 CDH。這就是這個證明在ROM中的意義。這並不意味著對於任何散列函式都是正確的 - 只有好的散列函式才是正確的,這些函式確實不可預測並且表現得像隨機預言機。