Galois/Counter Mode

GCM (аббр. от  — счётчик с аутентификацией Галуа) — широко применяющийся режим работы симметричных блочных шифров, имеющий высокую эффективность и производительность. Является режимом аутентифицированного шифрования (AEAD), предоставляя как конфиденциальность, так и аутентификацию переданных данных (гарантируя их целостность).

Режим GCM определяется для блочных шифров с размером блока в 128 бит. Существует вариант GCM под названием GMAC, предоставляющий лишь аутентификацию данных, он может использоваться как инкрементальный код аутентификации сообщений. И GCM и GMAC принимают на вход вектор инициализации произвольной длины. Алгоритм не ограничен патентами.

Благодаря наличию кода аутентификации (имитовставки), данный режим аутентифицированного шифрования позволяет получателю легко обнаружить любые изменения сообщения (как зашифрованного, так и дополненного информацией, переданной открыто), прежде чем начать его расшифровку, что значительно улучшает защиту от искажений, атак активного MITM и  (например от  для CBC-режима).

Стандарт NIST США с 2007 года.

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

В обычном режиме шифрования CTR (счётчик) входные блоки нумеруются последовательно, номер блока шифруется блочным алгоритмом E (обычно AES). Выход функции шифрования используется в операции XOR (исключающее или) с открытым текстом для получения шифротекста. Как и для других режимов на базе счётчиков, схема представляет собой потоковый шифр, поэтому обязательным является использование уникального вектора инициализации для каждого шифруемого потока данных.

В GCM используется функция Галуа "Mult" ("GHASH(H, A, C)"), которая комбинирует блоки шифротекста и код аутентификации, чтобы получить тег аутентификации. На вход функции подается ключ хеширования H, являющийся результатом шифрования 128 нулевых битов на ключе K, т.е. H=E(K, 0^128). Тег аутентификации используется для проверки целостности сообщения. По каналу передаются:  IV, блоки шифротекста, и код аутентификации (16 байтов). По своим свойствам режим GCM (GMAC) похож на HMAC.

Применение
Режим GCM используется в IEEE 802.1AE (MACsec) для безопасного Ethernet, беспроводном IEEE 802.11ad (WiGig в 60-ГГц полосе), "Fibre Channel Security Protocols" (FC-SP) от ANSI (INCITS), формате хранения на цифровых лентах IEEE P1619.1, в стандартах IPsec  от IETF, может применяться в SSH и TLS (версии 1.2 и новее). Применяется в VPN решениях SoftEther VPN и OpenVPN с версии 2.4.

См. также 
 Режим шифрования

Примечания

Ссылки 
 NIST Special Publication SP800-38D defining GCM and GMAC
 RFC 4106: The Use of Galois/Counter Mode (GCM) in IPsec Encapsulating Security Payload (ESP)
 RFC 4543: The Use of Galois Message Authentication Code (GMAC) in IPsec ESP and AH
 RFC 5288: AES Galois Counter Mode (GCM) Cipher Suites for TLS
 RFC 6367: Addition of the Camellia Cipher Suites to Transport Layer Security (TLS)
 IEEE 802.1AE — Media Access Control (MAC) Security
 IEEE Security in Storage Working Group  developed the P1619.1 standard
 INCITS T11 Technical Committee works on Fibre Channel — Security Protocols project.
  AES-GCM and AES-CCM Authenticated Encryption in Secure RTP (SRTP)
 
 Симметричные схемы аутентичного шифрования - GCM в  cryptowiki.net

Режимы шифрования