Chosen-Plaintext-Attack

為什麼非對稱加密是IND-CPA?

  • July 18, 2013

根據維基百科,IND-CPA 遊戲是:

挑戰者基於某個安全參數k(例如,以比特為單位的密鑰大小)生成密鑰對PK、SK,並將PK發布給對手。挑戰者保留SK。對手可以執行多項式有界數量的加密或其他操作。最終,對手送出兩個不同的選擇明文 $ M_0 $ , $ M_1 $ 給挑戰者。挑戰者選擇位 b $ \in {0, 1} $ 均勻隨機,發送挑戰密文 C = E(PK, $ M_b $ ) 回到對手。對手可以自由地執行任意數量的額外計算或加密。最後,它輸出對 b 值的猜測。

http://en.wikipedia.org/wiki/Ciphertext_indistinguishability

  1. 因為對手有 PK,這意味著他可以加密任意文本。為什麼他不能比較來自的密文 $ M_0 $ , $ M_1 $ 與挑戰密文?是函式 $ E $ 對手和挑戰者有什麼不同?
  2. 這是否意味著 SHA1、MD5 等經典雜湊函式不是 IND-CPA 安全的?

提前致謝!

這不僅限於不對稱方案;在任何選擇明文攻擊中,即使對於對稱密碼,攻擊者也可以(根據 CPA 遊戲的定義)計算任意數量的加密(當然,僅限於多項式時間)。形式上,我們說攻擊者可以訪問“加密預言機”。

無論如何,您偶然發現了 CPA 安全性的必要屬性:任何具有 IND-CPA 安全性的密碼都必須是非確定性的。也就是說,每次加密一個值時,密文應該(以壓倒性的機率)不同。因此,攻擊者可以計算 $ E(m_1) $ 和 $ E(m_2) $ ,但由於非確定性,挑戰密文將與其中任何一個都不同。

作為一個具體範例,請查看分組密碼的 CBC 模式。在這種模式下,每個加密都使用一個不可預測的 IV,它與第一個塊進行異或。因此,每次您加密相同的消息時,它都會(再次以壓倒性的機率)不同的密文。因此,您無法比較密文來了解明文是否相等。

在 RSA 的情況下,必須使用仔細的填充方案將 RSA 轉換為非​​確定性方案。一種流行的填充方案是Optimal Asymmetric Encryption Padding,通常縮寫為 OAEP。

這是否意味著 SHA1、MD5 等經典雜湊函式不是 IND-CPA 安全的?

散列函式不是加密方案,因此不可區分加密的概念並不真正適用。但是,我想您可以說他們在選擇明文攻擊下沒有“無法區分的摘要”,因為它們是確定性的:如果您想在 CPA 下建立區分器,您將完全按照您在問題中的建議進行操作,即計算 $ H(m_1) $ 和 $ H(m_2) $ 並將其與“挑戰摘要”進行比較。

實際上,散列函式沒有秘密,因此散列函式在任何模型下都沒有無法區分的摘要。如果攻擊者知道消息,他們可以計算消息的摘要並直接比較它們。因此,從某種意義上說,攻擊者始終可以根據算法的性質訪問“雜湊預言機”。與“無法區分的摘要”不同,散列函式的質量通常根據它的抗碰撞性、查找原像的難易程度等來判斷。

引用自:https://crypto.stackexchange.com/questions/9301