Security-Definition

關於反證CCA安全性的問題

  • March 9, 2021

我對Katz & Lindell 的教科書(第 2 版)第 97 頁第 3.7 章中給出的 CCA 安全性反駁有疑問。它的工作原理如下:

  1. 考慮我們基於 PRF 的構造: $ \text{Enc}(k, m) := (r , s) = (r , F (k, r ) \oplus m) $
  2. 放 $ m_0 = 0^n $ 和 $ m_1 = 1^n $
  3. 對手 A 獲得 $ (r , s) $ 並翻轉 s 的第一位。將密文表示為 $ (r , s’ ) $
  4. A 發送 $ (r , s’ ) $ 到他的解密神諭
  5. A獲得 $ 0\mathbin|1^{n−1} $ 或者 $ 1\mathbin|0^{n−1} $ 這讓他贏得了比賽

**我的問題:**為什麼 A 沒有獲得 $ 0\mathbin|1^{n−1} $ 和 $ 1\mathbin|1^{n−1} $ 或者 $ 0\mathbin|0^{n−1} $ 和 $ 1\mathbin|0^{n−1} $ 因此仍然可以區分消息,如果 $ n>2 $ ?

當神諭得到 $ (r,s’) $ 這意味著它得到 $ m’ = 0\mathbin|1^{n−1} $ 或者 $ m’ = 1\mathbin|0^{n−1} $ 因為預言機向對手發送了加密的 $ m_0 $ 或者 $ m_1 $ 那是 $ (r,s) $ .

$ 0\mathbin|0^{n−1} $ 或者 $ 1\mathbin|1^{n−1} $ 並非如此,因為位翻轉不會影響 $ F $ . 神諭會得到 $ (r,s’) $ 然後它會計算 $ F(k,r) $ ,那麼流將與 $ s’ $ . 如果我們用子索引來表示位

$$ F(k,r) \oplus s’ = \left[F(k,r)_0 \oplus \color{red}{s’_0},F(k,r)1 \oplus s’1, \ldots, F(k,r){n-1} \oplus s’{n-1}\right] $$那麼我們有

$$ F(k,r) \oplus s’ = \left[F(k,r)0 \oplus \color{red}{\overline{s_0}},F(k,r)1 \oplus s_1, \ldots, F(k,r){n-1} \oplus s{n-1}\right] $$

正如我們所看到的,只有一個位置受到影響,即第一個位置。

引用自:https://crypto.stackexchange.com/questions/88731