Encryption

隨機加密方案的安全性

  • February 15, 2020

我有以下我正在努力解決的問題

假設我們對加密位串感興趣。考慮一個隨機加密方案,它總是產生與明文長度相同的密文。

證明這個方案不能是 IND-CPA 安全的

直覺上,如果隨機性在於明文和密文之間的映射,那麼這種方案甚至不應該是可解密的。單個明文如何映射到多個密文(長度相同)而不避免衝突並且還可以解密?我是否誤解了加密方案“隨機化”的含義?

我記得曾經看到一個粗略的解決方案,它使用將明文映射到密文集的想法,但看不到它是如何工作/解決問題的。

密文不可區分性意味著如果你對一條消息進行多次加密,每次密文必須不同。

例如,考慮一個搜尋大壩缺陷的設備。每次,當該設備遍歷時,它都會發送“是”或“否”信號,這意味著對於接收者來說,該設備是否發現了缺陷。如果竊聽者嗅到這些信號,由於“否”信號的數量多於“是”信號的數量,即使這些信號被加密並且無法破解它們的加密,他也能理解這些信號的含義。這個弱點的發生是因為加密算法是確定性的,這意味著它總是對“YES”信號產生相同的加密,對“NO”信號產生相同的加密,換句話說,攻擊者可以在不知道加密性質的情況下區分這些加密消息.

使消息抵抗可區分性的解決方案是使用非確定性加密並使用IV等參數使密文隨機化,每次給出相同的消息時,都會產生不同的密文,攻擊者無法區分它們。

讓我們首先假設位串可以有任何值。這在問題中並不明確,但它也沒有對內容提出任何其他聲明,所以我們必須假設是這種情況。

此外,讓我們假設不存在帶外通信。這意味著,例如,不能保持任何狀態。換句話說,我們不能在兩邊都使用計數器來創建不可區分性。


密文需要與明文大小相同。這意味著明文消息和密文消息的數量相等:兩者都限於 $ 2^n $ 在哪裡 $ n $ 是位數。因此,每個明文消息都將被映射到一個密文消息;如果不是這種情況,那麼一些純文字消息是不可能加密/解密的。

這反過來意味著對手可以看到相同的消息,因為每條消息都將映射到相同的密文消息。這意味著有關消息的資訊被洩露:可以區分相同的消息,相反,也可以看到沒有發送相同的消息。

要更改映射,我們需要添加狀態,因為加密和解密都必須以相同的方式更改映射。我們不能使用密文的任何位,因為如果我們重新分配其中一個位或什至一個模式,則映射將無法再訪問某些明文消息。

這意味著加密/解密需要是確定性的;在給定相同輸入的情況下,無法將資訊添加到雙方都可以使用的密文/明文消息中生成不同的密文/明文消息。


明文和密文的偽隨機 1:1 映射稱為置換。分組密碼是特定值的排列 $ n $ : 塊大小。

從這個問題你可以看到 ECB 模式不能是 IND_CPA 安全的:當你加密第二個塊時,資訊已經洩露。如果第二個明文塊與第一個相同,則第二個密文塊將與第一個密文塊相同。因此,您可以找到任何相同的塊集,或者您可以確定沒有任何塊,這當然也會洩露資訊。

因此,您需要一種操作模式來使分組密碼 IND_CPA 安全。

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