Random Oracle Model
Random Oracle Model(ROM, 隨機預言機模型)是密碼學中常用的一種理想化安全模型。在這個模型裡,雜湊函數 $H$ 不被看成某個具體可實作的演算法(例如 SHA-256),而是被抽象成一個真正隨機且一致的 oracle:對每個新的輸入,它會回傳均勻隨機的輸出;而對同一輸入的重複查詢,則永遠回傳相同結果。
ROM 常用來分析密碼學協議的安全性,特別是在 Fiat–Shamir transformation、數位簽章、公開金鑰加密等情境中。它的重要性不在於描述真實世界中的 hash function,而在於提供一個可操作的理論框架,使許多原本難以處理的安全證明得以建立。
Definition
在 Random Oracle Model 中,存在一個公開可查詢的 oracle $H$,所有參與者,包括誠實方與 adversary,都可以對其查詢。此 oracle 具有以下性質:
- 隨機性(randomness):對於每個從未查詢過的新輸入 $x$,$H(x)$ 會從輸出空間中均勻隨機選出。
- 一致性(consistency):若某輸入 $x$ 已經被查詢過,則往後每次查詢 $H(x)$ 都會得到完全相同的輸出。
- 公開可查詢(public access):所有演算法都可以查詢此 oracle,包括誠實參與者與 adversary。
因此,ROM 中的 hash function 不是一個具體函數,而是一個理想化的數學物件。安全證明中的重點,是研究協議在這種「理想雜湊」環境下是否成立。
Role of the Model
在許多協議中,hash function 並不只是單純用來壓縮資料,而是直接參與安全機制,例如:
- 將互動式協議中的 challenge 非互動化
- 將 message 與 commitment 綁定
- 產生不可預測的挑戰值
- 模擬理想的隨機性來源
這些用途使得 hash function 在安全性分析中扮演接近「隨機挑戰產生器」的角色。然而,在標準模型(standard model)裡,hash function 是一個固定且可描述的函數,直接證明其具有這種理想效果通常相當困難。ROM 的做法就是暫時把它提升成理想 oracle,藉此將分析焦點集中在協議結構本身。
因此,ROM 最核心的功能之一,是支撐從互動式協議到非互動式協議的安全分析,特別是 Fiat–Shamir transformation 中由 verifier 隨機給出的 challenge 被替換為公開可計算的 hash 值這件事。
Typical Applications
ROM 最經典的應用之一,是分析由互動式識別協議經 Fiat–Shamir transformation 所得到的非互動式簽章方案,例如:
- Fiat–Shamir transformation
- Schnorr signature
- GQ signature
- RSA-OAEP(其安全分析也常與 random oracle 技術密切相關)
在這些情境中,原本由 verifier 隨機選出的 challenge,會被替換成某個 hash 值,例如 \(c = H(m,R).\)
若將 $H$ 視為 random oracle,則這個值就可以被理解成「可公開計算、但對攻擊者而言仍具有理想隨機性」的 challenge。這正是許多 ROM 安全證明成立的基礎。
Advantages and Limitations
Advantages
Random Oracle Model 的主要優點包括:
- 簡化安全分析:許多原本難以處理的非互動協議,在 ROM 下可以得到較乾淨的安全證明。
- 適合分析 Fiat–Shamir 類轉換:因為 hash 可被視為隨機 challenge 的替代品。
- 對實務設計影響深遠:許多重要協議的安全性分析最初都是在 ROM 下建立。
Limitations
但 ROM 也有明確限制:
- 真實世界不存在真正的 random oracle:實際系統使用的是具體 hash function,如 SHA-256、SHA-3。
- ROM 安全不自動推出實作安全:一個方案在 ROM 下安全,並不代表把 oracle 換成真實 hash function 後仍然安全。
- ROM 與 standard model 不同:ROM 的安全性帶有理想化假設,standard model 的安全性則更接近現實,也通常更難證明。
因此,ROM 應被理解為一種強而有力的分析工具,而不是對真實系統的無條件保證。閱讀安全證明時,必須清楚分辨「在 ROM 下成立」與「在標準模型下成立」是不同層次的結論。
Schnorr Scheme
Schnorr Identification
Schnorr identification protocol 是一個三回合互動式協議。設 prover 的秘密為 $x$,公開值為 \(y = g^x.\)
協議流程如下:
- Prover 選擇隨機數 $r$,計算 \(R = g^r\) 並將 $R$ 傳送給 verifier。
- Verifier 隨機選擇 challenge $c$。
- Prover 回覆 \(s = r + cx.\)
- Verifier 檢查 \(g^s = R \cdot y^c.\)
這裡的關鍵是 challenge $c$ 原本由 verifier 隨機產生,因此互動式安全性建立在真實隨機挑戰之上。
Schnorr Signature
Schnorr signature 可視為對上述 identification protocol 套用 Fiat–Shamir transformation 的結果。其做法是用 hash function 取代 verifier 的隨機 challenge:
- 選擇隨機數 $r$,計算 \(R = g^r.\)
- 計算 \(c = H(m,R),\) 其中 $m$ 為欲簽署的訊息。
- 計算 \(s = r + cx.\)
- 輸出簽章 \((R,s).\)
驗證者重新計算 \(c = H(m,R)\) 並檢查 \(g^s = R \cdot y^c.\)
這裡的 ROM 假設使 $H(m,R)$ 可以扮演原本互動式協議中隨機 challenge 的角色。也就是說,ROM 提供了一個理想化框架,讓非互動簽章的安全分析能夠沿著互動式協議的結構進行。
GQ Scheme
GQ Identification
GQ(Guillou–Quisquater)identification protocol 是一個基於 RSA 結構的互動式識別協議。設公開參數為 $(N,e)$,並設公開值與秘密滿足某個 RSA 型關係。其典型流程可寫成:
- Prover 選擇隨機數 $r$,計算 \(R = r^e \bmod N\) 並送給 verifier。
- Verifier 隨機選擇 challenge $c$。
- Prover 回覆 \(s = r \cdot x^c \bmod N,\) 其中 $x$ 為秘密。
- Verifier 驗證 \(s^e \equiv R \cdot y^c \pmod N.\)
與 Schnorr identification 相同,這裡的 challenge $c$ 也是由 verifier 隨機給出。
GQ Signature
將 GQ identification 經 Fiat–Shamir transformation 非互動化後,可得到 GQ signature。其核心步驟為:
- 計算 \(R = r^e \bmod N.\)
- 計算 \(c = H(m,R).\)
- 計算 \(s = r \cdot x^c \bmod N.\)
- 輸出簽章 \((R,s).\)
驗證時,重新計算 $c = H(m,R)$,並檢查 \(s^e \equiv R \cdot y^c \pmod N.\)
在這裡,ROM 的角色與 Schnorr 的情形相同:它使 $H(m,R)$ 可以被視為理想隨機 challenge,從而把原本互動式協議中的安全結構轉移到非互動簽章中。
整體來看,Schnorr 與 GQ 都呈現了同一個核心現象:ROM 的重要用途,不只是把 hash function 假設得很強,而是把 verifier 原本提供的隨機挑戰,替換成一個公開可計算、但在分析中仍可視為理想隨機的值,藉此支撐 Fiat–Shamir transformation 的安全證明。