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

Режим GCM

Режим GCM (Galois/Counter Mode) — это режим шифрования для блочных симметричных шифров (например, AES), который обеспечивает одновременно конфиденциальность данных и их аутентификацию (проверку подлинности и целостности). GCM относится к классу аутентифицированных режимов шифрования с дополнительными данными (AEAD — Authenticated Encryption with Associated Data) и широко применяется в современных протоколах защиты информации, таких как TLS 1.2 и TLS 1.3, IPsec, SSH, а также в беспроводных сетях (Wi-Fi Protected Access 3, WPA3).

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

Режим GCM был разработан в 2004 году группой криптографов под руководством Дэвида МакГрю (David McGrew) и Джона Виеги (John Viega) для Национального института стандартов и технологий США (NIST). Основной целью создания было объединение высокой скорости шифрования (за счёт использования счётчика) с надёжной аутентификацией на основе умножения в поле Галуа (GF(2¹²⁸)), что позволяет избежать отдельной процедуры вычисления кода аутентификации (MAC).

В 2007 году NIST утвердил GCM как рекомендованный режим для AES в документе SP 800-38D. Позднее он был принят в качестве международного стандарта ISO/IEC 19772:2009. В России GCM не входит в перечень обязательных режимов для ГОСТ-шифров (например, «Кузнечик» использует режимы MGM и CTR-ACPKM), но может применяться в коммерческих и международных продуктах.

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

GCM сочетает два компонента: шифрование в режиме счётчика (CTR) и аутентификацию с помощью кода аутентификации GMAC (Galois Message Authentication Code). Шифрование выполняется путём генерации псевдослучайной последовательности (гаммы) на основе блочного шифра, которая затем накладывается на открытый текст операцией XOR. В отличие от классического CTR, в GCM счётчик состоит из двух частей: начального вектора (nonce) и собственно счётчика, который увеличивается для каждого блока.

Аутентификация осуществляется путём умножения каждого блока зашифрованного текста (и дополнительных аутентифицируемых данных, AAD) на константу в поле Галуа GF(2¹²⁸). Результат всех умножений суммируется (XOR) и затем шифруется, образуя тег аутентификации (обычно длиной 128 бит, но может быть усечён до 96, 64 или 32 бит). Тег проверяется получателем: если он совпадает с вычисленным, данные считаются подлинными и не изменёнными.

Основные параметры

  • Nonce (initialization vector, IV) — уникальное значение, которое не должно повторяться для одного и того же ключа. Рекомендуемая длина — 96 бит (12 байт). При использовании nonce другой длины выполняется дополнительная обработка.
  • Дополнительные аутентифицируемые данные (AAD)информация, которая не шифруется, но защищается тегом (например, заголовки пакетов).
  • Тег аутентификации — фиксированной длины (по умолчанию 128 бит), проверяет целостность шифротекста и AAD.

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

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

  • Высокая производительность: шифрование в режиме CTR допускает параллельную обработку блоков, что особенно эффективно на многоядерных процессорах и аппаратных ускорителях (например, AES-NI).
  • Аутентификация «на лету»: не требуется отдельный проход для вычисления MAC, что снижает задержки.
  • Поддержка AAD: позволяет защищать метаданные без их шифрования.
  • Устойчивость к атакам: при правильном выборе nonce и размера тега GCM обеспечивает высокий уровень безопасности (до 2⁶⁴ блоков для одного ключа).

Недостатки

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

Применение

Режим GCM является стандартом де-факто для многих современных протоколов:

  • TLS 1.2 и TLS 1.3 — в наборах шифров (cipher suites) вида TLS_AES_128_GCM_SHA256 и TLS_AES_256_GCM_SHA384.
  • IPsec — в протоколах ESP и AH для защиты туннелей VPN.
  • SSH — в режиме chacha20-poly1305 (вариант на основе GCM) и aes128-gcm.
  • Wi-Fi Protected Access 3 (WPA3) — использует GCM для шифрования данных в режиме SAE.
  • IEEE 802.1AE (MACsec) — защита канального уровня в Ethernet.
  • Google Cloud Platform и AWS — для шифрования данных на стороне сервера (например, в сервисах хранения).

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

Несмотря на широкое распространение, GCM подвергался критике за чувствительность к ошибкам реализации. В 2016 году исследователи продемонстрировали атаку «nonce reuse» на протокол TLS, которая позволяла расшифровывать трафик при повторном использовании nonce в некоторых реализациях. В ответ были разработаны более устойчивые режимы, такие как AES-GCM-SIV (RFC 8452), который обеспечивает защиту даже при повторном использовании nonce, но за счёт снижения производительности.

В России для государственных и военных нужд применяются режимы, основанные на ГОСТ Р 34.12-2015 (шифры «Магма» и «Кузнечик»). Аналогом GCM является режим MGM (Multilinear Galois Mode), который также использует умножение в поле Галуа, но с другими параметрами и совместимостью с российскими стандартами.

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

  • Название «Galois/Counter Mode» происходит от имени французского математика Эвариста Галуа, чьи работы лежат в основе теории конечных полей.
  • В 2013 году Агентство национальной безопасности США (АНБ) рекомендовало GCM для защиты секретной информации, что способствовало его массовому внедрению.
  • Максимальная длина nonce в GCM (96 бит) позволяет использовать до 2⁹⁶ уникальных значений, что практически исключает случайное повторение при правильной генерации.

Источники

  • NIST Special Publication 800-38D: Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC. — 2007.
  • McGrew, D., Viega, J. The Galois/Counter Mode of Operation (GCM). — 2004.
  • RFC 5288: AES Galois Counter Mode (GCM) Cipher Suites for TLS.
  • ISO/IEC 19772:2009: Information technology — Security techniques — Authenticated encryption.
  • Ferguson, N. Authentication weaknesses in GCM. — 2005.

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

На главную BFOmetr →