Provable-Security

CTR模式的CPA-security

  • January 2, 2017

我正在自學 Katz 的書(第 2 版),我有一個關於Theorem 3.32的小問題,上面寫著:

如果 $ F $ 是一個偽隨機排列,那麼 $ CTR $ 模式是 $ CPA- $ 安全的。

他們在那裡提出了一個證明,但我認為另一個證明是可行的,這基本上是他們之前提出的定理的推論。

我的證明如下。考慮定理 3.31,它說

如果 $ F $ 是一個偽隨機函式,那麼 $ m\mapsto \langle r, F_k(r)\oplus m \rangle $ ( $ k $ 是關鍵, $ r $ 是統一選擇的)是 $ CPA- $ 安全的加密方案。

那麼,我們為什麼不簡單地證明 $ G_k(\cdot) $ 定義為

$$ G_k({\tt ctr}) = \langle F_k({\tt ctr}+1), F_k({\tt ctr}+2),\ldots,F_k({\tt ctr}+\ell)\rangle $$ 是偽隨機嗎?我們會通過引用的定理 $ CTR $ 模式(這是定理中描述的加密方案,使用 $ G_k $ ) 將會 $ CPA- $ 安全的。當然,表明 $ G_k $ 如果是偽隨機的 $ F_k $ is 不會造成問題,因為任何區分 $ G_k $ 可以變成區分器 $ F_k $ . 一切都是有道理的,我不明白為什麼這個證明不起作用,為什麼他們要費心寫一個 2 頁長的證明來證明可能是推論!(我認為唯一可能失敗的是所使用的定理被證明可以保持長度 $ F_k $ ,但是-我認為-該證明也適用於一般情況)。

任何人都可以指出我的論點中的錯誤嗎?順便說一句,這也可以證明 $ OFB $ 模式是 $ CPA- $ 安全的。

提前致謝

您提出的論點中的一個差距是 $ ctr $ 對手知道(它包含在密文中),而說“ $ G_k(ctr) $ 是偽隨機的”隱含地假設兩者 $ k $ 和 $ ctr $ 被保密。這是一個小問題,因為 $ G_k(ctr) $ 是偽隨機的,即使對手也給定了 $ ctr $ .

一個更嚴重的差距是,為了證明 CPA 安全性,您必須處理這樣一個事實,即對手可以為其選擇的消息獲取多個密文。如果,例如, $ ctr $ 總是全零字元串(這將保留偽隨機性 $ G_k(ctr) $ ),該方案肯定不會是 CPA 安全的,因為它會被“兩次填充”攻擊破壞。所以一個正確的證明必須處理這樣的可能性 $ ctr $ 可能會從一條消息重複到下一條消息,或者更一般地說, $ ctr+i=ctr’+j $ 對於一些兩個初始計數器值 $ ctr, ctr’ $ 和偏移量 $ i,j $ 對於兩個密文。這個問題是大多數 Katz-Lindell 證明致力於解決的問題,也是“生日詞”的來源 $ q^2/2^n $ 在分析中。

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