Аутентифицированное шифрование с ассоциированными данными¶
Аутентифицированное шифрование с ассоциированными данными (англ. Authenticated Encryption with Associated Data, AEAD) — это класс криптографических алгоритмов, которые одновременно обеспечивают конфиденциальность, целостность и аутентификацию передаваемых данных. В отличие от традиционных схем, где шифрование и контроль целостности выполняются отдельно (например, шифрование с последующим вычислением хеша), AEAD объединяет эти операции в единый процесс, что повышает эффективность и устойчивость к атакам. Ассоциированные данные — это часть сообщения, которая не шифруется, но защищается от несанкционированного изменения (например, заголовки сетевых пакетов или метаданные).
¶История
Концепция аутентифицированного шифрования впервые была формализована в 2000 году в работе Чарисанта и др. «The Security of Authenticated Encryption». Однако практическое внедрение началось с появлением режимов работы блочных шифров, таких как CCM (Counter with CBC-MAC) и GCM (Galois/Counter Mode), которые были стандартизированы в 2000-х годах. В 2008 году Национальный институт стандартов и технологий США (NIST) опубликовал рекомендацию SP 800-38D, описывающую режим GCM. С тех пор AEAD стал обязательным компонентом многих современных протоколов, включая TLS 1.3 (2018), SSH, IPsec и IEEE 802.11 (Wi-Fi).
¶Принцип работы
AEAD-алгоритмы принимают на вход три параметра:
- Открытый текст (plaintext) — данные, которые необходимо зашифровать.
- Ключ (key) — секретный параметр, используемый для шифрования.
- Ассоциированные данные (associated data) — нешифруемая, но аутентифицируемая часть сообщения.
На выходе алгоритм выдаёт:
- Шифротекст (ciphertext) — зашифрованная версия открытого текста.
- Тег аутентификации (authentication tag) — короткая строка (обычно 32–128 бит), служащая для проверки целостности и аутентичности.
При расшифровании получатель повторно вычисляет тег на основе полученного шифротекста, ассоциированных данных и ключа. Если вычисленный тег совпадает с переданным, данные считаются подлинными; в противном случае сообщение отвергается.
¶Основные режимы AEAD
¶GCM (Galois/Counter Mode)
GCM — наиболее распространённый режим AEAD, основанный на блочном шифре (обычно AES-128 или AES-256). Он использует счётчик для шифрования и умножение в поле Галуа для вычисления тега. GCM поддерживает параллельную обработку, что обеспечивает высокую скорость на современных процессорах с аппаратным ускорением AES. Однако при неправильной реализации (например, повторное использование одноразового номера) GCM становится уязвимым к атакам.
¶CCM (Counter with CBC-MAC)
CCM сочетает шифрование в режиме счётчика (CTR) и аутентификацию с помощью CBC-MAC (Cipher Block Chaining Message Authentication Code). Он стандартизирован в IEEE 802.11 (Wi-Fi) и используется в протоколах Bluetooth. CCM менее гибок, чем GCM, и не поддерживает параллельную обработку, что замедляет его работу на больших объёмах данных.
¶ChaCha20-Poly1305
Этот AEAD-алгоритм, разработанный Дэниелом Бернштейном, использует потоковый шифр ChaCha20 и аутентификатор Poly1305. Он не требует аппаратного ускорения и показывает высокую производительность на устройствах без поддержки AES (например, встраиваемые системы). ChaCha20-Poly1305 используется в протоколах TLS 1.3, SSH и WireGuard.
¶OCB (Offset Codebook Mode)
OCB — один из самых быстрых режимов AEAD, требующий всего одного прохода по данным. Он основан на блочном шифре и использует псевдослучайные смещения. OCB запатентован, что ограничивает его распространение в открытых стандартах. Существуют версии OCB2, OCB3, но OCB2 был признан небезопасным в 2018 году.
¶Применение
AEAD широко применяется в современных криптографических протоколах и системах:
- TLS 1.3 — обязательное использование AEAD (AES-GCM или ChaCha20-Poly1305) для защиты данных в интернете.
- IPsec — режимы ESP (Encapsulating Security Payload) поддерживают AEAD, например AES-GCM.
- SSH — протокол Secure Shell использует AEAD для защиты сессий.
- Wi-Fi (IEEE 802.11) — стандарт WPA3 использует AEAD (CCMP на основе AES-CCM).
- Криптовалюты — в блокчейне Bitcoin и Ethereum применяются AEAD-схемы для защиты транзакций.
- Облачные сервисы — Google Cloud KMS, AWS KMS и Azure Key Vault поддерживают AEAD для шифрования данных на стороне сервера.
¶Преимущества и недостатки
¶Преимущества
- Единый процесс — снижает риск ошибок при комбинировании шифрования и аутентификации.
- Эффективность — многие режимы (GCM, OCB) поддерживают параллельную обработку.
- Гибкость — ассоциированные данные позволяют защищать метаданные без их шифрования.
- Стандартизация — AEAD включён в международные стандарты (NIST, ISO/IEC).
¶Недостатки
- Чувствительность к одноразовым номерам — повторное использование nonce в GCM или ChaCha20-Poly1305 полностью компрометирует безопасность.
- Ограничения по длине — в GCM максимальный размер открытого текста составляет около 64 ГБ из-за 32-битного счётчика.
- Патентные ограничения — OCB защищён патентами, что ограничивает его использование в свободном ПО.
¶Критика и уязвимости
Несмотря на высокую надёжность, AEAD-алгоритмы подвергались атакам. В 2018 году была обнаружена уязвимость в OCB2 (режим, ранее считавшийся безопасным), что привело к его отзыву. В 2019 году исследователи продемонстрировали атаку на GCM при использовании коротких тегов (менее 64 бит). ChaCha20-Poly1305 считается устойчивым к известным атакам, но требует строгого соблюдения рекомендаций по генерации одноразовых номеров.
¶Стандартизация
AEAD-алгоритмы стандартизированы рядом организаций:
- NIST — SP 800-38D (GCM), SP 800-38C (CCM).
- IETF — RFC 8439 (ChaCha20-Poly1305), RFC 5116 (определение AEAD).
- ISO/IEC — ISO/IEC 19772:2009 (общие требования к AEAD).
¶Примеры реализации
В криптографических библиотеках AEAD-алгоритмы реализованы в виде функций:
- OpenSSL —
EVP_EncryptInit_exс параметрамиEVP_aes_256_gcm. - libsodium —
crypto_aead_xchacha20poly1305_ietf_encrypt. - Bouncy Castle — классы
GCMBlockCipher,ChaCha20Poly1305.
¶Источники
- NIST Special Publication 800-38D, «Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC», 2007.
- RFC 5116, «An Interface and Algorithms for Authenticated Encryption», 2008.
- D. J. Bernstein, «ChaCha, a variant of Salsa20», 2008.
- M. Bellare, C. Namprempre, «Authenticated Encryption: Relations among Notions and Analysis of the Generic Composition Paradigm», 2000.
- ISO/IEC 19772:2009, «Information technology — Security techniques — Authenticated encryption».
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


