TLS 1.3 đã dọn sạch rất nhiều sau khi thất bại. Chúng tôi chỉ có 5 bộ mật mã trong TLS 1.3, với ID của họ:
{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
Tính đến thời điểm hiện tại RFC 8446:
Ứng dụng tuân thủ TLS PHẢI triển khai bộ mật mã TLS_AES_128_GCM_SHA256 [GCM] và NÊN triển khai bộ mật mã TLS_AES_256_GCM_SHA384 [GCM] và TLS_CHACHA20_POLY1305_SHA256 [RFC8439]
Tất cả các bộ mật mã này đang sử dụng chế độ CTR, AES là Hoán vị giả ngẫu nhiên (PRP) và Chacha20 là Hàm giả ngẫu nhiên (PRF); kết quả là, ChaCha20 tốt hơn cho chế độ CTR giống như bất kỳ PRF nào.
AES-256 là tiêu chuẩn vàng và được NIST phê duyệt và nó là Bảo mật lượng tử (thuật toán của Grover) (ChaCha cũng bảo mật với QC). AES có hướng dẫn CPU được gọi là AES-NI của Intel. Intel cũng đã thêm PCLMULQDQ
hướng dẫn kể từ năm 2014 để tăng hiệu suất của GCM, do đó chúng tôi sẽ thấy nó nhiều hơn các hướng dẫn khác.
- GCM (Galois Counter Mode) là chế độ được sử dụng nhiều nhất*.
- CCM là một môi trường hạn chế chế độ ưa thích.
- ChaCha20-Poly1305 được Google ưa thích hơn và nó miễn nhiễm với các cuộc tấn công theo thời gian theo thiết kế.
Lưu ý rằng, về phần mềm, ChaCha20 đánh bại AES và điều này không có gì ngạc nhiên vì nó được thiết kế thân thiện với CPU.
*GCM khó sử dụng chính xác, có rất nhiều cạm bẫy.