ElGamal 對抗選擇密文攻擊
在 Hoffstein、Pipher 和 Silverman 的《數學密碼學概論》一書中,作者發表了以下評論:
Eve 可以訪問解密任意密文的預言機的攻擊稱為選擇密文攻擊。前面的命題表明 ElGamal 系統對於選擇密文攻擊是安全的。更準確地說,如果假設 Diffie-Hellman 問題很困難,則它是安全的。
其中“先前的命題”是一個證明的演練,如果一個人可以解密 ElGamal 密文,那麼一個人就可以解決 Diffie-Hellman 問題。
但是,我可以在網上找到的所有資源(包括本網站上的幾個)似乎都提出了相反的說法,即 ElGamal對選擇的密文攻擊*並不安全。*這本書的勘誤表沒有提到這段話。我對作者陳述的理解有缺陷嗎?
正如之前的答案和評論中已經提到的,您認為 ElGamal 對選擇密文攻擊不安全是正確的。一個直接的原因是該方案是乘法同態的,並且與CCA不兼容:攻擊者可以使用挑戰密文乘以一些隨機消息的加密結果的密文來查詢解密oracle;同態確保 $ Enc(pk, m_b) \cdot Enc(pk, m’) = Enc(pk, m_b \cdot m’) $ ,因此,解密預言機不能拒絕響應查詢,因為輸入與挑戰不同;現在對手只需要移除 $ m’ $ 恢復質詢消息。
此外,值得一提的是,該書中給出的證明不遵循可證明安全性證明的傳統約定。首先,他們沒有明確定義安全目標(即,他們是否試圖證明單向性?不可區分性?其他一些概念?)。其次,證明通常被建構為一個難題的簡化;也就是說,這些證明旨在達到一個矛盾,如果該方案不安全,那麼您可以解決難題。這些證明遵循這個模板:
- 定義一個安全目標(例如,不可區分性(IND))和一個攻擊模型(在這種情況下,選擇密文攻擊)。它們一起形成了一個安全概念(例如,IND-CCA)。
- 假設存在對手 $ \mathcal A $ 這打破了安全概念下的計劃。
- 模擬環境 $ \mathcal A $ . 也就是說,您明確地建構了攻擊模型所需的預言機。通常,您需要以某種方式嵌入要解決的難題實例中的元素(例如,來自 DH 元組的元素 $ (g^a, g^b) $ ).
- 證明使用 $ \mathcal A $ 你可以解決難題。
- 由於假設hard問題是hard問題,所以我們遇到了矛盾,所以最初的假設(即步驟2中的陳述)是錯誤的,該方案實際上是安全的。
然而,書中給出的證明正在做一些不同的事情。首先假設存在解密預言機,然後證明您可以使用它解決DH問題。由於 DH 是困難的,那麼最初的假設一定是錯誤的。在這種情況下,最初的假設是存在一個解密預言機,但這根本不能證明該方案在選擇密文攻擊下是安全的。