Ctr

散列計數器以防止 CTR 模式下的區分器

  • January 29, 2019

因為分組密碼是 PRP,因此是雙射的,CTR 模式下的輸入從不重複這一事實意味著每個密鑰流塊都是唯一的。如果在計數器重複之前加密了足夠多的數據,這將創建與生日界限之後的隨機數據的區別,特別是如果塊大小太小。像 ChaCha20 這樣的流密碼通過將計數器輸入 PRF 而不是 PRP 來避免這個問題,這意味著密鑰流塊將根據生日界限重複。

通過首先通過非常快速和確定性的散列函式提供隨機數和計數器來緩解這個問題是否可行?因為塊密碼的輸入在 CTR 模式下不是秘密的,所以它不需要是一個安全的散列函式。它需要做的就是承認由於生日限製而發生的衝突,允許在密鑰流中重複塊 $ 2^{n/2} $ 塊。

這個對嗎?如果是這樣,具有所需屬性的最快散列函式是什麼?

我正在閱讀這個問題,因為它會生成一個密鑰流: $ S_i\gets E_K(F(\mathrm{IV},i)) $ 在哪裡 $ F $ 是從散列函式建構的公共函式;對於增量索引 $ i $ 從…開始 $ 0 $ 和公共隨機 $ \mathrm{IV} $ , 和 $ F $ 有相當大的碰撞率時 $ i $ 變化; 並且對於 $ E $ 帶有密鑰的分組密碼 $ K $ .

這是非常不安全的:碰撞的位置,即 $ i $ , $ j $ 和 $ i\ne j $ 和 $ F(\mathrm{IV},i)=F(\mathrm{IV},j) $ , 可以被公眾的對手發現 $ \mathrm{IV} $ . 然後知道 $ K_i=K_j $ 可用於發起攻擊,允許從部分已知的明文中解密某些明文片段。

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