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

AES-GCM

AES-GCM (Advanced Encryption Standard — Galois/Counter Mode) — это режим работы блочного шифра, который обеспечивает одновременно конфиденциальность данных (шифрование) и их аутентификацию (проверку подлинности и целостности). Является разновидностью режима аутентифицированного шифрования с ассоциированными данными (AEAD). AES-GCM сочетает в себе шифрование в режиме счётчика (CTR) и вычисление кода аутентификации сообщения на основе умножения в поле Галуа (GMAC). Широко применяется в современных протоколах безопасности, таких как TLS 1.2 и 1.3, IPsec, SSH, а также в беспроводных сетях (Wi-Fi Protected Access 3 — WPA3) и криптографических библиотеках.

История и стандартизация

Режим GCM (Galois/Counter Mode) был разработан в 2004 году группой криптографов, включая Дэвида МакГрю (David McGrew) и Джона Вьегу (John Viega), для удовлетворения растущей потребности в эффективном аутентифицированном шифровании. В 2007 году GCM был стандартизирован Национальным институтом стандартов и технологий США (NIST) как часть рекомендации SP 800-38D «Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC». AES-GCM является одним из наиболее распространённых вариантов, где в качестве базового блочного шифра используется AES (Advanced Encryption Standard) с длиной ключа 128, 192 или 256 бит.

Режим GCM был принят в качестве обязательного или рекомендуемого алгоритма во многих международных и отраслевых стандартах, включая IETF (RFC 5288 для TLS, RFC 4106 для IPsec) и IEEE 802.11ad (для WPA3). В России AES-GCM не входит в перечень утверждённых ФСБ России криптографических алгоритмов (ГОСТ), однако может использоваться в коммерческих и международных системах, не подпадающих под требования государственной тайны.

Принцип работы

AES-GCM объединяет два основных компонента: шифрование в режиме счётчика (CTR) и аутентификацию на основе кода аутентификации (GMAC).

Шифрование в режиме счётчика (CTR)

В режиме CTR для каждого блока открытого текста генерируется уникальное значение счётчика (nonce + счётчик). Это значение шифруется с помощью AES, а полученный псевдослучайный поток (гамма) накладывается на открытый текст операцией XOR. Режим CTR позволяет шифровать блоки параллельно, что обеспечивает высокую производительность на современных процессорах с поддержкой аппаратного ускорения AES (AES-NI). Длина nonce (однократно используемого числа) в GCM обычно составляет 12 байт (96 бит), что является рекомендуемым значением для обеспечения безопасности и эффективности.

Аутентификация (GMAC)

Для проверки целостности и подлинности сообщения GCM вычисляет код аутентификации (тег) на основе умножения в поле Галуа GF(2¹²⁸). Процесс включает:

  • Ассоциированные данные (AAD) — данные, которые не шифруются, но должны быть аутентифицированы (например, заголовки сетевых пакетов).
  • Шифротекст — результат шифрования.
  • Nonce и длина — значения, используемые для инициализации.

Все эти элементы обрабатываются с помощью полиномиального умножения в поле Галуа, что даёт 128-битный тег аутентификации. Длина тега может варьироваться (обычно 96, 104, 112, 120 или 128 бит), но для большинства приложений рекомендуется 128 бит.

Итоговый формат

Результатом работы AES-GCM является кортеж: (nonce, шифротекст, тег аутентификации). При расшифровке получатель, используя тот же nonce и ключ, повторно вычисляет тег и сравнивает его с переданным. Если теги совпадают, данные считаются подлинными и не были изменены. В противном случае расшифрованный текст отбрасывается.

Преимущества и недостатки

Преимущества

  • Аутентифицированное шифрование — обеспечивает конфиденциальность и целостность в одном алгоритме, что снижает риск ошибок при реализации (например, атаки padding oracle).
  • Высокая производительность — режим CTR допускает параллельную обработку, а GMAC может быть эффективно реализован аппаратно. На процессорах с AES-NI AES-GCM работает быстрее многих других режимов.
  • Поддержка ассоциированных данных — позволяет аутентифицировать незашифрованные метаданные.
  • Отсутствие необходимости в паддинге — в отличие от режимов CBC или ECB, GCM не требует дополнения открытого текста до размера блока, что упрощает реализацию и снижает объём данных.

Недостатки

  • Критичность nonce — повторное использование одного и того же nonce с одним и тем же ключом полностью разрушает безопасность: злоумышленник может восстановить ключ и подделать тег. Это является самым серьёзным ограничением GCM.
  • Ограничение на длину сообщениястандарт NIST ограничивает объём данных, зашифрованных одним ключом и nonce, до 2³⁹ блоков (примерно 64 ГБ). На практике это редко является проблемой.
  • Сложность реализации — неправильная обработка nonce или ошибки в генерации ключей могут привести к уязвимостям.
  • Чувствительность к атакам по времени — реализация умножения в поле Галуа может быть подвержена атакам по побочным каналам, если не используется защищённый код.

Применение

AES-GCM является основным режимом аутентифицированного шифрования во многих современных протоколах:

  • TLS 1.2 и 1.3 — используется в наборах шифров (ciphersuites), таких как TLS_AES_128_GCM_SHA256 и TLS_AES_256_GCM_SHA384. В TLS 1.3 AES-GCM является обязательным для реализации.
  • IPsec — применяется для защиты трафика на сетевом уровне (RFC 4106).
  • SSH — используется в протоколе Secure Shell для шифрования и аутентификации сессий.
  • Wi-Fi Protected Access 3 (WPA3) — в режиме Simultaneous Authentication of Equals (SAE) и для шифрования данных.
  • Криптографические библиотекиOpenSSL, BoringSSL, libsodium, Crypto++ и другие поддерживают AES-GCM.
  • Файловые системы и диски — например, в BitLocker (Microsoft) и некоторых реализациях LUKS.
  • Облачные сервисыGoogle Cloud, Amazon Web Services (AWS) и Microsoft Azure используют AES-GCM для защиты данных в покое и в транзите.

Безопасность и криптоанализ

AES-GCM считается криптографически стойким при условии правильного использования. Основные угрозы:

  • Повторное использование nonce — приводит к полной компрометации. Для предотвращения этого рекомендуется генерировать nonce случайным образом (12 байт) или использовать монотонно возрастающий счётчик.
  • Атаки на тег — длина тега менее 128 бит снижает стойкость к атакам подбора. Стандарт рекомендует 128-битный тег для максимальной безопасности.
  • Атаки по времени — небезопасные реализации умножения в GF(2¹²⁸) могут быть атакованы. Современные библиотеки используют защищённые от утечек по времени алгоритмы.
  • Квантовая устойчивость — AES-GCM, как и все симметричные шифры, уязвим к атакам с использованием квантового компьютера (алгоритм Гровера), однако для 256-битного ключа требуемая сложность остаётся высокой (2¹²⁸ операций). В постквантовую эпоху может потребоваться переход на более длинные ключи или другие режимы.

Сравнение с другими режимами

РежимАутентификацияПараллельностьNonceПаддинг
GCMДа (GMAC)Да (CTR)12 байт (рекомендуется)Нет
CCMДа (CBC-MAC)Нет7–13 байтНет
CBCНетНетДа (IV)Да
CTRНетДаДа (nonce)Нет
ChaCha20-Poly1305Да (Poly1305)Частично12 байтНет

AES-GCM превосходит CCM по производительности на аппаратном уровне, но уступает ChaCha20-Poly1305 на устройствах без аппаратной поддержки AES (например, на старых мобильных процессорах).

Интересные факты

  • AES-GCM является одним из немногих режимов, рекомендованных NIST для использования в федеральных информационных системах США.
  • В 2016 году исследователи обнаружили уязвимость в некоторых реализациях AES-GCM, связанную с повторным использованием nonce при обработке больших объёмов данных (атака «forbidden attack»). Это привело к ужесточению рекомендаций по генерации nonce.
  • В протоколе TLS 1.3 AES-GCM используется в паре с алгоритмом выработки ключей на основе эллиптических кривых (ECDHE), что обеспечивает совершенную прямую секретность (PFS).

Источники

  • NIST Special Publication 800-38D: Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC. — National Institute of Standards and Technology, 2007.
  • McGrew, D., Viega, J. The Galois/Counter Mode of Operation (GCM). — Submission to NIST, 2004.
  • RFC 5288: AES Galois Counter Mode (GCM) Cipher Suites for TLS. — IETF, 2008.
  • RFC 4106: The Use of Galois/Counter Mode (GCM) in IPsec Encapsulating Security Payload (ESP). — IETF, 2005.
  • Ferguson, N., Schneier, B., Kohno, T. Cryptography Engineering: Design Principles and Practical Applications. — Wiley, 2010.
  • Bernstein, D. J., Lange, T. Post-Quantum Cryptography. — Springer, 2017.

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

На главную BFOmetr →