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.
См. также
Примечания
- Lemsitzer, Wolkerstorfer, Felber, Braendli, Multi-gigabit GCM-AES Architecture Optimized for FPGAs. CHES '07: Proceedings of the 9th international workshop on Cryptographic Hardware and Embedded Systems, 2007.
- В англоязычной литературе это называется AEAD — Authenticated Encryption with Associated Data. В криптографии ГОСТ такого режима нет.
- http://csrc.nist.gov/groups/ST/toolkit/BCM/documents/proposedmodes/gcm/gcm-nist-ipr.pdf
- NIST Special Publication 800-38D, November, 2007, Recommendation for BlockCipher Modes of Operation:Galois/Counter Mode (GCM) and GMAC.
- http://ai2-s2-pdfs.s3.amazonaws.com/114a/4222c53f1a6879f1a77f1bae2fc0f8f55348.pdf
- 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 5647 AES Galois Counter Mode for the Secure Shell Transport Layer Protocol
- RFC 5288 AES Galois Counter Mode (GCM) Cipher Suites for TLS
- RFC 6367 Addition of the Camellia Cipher Suites to Transport Layer Security (TLS)
Ссылки
- 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) (англ.)
- (рус.)
- Симметричные схемы аутентичного шифрования - GCM в cryptowiki.net