第三十一個知識點:Game Hopping證明


第三十一個知識點:Game Hopping證明

關於安全證明, 目前主流的方法有安全歸約證明 (由 single game 實現) 和 Game Hopping (由 game sequence 實現) 兩種。

注意這篇博客是基於Douglas Stebila的論文An Introduction to Provable Security的部分3.3中書寫的,通過這個鏈接下載論文:https://www.douglas.stebila.ca/files/teaching/amsi-winter-school/Lecture-2-3-Provable-security.pdf。

回顧公鑰密碼學中IND-CCA安全定義。如果一個人從攻擊者處移除了解密問詢,那么我們就得到了CPA安全概念。注意:移除加密問詢不能改變攻擊者的能力,因為攻擊者一開始就有公鑰,所以他可以自己進行加密。

在早期的博客中,我們描述了一個DDH問題。在這篇博客中,我們繼續討論一個叫‘game hopping’的技術,來證明如果DDH是難的,那么ElGamal加密方案是IND-CPA安全的。從廣義上講,我們將對ElGamal的IND-CPA博弈轉換成DDH的博弈來證明攻擊者的在第一個游戲的概率不會超過第二個。因此如果第二個的概率是非常小的,那么第一個博弈獲勝的概率也會是非常小的。(證明加密方案是IND-CPA安全的)

首先,讓我們描述一下ElGamal加密方案。我們預先給定一個交換群G,G的階是素數q,生成器是g。(這里隱式的選擇了安全參數 \(\lambda\)。當我們說一個變量是可忽略的時候,我們指的是對安全參數的一個可忽略函數。我們不在這里討論細節。)明文和密文都是群中的元素。私鑰是一個秘密的指數\(x \in Z_q\),公鑰是\(X = g^x\)。加密消息\(M \in G\),應該先隨機的選擇一個\(y \in Z_q\),計算\(c_1 = g^y,c_2=MX^y\)。然后密文就是\((c_1,c_2)\) 。為了解密,我們知道\(c_2 = MX^y = M(g^x)^y = M(g^y)^x = Mc_1^x\)。因此使用私鑰\(x\),我們能計算\(M = c_2c_1^{-x}\)

現在考慮下面的博弈,\(A\)是一個PPT(概率多項式時間)攻擊者。

  • \(x \overset{\$}{\leftarrow} \mathbb{Z}_q, X \leftarrow g^x\),生成公私鑰對。
  • \((M_0,M_1) \overset{\$}{\leftarrow} \mathcal{A}(X)\)。攻擊者產生兩個消息。
  • \(b \overset{\$}{\leftarrow} \{0,1\}\)
  • \(y \overset{\$}{\leftarrow} \mathbb{Z}_q, c_1 \leftarrow g^y, Z \leftarrow X^y, c_2 \leftarrow M_bZ\)
  • \(b^{'} \overset{\$}{\leftarrow} \mathcal{A}(c_1,c_2)\)
  • 如果\(b = b^{'}\),就返回1,否則返回0 。

如果上述博弈返回1,我們說\(\mathcal{A}\)獲勝。從Ana的博客來看,如果\(\mathcal{A}\)的概率\(2|Pr[\mathcal{A} \space wins \space Game_0]-1/2|\)

接下來,考慮一個新博弈\(Game_1\)。唯一和\(Game_0\)不同的是它把第四步替換了,從

\[Z \leftarrow X^y \]

變成了

\[z \overset{\$}{\leftarrow} Z_q,Z \leftarrow g^z \]

因此新的密碼就變成了\((c_1, c_2) = (g^y, M_bg^z)\)

我們觀看第二個博弈,我們發現z是隨機選擇的,我們攻擊者就不知道關於b的任何信息,於是他猜測成功的概率是1/2。

我們對比兩個博弈,觀察其中的不同。一個用的是\(g^{xy}\),一個用的是\(g^z\)。很容易發現問題和DDH問題相關。攻擊者必須分區\(g^x,g^y,g^{xy}\)\(g^x,g^y,g^z\)。為了保證兩個博弈的鏈接,我們使用\(\mathcal{A}\)來構造一個攻擊者\(\mathcal{B}\),來對抗DDH:

  • 一旦輸出\((X,Y,Z)\),運行$\mathcal{A} \(輸入\)X\(。接收到挑戰對\)(M_0,M_1)$。
  • 隨機選擇一個比特\(b\)。然后計算\(m_bZ\)
  • 給攻擊者\(\mathcal{A}\)出密文\((Y,m_bZ)\)然后其輸出一比特\(b^{'}\)
  • 如果\(b = b^{'}\),攻擊者就獲勝了。

如果\(B\) 被給定的三元組是\((g^x,g^y,g^{xy})\),那么上述就是一個\(A\) 的完美的模擬。因此之前兩個博弈的差距完全在於B和DDH對抗的概率。

結合上面的分析,我們可以很容易地得到A對ElGamal的IND-CPA安全性的優勢並不大於B對DDH的優勢。因此,如果DDH對於所有多項式時間的對手都是困難的(這意味着它們的優勢可以忽略不計),那么ElGamal必須是IND-CPA安全的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM