Symmetric

CTR 是否比 CBC 更安全?

  • December 21, 2020

在密碼學中,分組密碼操作模式是一種算法,它使用分組密碼來提供資訊安全性,例如機密性或真實性。塊密碼本身僅適用於稱為塊的一組固定長度的比特的安全加密轉換(加密或解密)。操作模式描述瞭如何重複應用密碼的單塊操作來安全地轉換大於塊的數據量。

大多數模式需要一個唯一的二進制序列,通常稱為初始化向量 (IV),用於每個加密操作。IV 必須是非重複的,並且對於某些模式,也是隨機的。初始化向量用於確保生成不同的密文,即使相同的明文使用相同的密鑰獨立加密多次。

$$ 6 $$塊密碼可能能夠對多個塊大小進行操作,但在轉換期間塊大小始終是固定的。塊密碼模式對整個塊進行操作,如果數據的最後一部分小於目前塊大小,則要求將數據的最後一部分填充到完整塊中。但是,有些模式不需要填充,因為它們有效地將塊密碼用作流密碼。 從歷史上看,加密模式在各種數據修改場景下的錯誤傳播特性已被廣泛研究。後來的發展將完整性保護視為一個完全獨立的加密目標。一些現代操作模式以有效的方式結合了機密性和真實性,被稱為認證加密模式。

CTR 是否比 CBC 更安全?

點擊率

您對 CTR 模式的義務

  1. 您必須生成一個統一的隨機 256 位密鑰,並始終保密;
  2. 對於將在同一密鑰下加密的每條消息,選擇一個必須唯一的****初始化向量(IV),即 (key,IV) 對永遠不會重複。您可以將 IV 發送到密文前面。
  3. 消息大小不得超過 $ 2^{64} $ 如果您使用AES (PRP) 而不是CTR為 PRF 設計的 PRF

作為回報:點擊率保證

  1. 註冊會計師安全;即對手無法區分兩個長度相同的密文,因此無法讀取發送的消息。

如果使用得當,這就是您從 CTR 模式中獲得的全部內容。要實現經過身份驗證的加密,建議在encrypt-than-MAC中使用帶有 CTR 的 HMAC 。在現代密碼學中,我們有提供機密性、完整性和身份驗證的 AES-GCM 模式。這仍然適用於(key,IV)重用問題。建議使用像 AES-GCM-SIV 這樣的隨機數濫用抗性方案。

加拿大廣播公司

您對 CBC 模式的義務

  1. 您必須生成一個統一的隨機 256 位密鑰,並始終保密;
  2. 對於將在同一密鑰下加密的每條消息,選擇一個必須唯一不可預測的初始化向量(IV) 。您可以將 IV 發送到密文前面
  3. 確保消息大小是 128 的倍數並帶有適當的填充。
  4. 消息大小不得超過 $ 2^{60} $ .
  5. 密鑰的使用時間不得超過 $ 2^{45} $ 由於生日攻擊導致的IV碰撞。這將產生$$ (2^{45})^2/2^{128}/2 = 2^{90 - 128-1} = 1/2^{39} $$碰撞機率而不是 $ 1/2 $ 的機率 $ 2^{64} $

作為回報:CBC擔保

  1. 註冊會計師安全;即對手無法區分兩個長度相同的密文,因此無法讀取發送的消息。

如果使用得當,這就是您從 CBC 模式中獲得的全部內容。要實現經過身份驗證的加密,建議在encrypt-than-MAC中使用 HMAC 和 CBC 。

TLS 1.3 離開了 CBC 模式,實際上TLS 1.3 上的 5 種操作模式都是 Authenticated Encryption 模式。

優點和缺點

  • IV 重用在 CTR 模式下是災難性的,可以刪除機密性(不是密鑰,因為 CPA 安全),在 CBC 模式下它可能會在第一個塊上洩漏資訊
  • CTR 模式根本不需要填充,而 CBC 模式需要填充,這很容易受到填充預言攻擊,作為解密預言。在休息時,這不是問題。
  • 兩種模式都不具有完整性,因此可能會發生位翻轉攻擊。CTR 比 CBC 更容易受到攻擊,因為對於消息的某些部分,位翻轉攻擊會產生垃圾。
  • CTR 模式提供完全隨機加密/解密操作,CBC 模式加密是順序的,解密可以是隨機的,每個塊有兩個密文。
  • CTR 還可以預計算有助於預計算的流,CBC 不能。

小結

根據攻擊模型考慮安全性。這兩種算法都是過時的操作模式,我們不再使用它們,因為它們不能提供比 CPA 更安全的模式。CBC模式幾乎被淘汰,CTR模式存在於AES-GCM、ChaCha20-Poly1305等認證加密模式中,並沒有單獨使用。雖然沒有攻擊模型就沒有直接的結論,但在現代密碼學中,我們更喜歡 Authenticated 加密模式 > Ind-CCA。

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