Chosen-Plaintext-Attack
IND-CPA 中的挑戰-響應階段
IND-CPA 博弈有兩個挑戰-響應階段
- 通過執行生成密鑰 $ Gen(1^n) $ 挑戰者隨機均勻地選擇一個位 b {0,1}。
- 對手獲得輸入 $ 1^n $ .
- 可以使用消息查詢 oracle 多項式次數並獲取 $ E_k(m) $ 背部。
- 攻擊者發送消息 $ m_0 $ , $ m_1 $ , 挑戰者回歸 $ E_k(m_b) $ .
- 可以使用消息查詢 oracle 多項式次數並獲取 $ E_k(m) $ 背部。
為什麼這兩個挑戰-響應階段(3,5)是必要的?我理解為什麼至少需要一個階段(例如:確保確定性算法不是 IND-CPA 安全的),但為什麼兩者都需要?
您需要在攻擊者輸出之前允許查詢 $ m_0,m_1 $ 因為也許查詢幫助攻擊者選擇 $ m_0,m_1 $ 這對它來說“更容易”攻擊。
您需要在攻擊者收到挑戰密文後允許查詢 $ c=E_k(m_b) $ 自從知道 $ c $ 可以生成明文,其加密有助於了解什麼 $ c $ 是。
第 3 步中的預言機是絕對必要的。檢查此問題的答案,以獲取否則會破壞 IND-CPA 安全性的範例。
另一方面,根據UIUC的 CRYPTUTOR wiki中建議的 IND-CPA 的替代公式,步驟 5 中的預言對於 IND-CPA 安全性可能是不必要的。