TLS 1.3 имеет огромную очистку после сбоев. У нас есть только 5 наборов шифров в TLS 1.3 с их идентификаторами:
{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 — псевдослучайную перестановку (PRP), а Chacha20 — псевдослучайную функцию (PRF); как результат, ЧаЧа20 лучше для режима CTR, как и любой PRF.
AES-256 является золотым стандартом и одобрен NIST, и он является квантовым (алгоритм Гровера) (ChaCha также защищен от QC). У AES есть инструкция процессора, известная как Intel AES-NI. Интел также добавил PCLMULQDQ
Инструкция от 2014 года по увеличению производительности GCM, поэтому мы увидим его больше, чем другие.
- GCM (режим счетчика Галуа) является наиболее часто используемым.*.
- СКК является предпочтительным режимом ограниченных сред.
- Google предпочитает ChaCha20-Poly1305, и он невосприимчив к временным атакам по своей конструкции.
Обратите внимание, что, в программном обеспечении ChaCha20 превосходит AES и это неудивительно, поскольку он предназначен для процессора.
*GCM сложно использовать правильно, есть много ловушки.