Основы современной криптографии


Генерирование блочных шифров


Одним из наиболее распространенных способов задания блочных шифров является использование так называемых сетей Фейстела (по имени исследователя, работавшего в свое время в IBM, и одного из авторов стандарта DES). Сеть Фейстела представляет собой общий метод преобразования произвольной функции (обычно называемой F-функцией) в перестановку на множестве блоков. Эта конструкция была изобретена Хорстом Фейстелом и была использована в большом количестве шифров, включая DES и ГОСТ 28147-89. F-функция, представляющая собой основной строительный блок сети Фейстела, всегда выбирается нелинейной и практически во всех случаях необратимой.

Формально F-функцию можно представить в виде отображения

F: Z2,N/2 ґ Z2, k ® Z2,N/2,

где N – длина преобразуемого блока текста (должна быть четной), k – длина используемого блока ключевой информации.

Пусть теперь X – блок текста, представим его в виде двух подблоков одинаковой длины X = {A, B}. Тогда одна итерация (или раунд) сети Фейстела определяется как

Xi+1 = Bi||(F(Bi, ki) Е Ai)

где Xi

= {Ai, Bi}, ||  – операция конкатенации, а Е – побитовое исключающее ИЛИ. Структура итерации сети Фейстела представлена на рис. 2.1. Сеть Фейстела состоит из некоторого фиксированного числа итераций, определяемого соображениями стойкости разрабатываемого шифра, при этом на последней итерации перестановка местами половин блока текста не производится, т.к. это не влияет на стойкость шифра.

Данная структура шифров обладает рядом достоинств, а именно:

-                        процедуры шифрования и расшифрования совпадают, с тем исключением, что ключевая информация при расшифровании используется в обратном порядке;

-                        для построения устройств шифрования можно использовать те же блоки в цепях шифрования и расшифрования.




Начало  Назад  Вперед



Книжный магазин