建構一個 CCA 安全但未經身份驗證的方案
試圖從這篇論文中理解一個解決方案:
概括:
- $ E’_K=0||E_K(m) $ 和 $ D’_K(0||c)=D_K(c) $ 和 $ D’_K(1||c)=1 $
- IND-CCA 安全(如何?)作為 $ 1||c $ 和 $ 0||c $ 很容易解密
- 未通過身份驗證,因為 $ (1,c) $ 很容易解密,因為它等於 1。因此,攻擊者可以將 1 附加到任何密文中,這樣 $ 1||c $ 並說是他寄來的
有人可以解釋第 2 步是什麼,我可以看到為什麼它們很容易解密但無法在它和 IND-CCA 之間建立聯繫。我的困惑是解密看起來像 IND-CCA 不安全,因為您可以輕鬆地將 1 附加到 c 以獲得 1,因此 adv 將始終獲勝。
請注意,在 IND-CCA 遊戲中,對手的目標是不能輸出一些有效的密文(即,解密為其他內容的密文 $ \perp $ ),而是猜測秘密位 $ b $ 安全遊戲在其上被參數化(參見此處的定義)。
由於送出了表單的密文 $ 1 || C $ 到解密預言機 $ D_K(\cdot) $ 不會洩露有關秘密位的任何資訊 $ b $ ,這非正式地表明 $ (G,E’,D’) $ 基本上歸結為 $ (G,E,D) $ .
更正式地表述為減少:如果某些對手 $ A $ 可能會破壞計劃 $ (G, E’, D’) $ (在 IND-CCA 意義上),那麼我們可以想出一個對手 $ B $ 破壞了基礎方案 $ (G,E,D) $ . 即, $ B $ 執行 $ A $ 並且無論何時 $ A $ 呼叫其左右加密預言機 $ LR’_K(M_0, M_1) $ , 然後 $ B $ 回應 $ 0 || LR_K(M_0, M_1) $ , 在哪裡 $ LR_K(\cdot, \cdot) $ 是左右神諭 $ B $ 自己的遊戲。什麼時候 $ A $ 問 $ 0 || C $ 到它的解密預言機 $ D’_K(\cdot) $ , 然後 $ B $ 回應 $ D_K(C) $ , 在哪裡 $ D_K(\cdot) $ 是解密預言機 $ B $ 自己的遊戲。最後,如果 $ A $ 要求解密 $ 1 || C $ 和 $ C $ 以前從未使用過,那麼 $ B $ 只是回應 $ 1 $ , 否則 $ B $ 回應 $ \perp $ . 到底, $ B $ 輸出相同的位 $ A $ .
以這種方式創建, $ B $ 完美模擬神諭 $ LR’_K(\cdot, \cdot) $ 和 $ D’_K(\cdot) $ 為了 $ A $ ,從而贏得了與底層方案的 IND-CCA 博弈 $ (G,E,D) $ 至少具有相同的機率 $ A $ .
順便說一句,您注意到的是該方案 $ (G,E’,D’) $ 不是INT-CTXT安全的。這個安全概念確實要求對手想出一些密文來解密 $ \perp $ . 標準結果(如上面連結的論文所示)是 IND-CPA + INT-CTXT $ \implies $ IND-CCA。因此,您的範例表明,與此相反的是不正確的。