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

Режим OFB

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

История

Режим OFB был разработан в 1980-х годах как один из стандартных режимов работы блочных шифров, наряду с ECB, CBC и CFB. Впервые он был описан в национальном стандарте США FIPS 81 (1980 год) и впоследствии включён в международный стандарт ISO/IEC 10116. Первоначально режим предназначался для использования в системах, где требуется минимизировать ошибки передачи данных: в отличие от режима CBC, ошибка в одном бите зашифрованного текста приводит к ошибке только в одном бите расшифрованного текста, а не к порче целого блока. В 2001 году режим OFB был включён в рекомендации NIST SP 800-38A как один из пяти утверждённых режимов для AES.

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

Режим OFB основан на генерации гаммы, которая не зависит от открытого текста. Процесс шифрования состоит из двух этапов:

  1. Генерация гаммы: Начальный вектор инициализации (IV) шифруется с использованием блочного шифра с ключом. Полученный результат снова шифруется, и так далее, формируя последовательность псевдослучайных блоков (гамму). Каждый следующий блок гаммы получается шифрованием предыдущего блока гаммы.
  1. Наложение гаммы: Каждый блок открытого текста складывается по модулю 2 (XOR) с соответствующим блоком гаммы. Полученный результат является блоком зашифрованного текста.

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

Математически процесс можно описать следующим образом:

  • Пусть E — функция блочного шифрования с ключом K, IV — вектор инициализации.
  • Для i-го блока (i ≥ 1) гамма G_i = E(K, G_{i-1}), где G_0 = IV.
  • Зашифрованный текст C_i = P_i XOR G_i, где P_i — i-й блок открытого текста.
  • При расшифровании P_i = C_i XOR G_i.

Характеристики

Синхронность

Режим OFB является синхронным поточным шифром: гамма генерируется независимо от открытого и зашифрованного текста. Это означает, что отправитель и получатель должны быть синхронизированы в генерации гаммы. Если синхронизация нарушается (например, из-за потери или вставки бита), дальнейшее расшифрование становится невозможным.

Ошибки передачи

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

Предварительная генерация гаммы

Поскольку гамма не зависит от открытого текста, её можно вычислить заранее, до начала обработки данных. Это позволяет использовать OFB в системах с ограниченными вычислительными ресурсами или в условиях, когда требуется минимизировать задержки при шифровании.

Длина сообщения

Режим OFB не требует дополнения сообщения до целого числа блоков. Сообщение может быть произвольной длины, включая неполные последние блоки. Гамма для неполного блока просто обрезается до нужной длины.

Применение

Режим OFB применяется в следующих областях:

  • Защита каналов связи: Используется в протоколах, где требуется минимизировать влияние ошибок передачи, например, в спутниковой связи или в каналах с высоким уровнем помех.
  • Шифрование потоковых данных: Применяется для шифрования аудио- и видеопотоков в реальном времени, где задержки недопустимы.
  • Системы хранения данных: Используется в некоторых реализациях шифрования дисков (например, в режиме XTS, который является вариацией OFB).
  • Криптографические протоколы: Входит в состав некоторых протоколов аутентификации и шифрования, таких как SSH (Secure Shell) и IPsec (в режиме ESP).

Критика и ограничения

Повторное использование вектора инициализации

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

Отсутствие аутентификации

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

Длина гаммы

Гамма в OFB является периодической, поскольку генерируется на основе блочного шифра. Для блочного шифра с размером блока n бит максимальная длина гаммы без повторения составляет 2^n блоков. Для AES с размером блока 128 бит это 2^128 блоков, что практически исключает повторение в реальных приложениях. Однако для шифров с меньшим размером блока (например, DES с 64-битным блоком) период может быть недостаточным, и требуется смена ключа.

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

РежимТипРаспространение ошибокПредварительная генерация гаммыТребование дополнения
ECBБлочныйНетНетДа
CBCБлочныйДа (на весь блок)НетДа
CFBПоточныйДа (на несколько блоков)ЧастичноНет
OFBПоточныйНет (только на один бит)ДаНет
CTRПоточныйНетДаНет

Режим OFB близок к режиму CTR (Counter) по свойствам, но отличается способом генерации гаммы: в CTR используется счётчик, а в OFB — обратная связь по выходу. CTR считается более предпочтительным в современных системах благодаря возможности параллельной генерации гаммы и отсутствию риска зацикливания.

Интересные факты

  • Режим OFB иногда называют «режимом обратной связи по выходу» или «режимом выходной обратной связи».
  • В некоторых реализациях OFB используется для генерации псевдослучайных чисел, поскольку гамма представляет собой криптостойкую последовательность.
  • В стандарте NIST SP 800-38A режим OFB описан как один из пяти утверждённых режимов для AES, наряду с ECB, CBC, CFB и CTR.
  • Режим OFB был одним из первых режимов, реализованных в аппаратных криптографических модулях для военных и правительственных систем.

Источники

  • NIST Special Publication 800-38A, «Recommendation for Block Cipher Modes of Operation: Methods and Techniques», 2001.
  • ISO/IEC 10116:2006, «Information technology — Security techniques — Modes of operation for an n-bit block cipher».
  • FIPS 81, «DES Modes of Operation», 1980.
  • Menezes A., van Oorschot P., Vanstone S. «Handbook of Applied Cryptography», CRC Press, 1996.
  • Шнайер Б. «Прикладная криптография», 2-е издание, 2002.

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

На главную BFOmetr →