Encryption

TLS 1.3 使用哪種分組密碼操作模式?

  • October 16, 2021

TLS 1.3 使用哪種分組密碼操作模式?我假設它是一種提供身份驗證的分組密碼模式(如 GCM)。

TLS 1.3 在失敗後進行了大量清理。我們在 TLS 1.3 中只有5 個密碼套件,它們的 ID:

  • {0x13,0x01}- TLS_AES_256_GCM_SHA384
  • {0x13,0x02}- TLS_CHACHA20_POLY1305_SHA256
  • {0x13,0x03}- TLS_AES_128_GCM_SHA256
  • {0x13,0x04}- TLS_AES_128_CCM_8_SHA256
  • {0x13,0x05}- TLS_AES_128_CCM_SHA256

從目前的RFC 8446開始:

符合 TLS 的應用程序必須實現 TLS_AES_128_GCM_SHA256

$$ GCM $$密碼套件並且應該實現 TLS_AES_256_GCM_SHA384$$ GCM $$和 TLS_CHACHA20_POLY1305_SHA256$$ RFC8439 $$密碼套件

所有這些密碼套件都使用 CTR 模式,AES 是 Pseudo-Random Permutation (PRP),Chacha20 是 Pseudo-Random Function (PRF);因此,ChaCha20 像任何 PRF 一樣更適合 CTR 模式。

AES-256 是 NIST 批准的黃金標準,它是量子安全的(Grover 算法)(ChaCha 對 QC 也是安全的)。AES 具有稱為 Intel 的 AES-NI 的 CPU 指令。英特爾還在PCLMULQDQ2014 年添加了指令以提高 GCM 的性能,因此我們會比其他人看到更多。

  • GCM(伽羅瓦計數器模式)是最常用的一種*。
  • CCM是一種首選模式受限環境。
  • ChaCha20-Poly1305 是Google的首選,它在設計上不受定時攻擊。

請注意,在軟體方面,ChaCha20 優於 AES,這並不奇怪,因為它被設計為對 CPU 友好。


  • GCM 很難正確使用,有很多陷阱

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