Режим гаммирования
Режим гаммирования — это метод симметричного шифрования, при котором открытый текст преобразуется в шифротекст путём побитового сложения (по модулю 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 «Информационная технология. Криптографическая защита информации. Блочные шифры» определяет режимы гаммирования для блочных шифров «Магма» и «Кузнечик». Применение криптографических средств, реализующих эти режимы, обязательно для защиты информации, составляющей государственную тайну, а также для ряда информационных систем государственных органов. Все криптографические средства, используемые для шифрования в РФ, должны проходить сертификацию в Федеральной службе безопасности (ФСБ) России.
Источники
- ГОСТ Р 34.12-2015 «Информационная технология. Криптографическая защита информации. Блочные шифры».
- ГОСТ 28147-89 «Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования».
- Шнайер Б. «Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си». — М.: Триумф, 2002.
- Menezes A., van Oorschot P., Vanstone S. «Handbook of Applied Cryptography». — CRC Press, 1996.
- NIST Special Publication 800-38A «Recommendation for Block Cipher Modes of Operation: Methods and Techniques».
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →