Encryption
給定一個偽隨機函式 F,是(Fķ(r)|Fķ(r+1))(Fķ(r)|Fķ(r+1))(F_k(r) ; | ; F_k(r + 1))也是PRF?
給定:F是一個偽隨機函式,G是一個偽隨機生成器 $ l(n) = n+1 $ . 以下方案應分類為不安全、IND-COA 安全、IND-CPA 安全。
- 加密 $ m \in {0, 1}^{n+1} $ 隨機選擇 $ r \leftarrow {0, 1}^n $ 和輸出 $ [r, G(r) \oplus m] $
- 加密 $ m \in {0, 1}^{n} $ 輸出 $ m \oplus F_k(0^n) $
- 加密 $ m \in {0, 1}^{2n} $ 隨機選擇 $ r \leftarrow {0, 1}^n $ 並且寄出 $ [r, m \oplus (F_k(r) ; | ; F_k(r + 1))] $
我的猜測是:
- 不安全,因為攻擊者 A 不僅得到了密文 c,而且還得到了密鑰 $ r $ 用它加密消息。因此,它可以很容易地解密密文。
- 我會說它不是IND-CPA 安全的,因為它是確定性的。但是我如何證明/確定它是否是 IND-COA 安全的?我通常會通過對立來證明a,但我不知道如何開始。
- 我不知道這個方案是 IND-COA 還是 IND-CPA 安全的,因為我不知道 $ (F_k(r) ; | ; F_k(r + 1)) $ 是一個偽隨機函式。
任何提示或想法?我很感激任何幫助!
- 該方案沒有不可區分的加密,因為加密函式不使用密鑰,因此攻擊者可以以與預期接收者相同的方式執行解密函式。
- 該方案不是 CPA 安全的,因為它是確定性的(因此它甚至沒有對多條消息進行不可區分的加密)。為了證明它對單個消息具有不可區分的加密,我們首先註意到,如果 $ f $ 是一個隨機函式, $ f(0^n) $ 是均勻分佈的,我們得到一個一次性墊。現在,如果一個區分者 $ D $ 能分辨 $ m_0\oplus F_k(0^n) $ 從 $ m_1\oplus F_k(0^n) $ ,我們可以區分 $ F_k $ 從隨機函式如下。區分者 $ D’ $ 隨機選擇 $ b\in {0,1} $ 並執行 $ D $ 上 $ m_b\oplus O_{D’}(0^n) $ . $ D’ $ 輸出 $ 1 $ 如果 $ D $ 正確回答,並且 $ 0 $ 否則。如果 $ O_{D’} $ 是一個真正的隨機函式, $ D $ 準確地以機率正確回答 $ 1/2 $ . 另一方面,如果 $ O_{D’} $ 是 $ F_k $ 對於一個統一選擇的 $ k $ ,然後通過假設 $ D $ 以不可忽略的機率正確回答 $ 1/2 $ , 這轉化為一個顯著的優勢 $ D’ $ .
- 該方案是 CPA-secure,嘗試應用前一個的思想,將加密方案的區分符轉換為加密方案的區分符 $ F $ .