Chosen-Plaintext-Attack

CPA 和偽隨機發生器

  • September 18, 2015

剛開始學習一般的密碼學和網路安全,我似乎無法理解對以下問題的理解。如果我有任何誤解,請糾正我。

假設存在一個偽隨機生成器,它只是將所有密鑰長度加倍,G(n) = {0,1}^n -> {0,1}^2n. 如果我有一個密鑰k並將其發送給 G,我現在有一個加密的G(k) = k',並且k'長度是 的兩倍k。如果我有一條消息m,用 加密它,k'CPAm XOR k'是否安全?

我知道通過 CPA 攻擊,攻擊者可以將任何明文發送到加密機制中並從中接收密文。

我的困惑是,在上述情況下,攻擊將明文發送到什麼位置?它是偽隨機發生器嗎?攻擊者是否知道它是什麼類型的偽隨機生成器?但是既然攻擊者連原始密文或原始密鑰都沒有,那麼攻擊者繼續發送自己的明文並取回自己的密文又有什麼用呢?

抱歉,如果這很令人困惑,但我真的很想在進入更高級的主題之前了解這一點。

我想說清楚:你在定義 $ E_K(m):{0,1}^{2n}\times {0,1}^n\rightarrow {0,1}^{2n} $ 作為 $ E_K(m):=G(K)\oplus m $ . 這種結構在文獻中是眾所周知的。它不可能是 CPA 安全的,因為它是一種確定性算法。然而,正如 Katz 和 Lindell 的《現代密碼學導論》一書中所討論的,它對於被動竊聽者只觀察單個消息是安全的。

至於你的問題:

攻擊者究竟將明文發送到什麼位置?

他將明文發送到加密函式並獲得密文作為回報。他不學習 $ K $ 在任何時候,但使用學習加密 $ K $ . 將密文獲取到給定的明文的過程稱為*“查詢 X 的加密預言”*

攻擊者是否知道它是什麼類型的偽隨機生成器?

是的,攻擊者可能知道使用哪個原語來實例化 PRG,並且在一個好的系統中通常會這樣做。但這無助於他打破計劃,因為根據Kerckhoff 的原則,安全性完全依賴於密鑰。

但是既然攻擊者連原始密文或原始密鑰都沒有,那麼攻擊者繼續發送自己的明文並取回自己的密文又有什麼用呢?

通常的 CPA 場景確實將挑戰密文交給對手,他必須解密。(這有點不同,但能夠解密總是算作中斷)。


以下是有關如何打破該計劃的簡要概述:

假設你想解密一個密文 $ c $ . 您向加密預言機查詢隨機消息 $ r $ . 你會得到 $ c’=G(K)\oplus r $ 作為回報。您現在可以計算 $ G(K)=r\oplus c’ $ . 作為 $ c=G(K)\oplus m $ , 你可以獲得 $ m $ 作為 $ m=G(K)\oplus c=r\oplus c’ \oplus c $ .

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