Режим 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 →