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].

Принцип роботи[ред. | ред. код]

Алгоритм шифрування в режимі GCM. Показаний випадок 1 блоку додаткових автентифікованих даних "Auth Data 1". Початкове значення лічильника містить у собі вектор IV (чи є похідним від нього). На вхід подаються два блоки відкритого тексту plaintext 1 і 2. Операція E_K позначає шифрування на загальному ключі K, операція multH означає множення в полі GF(2^128) на ключ хеша H, "incr" позначає інкремент лічильника.[4]

У звичайному режимі шифрування 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.

Дивись також[ред. | ред. код]

Примітки[ред. | ред. код]

  1. 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.
  2. Архівована копія (PDF). Архів оригіналу (PDF) за 29 серпня 2008. Процитовано 5 квітня 2018.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  3. NIST Special Publication 800-38D [Архівовано 5 серпня 2011 у Wayback Machine.], November, 2007, Recommendation for BlockCipher Modes of Operation:Galois/Counter Mode (GCM) and GMAC.
  4. http://ai2-s2-pdfs.s3.amazonaws.com/114a/4222c53f1a6879f1a77f1bae2fc0f8f55348.pdf
  5. RFC 4106 The Use of Galois/Counter Mode (GCM) in IPsec Encapsulating Security Payload (ESP)
  6. RFC 4543 The Use of Galois Message Authentication Code (GMAC) in IPsec ESP and AH
  7. RFC 5647 AES Galois Counter Mode for the Secure Shell Transport Layer Protocol
  8. RFC 5288 AES Galois Counter Mode (GCM) Cipher Suites for TLS
  9. RFC 6367 Addition of the Camellia Cipher Suites to Transport Layer Security (TLS)

Посилання[ред. | ред. код]