Hash

AEAD、GCM、CBC、Poly1305、EtM、MtE 和 E&M 有什麼關係?

  • September 27, 2019

我正在使用 OpenSSL 1.1.1 來實現 TLS 1.3 通信模組,因此我嘗試了解如何確保數據完整性和身份驗證。我閱讀了很多關於 AEAD、GCM、CBC、Poly1305、EtM、MtE 和 E&M 的內容,以至於我知道它們是什麼,但我不知道它們之間的關係。我的問題是

  1. 我知道 TLS 1.3 使用 AEAD。這是否意味著它是 EtM、MtE 或 E&M?
  2. GCM 是分組密碼的 EtM 算法嗎?
  3. OpenSSL 預設使用什麼?EtM、MtE 還是 E&M?支持哪些?

我不知道它們是如何相互關聯的。

  • EtM、MtE 和 E&M 是通用結構,它們採用滿足較弱安全概念(選擇明文安全性和不可偽造性)的方案對,並將它們轉變為 AEAD 安全方案。
  • GCM 是一種採用 128 位分組密碼並將其轉換為 AEAD 安全方案的結構,並在內部使用 EtM 之類的東西。
  • CBC 是一種採用分組密碼並將其轉換為適用於 EtM、MtE 和 E&M 方案的加密部分的結構(儘管在面對填充/定時攻擊時要做到這一點公認並不容易)。
  • Poly1305 是一次性 MAC(即對於給定密鑰最多使用一次時才安全的 MAC),可以與例如分組密碼(從隨機數生成一次性密鑰)配對成為正常MAC 適用於 EtM、MtE 和 E&M 方案中的 MAC 部分。

OpenSSL 預設使用什麼?

顯然OpenSSL 將預設使用 AES-GCM 或 ChaCha20-Poly1305 進行對稱加密

支持哪些?

TLS 1.3 放棄了這些通用組合的概念,因此您只會發現完整的 AEAD 方案被指定為密碼套件。

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