Galois/Counter Mode
GCM (аббр. от англ. Galois/Counter Mode — счётчик с аутентификацией Галуа) — широко применяющийся режим работы симметричных блочных шифров, имеющий высокую эффективность и производительность[1]. Является режимом аутентифицированного шифрования (AEAD)[2], предоставляя как конфиденциальность, так и аутентификацию переданных данных (гарантируя их целостность).
Режим GCM определяется для блочных шифров с размером блока в 128 бит. Существует вариант GCM под названием GMAC, предоставляющий лишь аутентификацию данных, он может использоваться как инкрементальный код аутентификации сообщений. И GCM и GMAC принимают на вход вектор инициализации произвольной длины. Алгоритм не ограничен патентами[3].
Благодаря наличию кода аутентификации (имитовставки), данный режим аутентифицированного шифрования позволяет получателю легко обнаружить любые изменения сообщения (как зашифрованного, так и дополненного информацией, переданной открыто), прежде чем начать его расшифровку, что значительно улучшает защиту от искажений, атак активного MITM и атак на основе оракулов (например от Padding oracle attack для CBC-режима).
Принцип работы
В обычном режиме шифрования 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[6][7], может применяться в SSH[8] и TLS (версии 1.2 и новее)[9][10]. Применяется в 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 Архивная копия от 2 декабря 2007 на Wayback Machine 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) (англ.)
- [1] (рус.)
- Симметричные схемы аутентичного шифрования - GCM в cryptowiki.net