ChaCha20-Poly1305
Коротко: ChaCha20-Poly1305 — современный режим шифрования, который шифрует данные и одновременно проверяет их на подмену. Особенно быстр на устройствах без аппаратного ускорения AES.
Подробнее: ChaCha20 — потоковый шифр, Poly1305 — код аутентификации сообщений. Вместе они образуют схему AEAD и наряду с AES-GCM являются стандартом в TLS 1.3, WireGuard и SSH.
Подробности
- ChaCha20: Из ключа (256 бит), nonce (96 бит) и счётчика создаёт ключевой поток, который накладывается на данные через XOR. Состоит только из сложения, вращения и XOR, то есть работает за постоянное время без таблиц. Это затрудняет атаки по времени.
- Poly1305: Из одноразового ключа вычисляет 16-байтовую метку над данными. Если она не подтверждается при расшифровке, данные отвергаются.
- Преимущество: На старых телефонах и малых устройствах без команд AES часто заметно быстрее AES-GCM.
- Важно: Nonce не должен повторяться при одном и том же ключе.
- Происхождение: Разработан Дэниелом Дж. Бернстайном.
См. также: режимы работы AES