Сеть фейштеля
Posted By Автор не известен On In Ж | No CommentsСетью Фейштеля называется метод обратимых преобразований текста,
при котором значение, вычисленное от одной из частей текста,
накладывается на другие части. Часто структура сети выполняется
таким образом, что для шифрования и дешифрования используется один
и тот же алгоритм – различие состоит только в порядке использования
материала ключа. Сеть Фейштеля является дальнейшей модификацией
метода смешивания текущей части шифруемого блока с результатом
некоторой функции, вычисленной от другой независимой части того же
блока. Эта методика получила широкое распространение, поскольку
обеспечивает выполнение требования о многократном использовании
ключа и материала исходного блока информации. Независимые потоки
информации, порожденные из исходного блока, называются ветвями
сети. В классической схеме их две. Величины Vi именуются
параметрами сети, обычно это функции от материала ключа. Функция F
называется образующей. Действие, состоящее из однократного
вычисления образующей функции и последующего наложения ее
результата на другую ветвь с обменом их местами, называется циклом
или раундом (англ. round) сети Фейштеля. Оптимальное число раундов
K – от 8 до 32. Важно то, что увеличение количества раундов
значительно увеличивает криптоскойстость любого блочного шифра к
криптоанализу. Возможно, эта особенность и повлияла на столь
активное распространение сети Фейштеля – ведь при обнаружении,
скажем, какого-либо слабого места в алгоритме, почти всегда
достаточно увеличить количество раундов на 4-8, не переписывая сам
алгоритм. Часто количество раундов не фиксируется разработчиками
алгоритма, а лишь указываются разумные пределы (обязательно нижний,
и не всегда – верхний) этого параметра. Сразу же возникает вопрос,
– является ли данная схема обратимой ? Очевидно, да. Сеть Фейштеля
обладает тем свойством, что даже если в качестве образующей функции
F будет использовано необратимое преобразование, то и в этом случае
вся цепочка будет восстановима. Это происходит вследствие того, что
для обратного преобразования сети Фейштеля не нужно вычислять
функцию F- 1) Более того, как нетрудно заметить, сеть Фейштеля
симметрична. Использование операции XOR, обратимой своим же
повтором, и инверсия последнего обмена ветвей делают возможным
раскодирование блока той же сетью Фейштеля, но с инверсным порядком
параметров Vi. Заметим, что для обратимости сети Фейштеля не имеет
значение является ли число раундов четным или нечетным числом. В
большинстве реализаций схемы, в которых оба вышеперечисленные
условия (операция XOR и уничтожение последнего обмена) сохранены,
прямое и обратное преобразования производятся одной и той же
процедурой, которой в качестве параметра передается вектор величин
Vi либо в исходном, либо в инверсном порядке. С незначительными
доработками сеть Фейштеля можно сделать и абсолютно симметричной,
то есть выполняющей функции шифрования и дешифрования одним и тем
же набором операций. Математическим языком это записывается как
"Функция EnCrypt тождественно равна функции DeCrypt". Если мы
рассмотрим граф состояний криптоалгоритма, на котором точками
отмечены блоки входной и выходной информации, то при каком-то
фиксированном ключе для классической сети Фейштеля, а во втором
случае каждая пара точек получит уникальную связь Модификация сети
Фейштеля, обладающая подобными свойствами приведена на рисунке 3.
Как видим, основная ее хитрость в повторном использовании данных
ключа в обратном порядке во второй половине цикла. Необходимо
заметить, однако, что именно из-за этой недостаточно исследованной
специфики такой схемы (то есть потенциальной возможности ослабления
зашифрованного текста обратными преобразованиями) ее используют в
криптоалгоритмах с большой осторожностью.