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

06.03.2023

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

Определение

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

K o = I V {displaystyle K_{o}=IV}
K i = E ( K , K i − 1 ) {displaystyle K_{i}=E(K,K_{i-1})} для i = 1 , … , n {displaystyle i=1,dots ,n} C i = K i ⊕ P i {displaystyle C_{i}=K_{i}oplus P_{i}}

Где I V {displaystyle IV} — вектор инициализации, K i {displaystyle K_{i}} — ключевой поток, K {displaystyle K} — ключ шифрования, E {displaystyle E} — функция шифрования блока, n {displaystyle n} — количество блоков открытого текста в сообщении, C i {displaystyle C_{i}} и P i {displaystyle P_{i}} — блоки шифрованного и открытого текстов соответственно.

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


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

  • Значение вектора инициализации должно быть уникальным для каждой процедуры шифрования одним ключом. Его необязательно сохранять в секрете и оно может быть передано вместе с шифротекстом.
  • Алгоритм дешифрования в режиме OFB полностью совпадает с алгоритмом шифрования. Функция дешифрования блочного алгоритма не используется в данном режиме, т.к. ключевой поток генерируется только функцией шифрования блока.
  • Режим OFB наглядно демонстрирует одну из проблем потоковых шифров. При использовании одного и того же вектора инициализации для шифрования нескольких сообщений будет сгенерирован одинаковый поток ключей. Предположим, что P 1 {displaystyle P_{1}} и P 2 {displaystyle P_{2}} — два разных сообщения для шифрования ключом K {displaystyle K} . Зашифруем исходные сообщения в режиме OFB и получим два шифротекста — C 1 {displaystyle C_{1}} и C 2 {displaystyle C_{2}} , соответственно. Таким образом, будет справедливо следующее тождество:

    C 1 ⊕ C 2 = E ( K , K i − 1 ) ⊕ P 1 ⊕ E ( K , K i − 1 ) ⊕ P 2 = P 1 ⊕ P 2 {displaystyle C_{1}oplus C_{2}=E(K,K_{i-1})oplus P_{1}oplus E(K,K_{i-1})oplus P_{2}=P_{1}oplus P_{2}}

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

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


Имя:*
E-Mail:
Комментарий:
Информационный некоммерческий ресурс fccland.ru © 2022
При цитировании информации ссылка на сайт обязательна.
Копирование материалов сайта ЗАПРЕЩЕНО!