Режим обратной связи по выходу
Режим обратной связи по выходу (англ. Output Feedback, OFB) — один из вариантов использования симметричного блочного шифра. Особенностью режима является то, что в качестве входных данных для алгоритма блочного шифрования не используется само сообщение. Вместо этого блочный шифр используется для генерации псевдослучайного потока байтов, который с помощью операции XOR складывается с блоками открытого текста. Подобная схема шифрования называется потоковым шифром (англ. stream cipher).
Определение
[править | править код]Схема шифрования в режиме OFB определяется следующим образом:
- для
Где — вектор инициализации, — ключевой поток, — ключ шифрования, — функция шифрования блока, — количество блоков открытого текста в сообщении, и — блоки шифрованного и открытого текстов соответственно.
Особенности режима
[править | править код]- Значение вектора инициализации должно быть уникальным для каждой процедуры шифрования одним ключом. Его необязательно сохранять в секрете и оно может быть передано вместе с шифротекстом.
- Алгоритм дешифрования в режиме OFB полностью совпадает с алгоритмом шифрования. Функция дешифрования блочного алгоритма не используется в данном режиме, т.к. ключевой поток генерируется только функцией шифрования блока.
Режим OFB наглядно демонстрирует одну из проблем потоковых шифров.[1] При использовании одного и того же вектора инициализации для шифрования нескольких сообщений будет сгенерирован одинаковый поток ключей. Предположим, что и — два разных сообщения для шифрования ключом . Зашифруем исходные сообщения в режиме OFB и получим два шифротекста — и , соответственно. Таким образом, будет справедливо следующее тождество:
Следовательно, если потенциальному злоумышленнику известна хотя бы одна пара шифрованного и открытого текста, вычисление любых открытых текстов, зашифрованных таким же ключом и с идентичным вектором инициализации, становится тривиальной задачей.
- Появление коллизии в ключевом потоке (или совпадение вектора инициализации и одного из ключевых блоков) приведёт к циклическому повторению ключевой последовательности, что может вызвать нарушение безопасности режима шифрования, как показано в предыдущем пункте.
- Распространение ошибки в данном режиме не происходит. Изменение одного бита в шифрованном тексте приведет к изменению одного бита при дешифровании. Однако, потеря бита в шифротексте приведет к некорректному дешифрованию всех последующих битов.
Примечания
[править | править код]- ↑ Нильс Фергюсон, Брюс Шнайер. 5.4 Обратная связь по выходу (OFB) // Практическая криптография = Practical Cryptography: Designing and Implementing Secure Cryptographic Systems. — М. : Диалектика, 2004. — 432 с. — 3000 экз. — ISBN 5-8459-0733-0, ISBN 0-4712-2357-3.
Литература
[править | править код]- Шнайер Б. 9.8. Режим выходной обратной связи // Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си = Applied Cryptography. Protocols, Algorithms and Source Code in C. — М.: Триумф, 2002. — 816 с. — 3000 экз. — ISBN 5-89392-055-4.