CyberGlossary

Криптография

ChaCha20

Определение

Современный поточный шифр Дэниела Бернштейна с 256-битным ключом и 96-битным nonce, широко применяемый совместно с Poly1305 в AEAD-схеме ChaCha20-Poly1305.

ChaCha20 — 20-раундовый поточный шифр, разработанный Дэниелом Бернштейном в 2008 году как развитие Salsa20. Он формирует ключевую последовательность из 256-битного ключа, 96-битного nonce и 32-битного счётчика блоков, используя простые операции сложения, циклического сдвига и XOR над 32-битными словами; это обеспечивает высокую скорость и постоянное время выполнения на CPU без поддержки AES (мобильные, встраиваемые системы). В сочетании с MAC Poly1305 получается AEAD-схема ChaCha20-Poly1305, стандартизованная в RFC 8439 и обязательная в TLS 1.3 наряду с AES-GCM. ChaCha20 используется в TLS, QUIC, WireGuard, OpenSSH, Signal и криптоподсистеме ядра Linux. Более чем за десятилетие анализа атак на полную 20-раундовую версию не найдено.

Примеры

  • TLS 1.3 и QUIC применяют TLS_CHACHA20_POLY1305_SHA256 на мобильных устройствах.
  • WireGuard шифрует все пакеты данных с помощью ChaCha20-Poly1305.

Связанные термины