Galois/Counter Mode
GCM (абр. від англ. Galois/Counter Mode — лічильник з автентифікацією Галуа) — режим роботи, що широко застосовується в симетричних блокових шифрах, має високу ефективність і продуктивність[1]. Є режимом автентифікованого шифрування (AEAD), надаючи як конфіденційність, так і автентифікацію переданих даних (гарантуючи їх цілісність).
Режим GCM визначається для блокових шифрів з розміром блоку 128 біт. Існує варіант GCM під назвою GMAC, що надає лише автентифікацію даних, він може використовуватися як інкрементальний код автентифікації повідомлень. І GCM і GMAC приймають на вхід ініціалізаційний вектор (IV) довільної довжини. Алгоритм не обмежений патентами[2].
Завдяки наявності коду аутентифікації (імітовставки), даний режим автентифікованого шифрування дозволяє одержувачу легко виявити будь-які зміни повідомлення (як зашифрованого, так і доповненого інформацією, переданою відкрито), перш ніж почати його розшифровку, що значно покращує захист від спотворень, атак активного MITM і атак на основі оракулів[en] (наприклад від Padding oracle attack[en] для CBC-режиму).
Стандарт NIST США з 2007 року[3].
Принцип роботи
У звичайному режимі шифрування 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.1 AE (MACsec) для безпечного Ethernet, бездротовому IEEE 802.11ad (WiGig в 60-ГГц смузі), "Fibre Channel Security Protocols" (FC-SP) від ANSI (INCITS), форматі зберігання на цифрових стрічках IEEE P1619.1, в стандартах IPsec від IETF[5][6], може застосовуватися в SSH[7] і TLS (версії 1.2 або новіше)[8][9]. Застосовується в 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.
- ↑ 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)
Посилання
- 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 and ESP 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 Security in Storage Working Group developed the P1619.1 standard(англ.)
- INCITS T11 Technical Committee works on Fibre Channel — Security Protocols project. (англ.)
- [1](рос.)
- Симетричні схеми автентичного шифрування - GCM в cryptowiki.net