Открыть сервис

Режим гаммирования

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

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

Основой режима гаммирования является генерация псевдослучайной последовательности битов (гаммы), которая не зависит от открытого текста. Шифрование и дешифрование выполняются идентично: для получения шифротекста открытый текст складывается по модулю 2 с гаммой; для восстановления открытого текста шифротекст снова складывается с той же гаммой. Эта операция обратима благодаря свойству XOR: \( (P \oplus G) \oplus G = P \).

Гамма генерируется с помощью детерминированного алгоритма (например, блочного шифра в режиме счётчика или специального генератора псевдослучайных чисел), который инициализируется секретным ключом \( K \) и синхропосылкой \( S \). Синхропосылка (часто называемая начальным вектором, IV) не является секретной, но должна быть уникальной для каждого сеанса шифрования при одном и том же ключе. Повторное использование одной и той же гаммы (ключа и синхропосылки) для разных сообщений приводит к компрометации шифра.

Разновидности режимов гаммирования

В криптографии различают несколько основных вариантов реализации гаммирования, стандартизированных в национальных и международных нормах.

Режим гаммирования с обратной связью (OFB — Output Feedback)

В режиме OFB гамма генерируется путём многократного шифрования предыдущего состояния регистра. Начальное состояние регистра устанавливается равным синхропосылке. Каждый последующий блок гаммы получается шифрованием предыдущего блока гаммы на ключе \( K \). Режим OFB не распространяет ошибки шифротекста: ошибка в одном бите шифротекста приводит к ошибке только в соответствующем бите восстановленного открытого текста. Однако синхронизация генератора критична — потеря одного бита гаммы делает невозможным дешифрование всего последующего текста.

Режим гаммирования с обратной связью по шифротексту (CFB — Cipher Feedback)

В режиме CFB гамма генерируется шифрованием предыдущего блока шифротекста. Начальный блок — синхропосылка. Этот режим также относится к поточным, но, в отличие от OFB, ошибка в шифротексте распространяется на несколько блоков при дешифровании. CFB позволяет шифровать данные блоками произвольного размера (например, побайтово), что удобно для каналов с переменной длиной сообщений.

Режим счётчика (CTR — Counter)

Режим CTR является наиболее распространённой современной реализацией гаммирования. В нём гамма генерируется шифрованием последовательных значений счётчика, который инициализируется синхропосылкой и инкрементируется для каждого блока. Счётчик может быть произвольной функцией (например, nonce + счётчик). Режим CTR полностью параллелизуем: блоки гаммы для разных позиций могут вычисляться независимо, что даёт значительное преимущество в производительности на многопроцессорных системах. Как и OFB, CTR не распространяет ошибки.

Режим гаммирования по ГОСТ 28147-89

В российском стандарте симметричного шифрования ГОСТ 28147-89 (ныне — ГОСТ Р 34.12-2015) определён собственный режим гаммирования. Он реализуется на основе блочного шифра «Магма» (64-битный блок) или «Кузнечик» (128-битный блок). Алгоритм генерации гаммы включает формирование 64-битных блоков \( \Gamma_i \) путём шифрования на ключе \( K \) некоторой функции от синхропосылки \( S \) и номера блока \( i \). Конкретная реализация описана в стандарте и отличается от классического CTR, хотя концептуально близка к нему. Режим гаммирования по ГОСТ используется в системах криптографической защиты информации (СКЗИ) на территории РФ.

Свойства и характеристики

  • Поточность: данные шифруются побитно или побайтово, что позволяет обрабатывать сообщения произвольной длины без дополнения (padding).
  • Скорость: гамма может быть предвычислена до начала передачи данных (в режимах CTR и OFB), что ускоряет шифрование в реальном времени.
  • Отсутствие распространения ошибок (для OFB и CTR): ошибка в шифротексте не влияет на дешифрование последующих блоков. Это свойство особенно важно для каналов с помехами.
  • Уязвимость к повторному использованию гаммы: если два разных открытых текста зашифрованы одной и той же гаммой, их XOR даёт XOR открытых текстов, что позволяет криптоаналитику восстанавливать данные.
  • Синхронизация: отправитель и получатель должны иметь одинаковую синхропосылку и синхронно генерировать гамму. Потеря синхронизации делает дешифрование невозможным.

Применение

Режим гаммирования широко используется в системах, где требуется шифрование непрерывных потоков данных:

  • Шифрование каналов связи (VPN, защищённые протоколы TLS/DTLS) — режим CTR является одним из стандартных для AES (AES-CTR).
  • Шифрование дисков (например, в схемах XTS-AES, комбинирующей режимы гаммирования и электронной кодовой книги).
  • Системы криптографической защиты информации (СКЗИ) в РФ, работающие по ГОСТ 28147-89 и ГОСТ Р 34.12-2015.
  • Защита потокового аудио и видео — благодаря возможности шифрования в реальном времени без задержек на накопление блоков.

Криптостойкость и ограничения

Криптостойкость режима гаммирования определяется стойкостью используемого блочного шифра или генератора псевдослучайных чисел. При корректном выборе ключа и уникальной синхропосылки режим обеспечивает теоретически абсолютную стойкость (в рамках модели «одноразовый блокнот»), если гамма является истинно случайной. Однако на практике гамма генерируется детерминированно, и её период должен быть достаточно большим, чтобы избежать повторений.

Основное ограничение — невозможность обеспечения аутентификации данных. Режим гаммирования не защищает от модификации шифротекста, так как изменение любого бита шифротекста приводит к предсказуемому изменению соответствующего бита открытого текста. Для обеспечения целостности и аутентичности гаммирование обычно комбинируют с кодами аутентичности сообщений (MAC) или используют режимы аутентифицированного шифрования (например, GCM, который основан на CTR).

Сравнение с другими режимами

ХарактеристикаГаммирование (CTR/OFB)Режим электронной кодовой книги (ECB)Режим сцепления блоков (CBC)
ПараллелизацияДа (CTR)ДаНет
Распространение ошибокНет (CTR, OFB)НетДа (на текущий и следующий блок)
ДополнениеНе требуетсяТребуетсяТребуется
АутентификацияНет (требуется отдельно)НетНет
Уязвимость к повтору IVКритическаяНе применимоКритическая

Законодательное регулирование в РФ

В Российской Федерации использование режимов гаммирования регламентируется национальными стандартами шифрования. В частности, ГОСТ Р 34.12-2015 «Информационная технология. Криптографическая защита информации. Блочные шифры» определяет режимы гаммирования для блочных шифров «Магма» и «Кузнечик». Применение криптографических средств, реализующих эти режимы, обязательно для защиты информации, составляющей государственную тайну, а также для ряда информационных систем государственных органов. Все криптографические средства, используемые для шифрования в РФ, должны проходить сертификацию в Федеральной службе безопасности (ФСБ) России.

Источники

  1. ГОСТ Р 34.12-2015 «Информационная технология. Криптографическая защита информации. Блочные шифры».
  2. ГОСТ 28147-89 «Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования».
  3. Шнайер Б. «Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си». — М.: Триумф, 2002.
  4. Menezes A., van Oorschot P., Vanstone S. «Handbook of Applied Cryptography». — CRC Press, 1996.
  5. NIST Special Publication 800-38A «Recommendation for Block Cipher Modes of Operation: Methods and Techniques».

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →