Открыть сервис

Аутентифицированное шифрование с ассоциированными данными

Аутентифицированное шифрование с ассоциированными данными (англ. 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-алгоритмы реализованы в виде функций:

  • OpenSSLEVP_EncryptInit_ex с параметрами EVP_aes_256_gcm.
  • libsodiumcrypto_aead_xchacha20poly1305_ietf_encrypt.
  • Bouncy Castle — классы GCMBlockCipher, ChaCha20Poly1305.

Источники

  1. NIST Special Publication 800-38D, «Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC», 2007.
  2. RFC 5116, «An Interface and Algorithms for Authenticated Encryption», 2008.
  3. D. J. Bernstein, «ChaCha, a variant of Salsa20», 2008.
  4. M. Bellare, C. Namprempre, «Authenticated Encryption: Relations among Notions and Analysis of the Generic Composition Paradigm», 2000.
  5. ISO/IEC 19772:2009, «Information technology — Security techniques — Authenticated encryption».

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →