Encryption

CPA 建模挑戰明文是否相同

  • September 17, 2021

對於 CPA-secure 加密方案,假設有一個對手可以發現兩個密文是從相同的明文加密的。

這種加密方案仍然是 CPA 安全的嗎?

或者,CPA 安全性僅對攻擊者是否能夠找出加密的明文進行建模,而不管上述情況如何

回想一下 IND-CPA 安全遊戲中的對手得到一個“左右預言機”:

$$ \mathsf{LR}(m_0,m_1) := \mathsf{Enc}_{pk}(m_b) $$

在哪裡 $ b\in{0,1} $ 是對手必須嘗試恢復的秘密位。

假設有一個對手可以發現這兩個密文是從相同的明文中加密的。

在上面,你可以看到只有一個密文—— $ \mathsf{LR}(m_0,m_1) $ 返回單個密文 $ \mathsf{Enc}_{pk}(m_b) $ . 這意味著我不能 100% 確定您打算問什麼。如果我們將您的問題修改為:

假設有一個對手 $ \mathcal{A} $ 誰,給定兩個任意密文 $ c, c’ $ 在同一個公鑰下加密,可以判斷他們是否加密同一個東西—意思可以回答問題 $$ \mathsf{Dec}{sk}(c)\stackrel{?}{=}\mathsf{Dec}{sk}(c’) $$ 這個對手能否破壞 IND-CPA 的安全性?

答案是肯定的。攻擊很簡單——針對不同的 $ m_0, m_1, m_2 $ , 詢問 $ c\gets \mathsf{LR}(m_0, m_1) $ , $ c’\gets \mathsf{LR}(m_2, m_1) $ . 如果對手確定 $ c, c’ $ 加密相同的消息,然後兩者 $ \mathsf{LR} $ 加密查詢 $ m_1 $ ,例如 $ b = 1 $ . 否則, $ b = 0 $ .

這實際上是公鑰加密中一個相當基本的結果的基礎。

確定性公鑰加密是不可能的。

我認為對此的引用是 Goldwasser-Micali 1982,但無論細節如何,它都是理論密碼學的“早期”結果之一。為了證明這一點,您需要做的就是注意,如果 $ \mathsf{LR} $ 是確定性的,建立對手 $ \mathcal{A} $ 我們之前提到的很簡單(我讓你想想怎麼做)。然後我們可以發起我們之前提到的攻擊。

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