非 CCA 安全的不可偽造的 CPA 安全私鑰加密方案
這是 Katz 和 Lindell 的密碼學介紹第 2 版中 4.26 的練習。
問題是:展示一個不可偽造但不是 CCA 安全的 CPA 安全私鑰加密方案。
這就是我想出的。
讓 $ F $ 是一個偽隨機函式。
$ Gen(1^n): k \leftarrow {0,1}^n $ .
$ Enc_k(m): r_1\leftarrow {0, 1}^n, r_2 \leftarrow {0,1}^n\setminus {r_1} $ , 輸出 $ c = (r_1, r_2, F_k(r_1) \oplus m, F_{k}(r_2) \oplus m) $ .
$ Dec_k(r_1,r_2,c_1,c_2): \perp $ 如果 $ r_1 = r_2 $ 或者 $ F_k(r_1)\oplus c_1 \neq F_k(r_2) \oplus c_2 $ , 否則輸出 $ m = F_k(r_1)\oplus c_1 $ .
我以某種方式證明了這是不可偽造的並且 CPA 是安全的。我想知道是否有更簡單的方法來解決它,或者這個方案是否確實具有所需的屬性。
符號 $ \perp $ 表示解密失敗。總而言之,不可偽造性意味著具有加密預言機的對手無法提出一個有效的密文,其基礎消息之前沒有被查詢到預言機,除非機率可以忽略不計。
謝謝你。
編輯:這個方案不起作用。翻轉密文的第 3 和第 4 分量的最後一位產生有效的加密 $ m $ 最後一點翻轉。
編輯:提供不可偽造性的正式定義。
定義不可偽造的加密實驗 $ EncForge_{A, \Pi}(n) $ :
- 跑 $ Gen(1^n) $ 獲取密鑰 k。
- 對手 $ A $ 給定輸入 $ 1^n $ 並訪問加密預言機 $ Enc_k(\cdot) $ . 敵手輸出密文 $ c $ .
- 讓 $ m = Dec_k(c) $ , 然後讓 $ Q $ 表示所有查詢的集合 $ A $ 問它的加密神諭。實驗的輸出為 1 當且僅當 $ m \neq \perp $ 和 $ m \notin Q $ .
一種加密方案 $ \Pi = (Gen,Enc,Dec) $ 如果對於任何 PPT 對手 $ A $ , $$ P[EncForge_{A,\Pi}(n) = 1] \le negl(n) $$ 對於一些可以忽略的功能 $ negl $ .
採用經過身份驗證(不可偽造和 CCA 安全)的加密方案,例如書中使用 encrypt-then-authenticate 構造的加密方案,使用 CPA 安全加密和高度安全的 MAC。
通過將隨機字元串附加到密文來定義新方案。
這個新方案仍然是 CPA 安全且不可偽造的。但這不是 CCA 安全的,因為對手可以更改隨機附錄,從而要求預言機解密並贏得 CCA 遊戲。