Pseudo-Random-Generator
多重 COA 安全(IND-EAV-Mult 安全)密碼
這是多重 COA 安全性的實驗:
- $ PrivK_{\mathcal{A},\Pi}^{mult}(n) $ :
- $ (m_0^1 , … , m_0^t,m_1^1 , … , m_1^t) \leftarrow \mathcal{A}(1^n), |m_0^i|=|m_1^i| \forall i \in [1,t] $
- $ k\leftarrow Gen(1^n) $
- $ b \leftarrow {0,1} $
- $ C = (c_b^1 , … , c_b^t) \leftarrow (Enc_k(m_b^1) , … , Enc_k(m_b^t)) $
- $ b’ \leftarrow \mathcal{A}(C) $
- 如果 $ b’ = b $ 返回 1 否則返回 0
如果 $ PrivK_{\mathcal{A},\Pi}^{mult}(n) = 1 $ $ \mathcal{A} $ 獲勝。對於具有這種安全性的密碼系統,不應該存在比 $ 1/2 + negl(n) $ , 在哪裡 $ negl(n) $ 是一個微不足道的函式。
現在我想建構一個具有這種安全性但不具有 KPA 或 CPA 或 CCA 安全性的密碼系統。我的想法:
- $ Gen(1^n) $ : 創建一個統一的隨機密鑰 $ k \leftarrow {0,1}^n $
- $ Enc_k(m) $ : 創建一個統一的隨機數 $ r \leftarrow {0,1}^n $ 並創建 $ c = m \oplus PRG(k \oplus r) $ . 輸出 $ (c,r) $
- $ Dec_k((c,r)) $ : 創造 $ m = c \oplus PRG(k \oplus r) $ 和輸出 $ m $
假設 PRG 是一個安全的偽隨機生成器,那麼這個密碼系統應該是多重 COA 安全的(或者來自Katz & Lindell 的教科書(第 2 版)的mult-EAV-IND-secure )
這是對的還是我忽略了什麼?
我認為您的設計將通過實驗,前提是 $ t $ 足夠小以至於碰撞 $ r $ 發生的機率微乎其微。
但是,我也認為您的設計是 KPA、CPA 和 CCA 安全的,除非我有誤解。