Режим обратной связи по выходу

Материал из testwiki
Перейти к навигации Перейти к поиску

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

Определение

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

Ko=IV
Ki=E(K,Ki1)  для  i=1,,n
Ci=KiPi

Где IV — вектор инициализации, Ki — ключевой поток, K — ключ шифрования, E — функция шифрования блока, n — количество блоков открытого текста в сообщении, Ci и Pi — блоки шифрованного и открытого текстов соответственно.

Шифрования в режиме обратной связи по выходу (OFB)
Расшифрование в режиме обратной связи по выходу (OFB)

Особенности режима

  • Значение вектора инициализации должно быть уникальным для каждой процедуры шифрования одним ключом. Его необязательно сохранять в секрете и оно может быть передано вместе с шифротекстом.
  • Алгоритм дешифрования в режиме OFB полностью совпадает с алгоритмом шифрования. Функция дешифрования блочного алгоритма не используется в данном режиме, т.к. ключевой поток генерируется только функцией шифрования блока.

Режим OFB наглядно демонстрирует одну из проблем потоковых шифров.[1] При использовании одного и того же вектора инициализации для шифрования нескольких сообщений будет сгенерирован одинаковый поток ключей. Предположим, что P1 и P2 — два разных сообщения для шифрования ключом K. Зашифруем исходные сообщения в режиме OFB и получим два шифротекста — C1 и C2, соответственно. Таким образом, будет справедливо следующее тождество:

C1C2=E(K,Ki1)P1E(K,Ki1)P2=P1P2

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

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

Примечания

Шаблон:Примечания

Литература