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

SP 800-38D

SP 800-38D — это специальная публикация Национального института стандартов и технологий США (NIST), озаглавленная «Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC». Данный документ определяет два криптографических режима работы блочных шифров: режим аутентифицированного шифрования с дополнительными данными (AEAD) — Galois/Counter Mode (GCM) и его вариант для имитозащиты (вычисления кода аутентификации сообщения) — Galois Message Authentication Code (GMAC). Публикация является частью серии стандартов NIST, регламентирующих безопасные методы применения симметричных блочных шифров (таких как AES) для обеспечения конфиденциальности и целостности данных.

История и контекст разработки

Разработка SP 800-38D была обусловлена необходимостью создания эффективного и безопасного режима аутентифицированного шифрования, который сочетал бы высокую производительность (особенно на аппаратном уровне) с криптографической стойкостью. До появления GCM для обеспечения одновременно конфиденциальности и целостности данных часто использовались комбинации различных режимов (например, CCM — Counter with CBC-MAC), которые были менее производительны или имели ограничения по объёму обрабатываемых данных.

Работа над GCM началась в начале 2000-х годов. Авторами режима являются Дэвид МакГрю (David McGrew) и Джон Виейга (John Viega). Первоначально GCM был предложен как потенциальная замена режиму CCM для использования в протоколах IEEE 802.1AE (MACsec) и других сетевых стандартах. В 2007 году NIST выпустил черновую версию SP 800-38D, а в ноябре 2007 года была опубликована финальная версия документа. С тех пор публикация неоднократно пересматривалась и дополнялась, оставаясь действующим стандартом.

Основные положения SP 800-38D

Определение режимов

Публикация регламентирует два режима:

  • GCM (Galois/Counter Mode) — режим аутентифицированного шифрования с дополнительными данными (AEAD). Он обеспечивает как конфиденциальность (шифрование) открытого текста, так и целостность/подлинность (имитозащиту) как зашифрованного текста, так и любых дополнительных аутентифицированных данных (AAD), которые не шифруются, но должны быть защищены от модификации.
  • GMAC (Galois Message Authentication Code) — режим, использующий только механизм имитозащиты GCM без шифрования. Он вычисляет код аутентификации сообщения (MAC) для произвольных данных, но не обеспечивает их конфиденциальность.

Криптографический механизм

GCM основан на двух основных компонентах:

  1. Режим счётчика (CTR mode) для шифрования. Блочный шифр (например, AES) используется для генерации ключевого потока, который затем накладывается на открытый текст с помощью операции XOR. Это обеспечивает конфиденциальность.
  2. Умножение в поле Галуа (Galois Field multiplication) для вычисления кода аутентификации. Все блоки зашифрованного текста и AAD обрабатываются как элементы конечного поля GF(2^128). С помощью операции умножения в этом поле вычисляется тег аутентификации (GMAC tag), который гарантирует целостность данных.

Параметры и ограничения

SP 800-38D устанавливает строгие ограничения на использование GCM/GMAC для обеспечения безопасности:

  • Размер ключа: Для AES-128, AES-192 или AES-256 — 128, 192 или 256 бит соответственно.
  • Размер блока шифра: 128 бит (стандартный размер блока для AES).
  • Размер nonce (IV): Рекомендуемый размер — 96 бит (12 байт). Допускаются другие размеры, но они требуют дополнительной обработки и могут снижать производительность и безопасность. Nonce не должен повторяться при использовании одного и того же ключа.
  • Максимальный объём открытого текста: 2^39 - 256 бит (около 64 гигабайт) для одного сообщения.
  • Максимальный объём AAD: 2^64 бит.
  • Максимальное количество сообщений: 2^32 сообщений для одного ключа (при 96-битном nonce).

Требования к реализации

Документ содержит детальные требования и рекомендации для разработчиков:

  • Генерация nonce: Категорически запрещается повторное использование одного и того же nonce с одним и тем же ключом. Это приводит к полной потере как конфиденциальности, так и аутентификации.
  • Обработка nonce нестандартного размера: Если nonce не равен 96 битам, он преобразуется в 96-битное значение с использованием функции GHASH. Это снижает производительность.
  • Проверка тега аутентификации: Расшифровка и выдача открытого текста должны производиться только после успешной проверки тега аутентификации. Необходимо использовать константное по времени сравнение тегов для предотвращения атак по сторонним каналам (timing attacks).
  • Управление ключами: Рекомендуется использовать отдельные ключи для разных целей и регулярно их обновлять.

Применение

GCM, определённый в SP 800-38D, является одним из наиболее широко используемых режимов аутентифицированного шифрования в современных протоколах и системах:

  • TLS (Transport Layer Security): GCM является обязательным режимом для TLS 1.2 и единственным режимом для TLS 1.3 (в виде AES-GCM и ChaCha20-Poly1305, хотя ChaCha20 не входит в SP 800-38D).
  • IPsec (Internet Protocol Security): GCM используется в протоколах ESP и IKE для обеспечения конфиденциальности и целостности трафика.
  • SSH (Secure Shell): Поддерживается в качестве предпочтительного режима шифрования.
  • IEEE 802.1AE (MACsec): GCM является основным режимом для защиты канального уровня в Ethernet-сетях.
  • Wi-Fi Protected Access 3 (WPA3): Использует GCM для шифрования данных в корпоративном режиме (WPA3-Enterprise).
  • Криптографические библиотеки: GCM реализован во всех основных криптографических библиотеках (OpenSSL, BoringSSL, libsodium, Crypto++ и др.) и аппаратных ускорителях (Intel AES-NI, ARMv8 Crypto Extensions).

Криптоанализ и безопасность

На момент публикации SP 800-38D и по состоянию на 2025 год GCM считается криптостойким режимом при правильной реализации. Основные известные уязвимости связаны не с самим алгоритмом, а с нарушениями требований спецификации:

  • Повторное использование nonce: Самая серьёзная уязвимость. При повторении nonce злоумышленник может восстановить ключевой поток и XOR-ключ для вычисления тега аутентификации, что позволяет расшифровать все сообщения и подделать любые данные.
  • Атаки по сторонним каналам: Если сравнение тегов аутентификации выполняется не константно по времени, возможны атаки, позволяющие подобрать тег.
  • Атаки на основе длины nonce: Использование nonce нестандартного размера (не 96 бит) может привести к коллизиям в GHASH, что снижает стойкость.

Криптоаналитические атаки на сам GCM, такие как атаки на основе многократных nonce или атаки на основе слабых хэш-функций, не представляют практической угрозы при соблюдении стандарта.

Критика и альтернативы

Несмотря на широкое распространение, GCM имеет ряд недостатков, которые отмечаются криптографическим сообществом:

  • Чувствительность к повторению nonce: В отличие от некоторых других режимов (например, OCB или SIV), GCM полностью теряет безопасность при нарушении этого требования.
  • Сложность аппаратной реализации умножения в поле Галуа: Хотя существуют аппаратные ускорители, реализация умножения в GF(2^128) на программном уровне может быть медленнее, чем у альтернатив (например, ChaCha20-Poly1305).
  • Ограничение на размер nonce: Рекомендуемый 96-битный nonce может быть недостаточно большим для некоторых приложений с высокими требованиями к количеству сообщений.

В качестве альтернатив GCM часто рассматриваются:

  • ChaCha20-Poly1305: Более быстрый на программном уровне режим, менее чувствительный к повторению nonce, но не входящий в SP 800-38D.
  • AES-GCM-SIV: Режим, устойчивый к повторению nonce (nonce-misuse resistant), определённый в RFC 8452.
  • AES-CCM: Более старый режим, менее производительный, но с более простой реализацией.

Источники

  1. NIST Special Publication 800-38D, "Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC", November 2007 (включая последующие обновления).
  2. McGrew, D., Viega, J., "The Galois/Counter Mode of Operation (GCM)", 2004.
  3. Dworkin, M., "Recommendation for Block Cipher Modes of Operation: Methods and Techniques", NIST SP 800-38A.
  4. RFC 5288, "AES Galois Counter Mode (GCM) Cipher Suites for TLS".
  5. RFC 4106, "The Use of Galois/Counter Mode (GCM) in IPsec ESP".

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

На главную BFOmetr →