Чача20-Поли1305
-
Обзор ChaCha20-Poly1305
- Алгоритм аутентифицированного шифрования, сочетающий ChaCha20 и Poly1305.
- Используется в стандартах IETF, обеспечивает высокую производительность и обычно быстрее, чем AES-GCM.
-
История разработки
- Основные компоненты (Poly1305 и ChaCha20) разработаны в 2005 и 2008 годах соответственно.
- Объединены в 2013-2014 годах для использования в TLS и DTLS, выбраны Google из соображений безопасности и производительности.
- В 2015 году стандартизированы в RFC 7539, RFC 7905 и RFC 7634, интегрированы в Cloudflare.
- В июне 2018 года RFC 7539 заменен на RFC 8439.
-
Описание алгоритма
- Использует 256-битный ключ и 96-битный одноразовый код для шифрования и аутентификации.
- Режим счетчика ChaCha20 для получения ключей, Poly1305 для кодирования строк.
- Размер блока 64 байта обеспечивает высокую производительность на современных процессорах.
-
Варианты и модификации
- XChaCha20-Poly1305 с расширенным одноразовым номером для большей безопасности.
- Salsa20-Poly1305 и XSalsa20-Poly1305, не стандартизированы, но предпочтительны из-за лучшей диффузии.
- ChaCha20 с уменьшенной окружностью, ChaCha12 и ChaCha8, не стандартизированы.
-
Применение
- Используется в различных протоколах, включая IPSec, SSH, TLS, WireGuard, S/MIME и OTRv4.
- В программе резервного копирования Borg и файловой системе Bcachefs для шифрования данных.
-
Производительность и безопасность
- Обеспечивает лучшую производительность, чем AES-GCM, особенно на мобильных устройствах.
- Надежен в стандартной модели, но безопасность зависит от выбора одноразового номера.
- Уязвим для атаки Terrapin при использовании в протоколе SSH.
-
Ссылки и рекомендации
- Ссылки на RFC 8439 и другие стандарты, а также рекомендации по использованию.