Сеть Фейстеля
Сеть Фе́йстеля, или конструкция Фейстеля (англ. Feistel network, Feistel cipher), — один из методов построения блочных шифров. Сеть состоит из ячеек, называемых ячейками Фейстеля. На вход каждой ячейки поступают данные и ключ. На выходе каждой ячейки получают изменённые данные и изменённый ключ. Все ячейки однотипны, и говорят, что сеть представляет собой определённую многократно повторяющуюся (итерированную) структуру. Ключ выбирается в зависимости от алгоритма шифрования/расшифрования и меняется при переходе от одной ячейки к другой. При шифровании и расшифровании выполняются одни и те же операции; отличается только порядок ключей. Ввиду простоты операций сеть Фейстеля легко реализовать как программно, так и аппаратно. Ряд блочных шифров (DES, RC2, RC5, RC6, Blowfish, FEAL, CAST-128, TEA, XTEA, XXTEA и др.) использует сеть Фейстеля в качестве основы. Альтернативой сети Фейстеля является подстановочно-перестановочная сеть (AES и др.).
История
В 1971 году Хорст Фейстель запатентовал два устройства, реализующих различные алгоритмы шифрования, позже получившие название «Люцифер» (англ. Lucifer). Одно из этих устройств использовало конструкцию, впоследствии названную «сетью Фейстеля» (англ. Feistel cipher, Feistel network). Тогда Фейстель работал над созданием новых криптосистем в стенах IBM вместе с Доном Копперсмитом. Проект «Люцифер» был скорее экспериментальным, но стал основой для алгоритма DES (англ. data encryption standard). В 1973 году журнал «Scientific American» опубликовал статью Фейстеля «Криптография и компьютерная безопасность» (англ. Cryptography and computer privacy), в которой раскрыты некоторые важные аспекты шифрования и приведено описание первой версии проекта «Люцифер». В первой версии проекта «Люцифер» сеть Фейстеля не использовалась.
На основе сети Фейстеля был спроектирован алгоритм DES. В 1977 году власти США приняли стандарт FIPS 46-3, признающий DES стандартным методом шифрования данных. DES некоторое время широко использовался в криптографических системах. Итеративная структура алгоритма позволяла создавать простые программные и аппаратные реализации.
Согласно некоторым данным, в СССР уже в 1970-е годы КГБ разрабатывала блочный шифр, использовавший сеть Фейстеля, и, вероятно, именно этот шифр в 1990 году был принят в качестве ГОСТ 28147-89.
В 1987 году были разработаны алгоритмы FEAL и RC2. Сети Фейстеля получили широкое распространение в 1990-е годы — в годы появления таких алгоритмов, как Blowfish (1993), TEA (1994), RC5 (1994), CAST-128 (1996), XTEA (1997), XXTEA (1998), RC6 (1998) и других.
2 января 1997 года институт NIST объявил конкурс по созданию нового алгоритма шифрования данных, призванного заменить DES. Новый блочный шифр получил название AES (англ. advanced encryption standard) и был утверждён 26 мая 2002 года. В AES вместо сети Фейстеля используется подстановочно-перестановочная сеть.
Конструкция блочного шифра на основе сетей Фейстеля

Простое описание
Шифрование
Пусть требуется зашифровать некоторую информацию, представленную в двоичном виде (в виде последовательности нулей и единиц) и находящуюся в памяти компьютера или иного устройства (например, в файле).
Алгоритм шифрования.
- Информация разбивается на блоки одинаковой (фиксированной) длины. Полученные блоки называются входными, так как поступают на вход алгоритма. В случае, если длина входного блока меньше, чем размер, который выбранный алгоритм шифрования способен зашифровать единовременно (размер блока), блок удлиняется каким-либо способом. Как правило, длина блока является степенью двойки, например, составляет 64 бита или 128 бит.
Далее будем рассматривать операции, происходящие только с одним блоком, так как в процессе шифрования с другими блоками выполняются те же самые операции.
- Выбранный блок делится на два подблока одинакового размера — «левый» (
) и «правый» (
).
- «Правый подблок»
изменяется функцией F с использованием раундового ключа
:
- Результат складывается по модулю 2 («xor») с «левым подблоком»
:
- Результат будет использован в следующем раунде в роли «правого подблока»
:
- «Правый подблок»
текущего раунда (в своем не измененном на момент начала раунда виде) будет использован в следующем раунде в роли «левого подблока»
:
- По какому-либо математическому правилу вычисляется раундовый ключ
— ключ, который будет использоваться в следующем раунде.
Перечисленные операции выполняются N-1 раз, где N — количество раундов в выбранном алгоритме шифрования. При этом между переходами от одного раунда (этапа) к другому изменяются ключи: заменяется на
,
— на
и т. д.).
Расшифрование
Расшифровка информации происходит так же, как и шифрование, с тем лишь исключением, что ключи следуют в обратном порядке, то есть не от первого к N-му, а от N-го к первому.
Алгоритмическое описание
- Блок открытого текста делится на две равные части:
.
- В каждом раунде вычисляются:
- где:
- i — номер раунда;
- N — количество раундов в выбранном алгоритме шифрования;
— некоторая функция;
— ключ i-1-го раунда (раундовый ключ).
Результатом выполнения раундов является
. В N-м раунде перестановка
и
не производится, чтобы была возможность использовать ту же процедуру и для расшифрования, просто инвертировав порядок использования ключей (
вместо
):
Небольшим изменением можно добиться и полной идентичности процедур шифрования и расшифрования.
Достоинства:
- обратимость алгоритма независимо от используемой функции f;
- возможность выбора сколь угодно сложной функции f.
Математическое описание
Рассмотрим пример. Пусть:
- X — блок данных, поступающий на вход (входной блок);
- A — некоторое инволютивное преобразование (или инволюция) — взаимно-однозначное преобразование, которое является обратным самому себе, то есть для каждого (∀) X справедливо выражение:
- Y — блок данных, получаемый на выходе (результат).
При однократном применении преобразования A к входному блоку X получится выходной блок Y:
При применении преобразования A к результату предыдущего преобразования — Y получится:
Пусть входной блок X состоит из двух подблоков L и R равной длины:
Определим два преобразования:
— шифрование данных X с ключом K:
— перестановка подблоков L и R:
Введём обозначения:
- однократное применение преобразования G:
- двукратное применение преобразования G:
Докажем инволютивность двукратного преобразования G ().
Несложно заметить, что преобразование G меняет только левый подблок L, оставляя правый R неизменным:
Поэтому далее будем рассматривать только подблок L. После двукратного применения преобразования G к L получим:
Таким образом:
следовательно
и G — инволюция.
Докажем инволютивность двукратного преобразования T ().
Рассмотрим процесс шифрования. Пусть:
- X — входное значение;
— преобразование с ключом
;
— выходное значение, результат i-го раунда.
Тогда преобразование, выполняемое на i+1-м раунде, можно записать в виде:
.
Преобразование, выполняемое на 1-м раунде:
Следовательно, выходное значение после m раундов шифрования будет равно:
Можно заметить, что на последнем этапе не обязательно выполнять перестановку T.
Расшифрование ведётся применением всех преобразований в обратном порядке. В силу инволютивности каждого из преобразований обратный порядок даёт исходный результат:
Функции, используемые в сетях Фейстеля
В своей работе «Криптография и компьютерная безопасность»Хорст Фейстель описывает два блока преобразований (функций ):
Можно показать, что любое двоичное преобразование над блоком данных фиксированной длины может быть реализовано в виде s-блока. В силу сложности строения N-разрядного s-блока при больших N на практике применяют более простые конструкции.
Термин «блок» в оригинальной статье используется вместо термина «функция» вследствие того, что речь идёт о блочном шифре и предполагалось, что s- и p-блоки будут цифровыми микросхемами (цифровыми блоками).


S-блок
Блок подстановок (s-блок, англ. s-box) состоит из следующих частей:
- дешифратор — преобразователь n-разрядного двоичного сигнала в одноразрядный сигнал по основанию
;
- система коммутаторов — внутренние соединения (всего возможных соединений
);
- шифратор — преобразователь сигнала из одноразрядного
-ричного в n-разрядный двоичный.
Анализ n-разрядного S-блока при большом n крайне сложен, однако реализовать такой блок на практике очень сложно, так как число возможных соединений крайне велико (). На практике блок подстановок используется как часть более сложных систем.
В общем случае s-блок может иметь несовпадающее число входов/выходов, в этом случае в системе коммутации от каждого выхода дешифратора может идти не строго одно соединение, а 2 или более или не идти вовсе. То же самое справедливо и для входов шифратора.
В электронике можно непосредственно применять приведённую справа схему. В программировании же генерируют таблицы замены. Оба этих подхода являются эквивалентными, то есть файл, зашифрованный на компьютере, можно расшифровать на электронном устройстве и наоборот.
| № комбинации | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|---|
| Вход | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
| Выход | 011 | 000 | 001 | 100 | 110 | 111 | 010 | 101 |
P-блок
Блок перестановок (p-блок, англ. p-box) всего лишь изменяет положение цифр и является линейным устройством. Этот блок может иметь очень большое количество входов-выходов, однако в силу линейности систему нельзя считать криптоустойчивой.
Криптоанализ ключа для n-разрядного p-блока проводится путём подачи на вход n-1 различных сообщений, каждое из которых состоит из n-1 нуля («0») и 1 единицы («1») (или наоборот, из единиц и нуля).
Циклический сдвиг

Можно показать, что циклический сдвиг является частным случаем p-блока.
В простейшем случае (сдвиг на 1 бит), крайний бит отщепляется и перемещается на другой конец регистра или шины. В зависимости от того какой бит берётся, правый или левый, сдвиг называется вправо или влево. Сдвиги на большее число бит можно рассматривать, как многократное применение сдвига на 1.
| Направление сдвига | Порядок следования битов до сдвига | Порядок следования битов после сдвига |
|---|---|---|
| Влево | ||
| Вправо |
Сложение по модулю n
Операция «сложение по модулю n» обозначается как
- (A + B) mod n
и представляет собой остаток от деления суммы A + B на n, где A и B — числа.
Можно показать, что сложение двух чисел по модулю n представляется в двоичной системе счисления в виде s-блока, у которого на вход подаётся число A, а в качестве системы коммутации s-блока используется циклический сдвиг влево на B разрядов.
В компьютерной технике и электронике операция сложения, как правило, реализована как сложение по модулю , где m — целое (обычно m равно разрядности машины). Для получения в двоичной системе
- A + B mod
достаточно сложить числа, после чего отбросить разряды начиная с m-го и старше.
Умножение по модулю n
Умножение по модулю n обозначается как
- (A * B) mod n
и представляет собой остаток от деления произведения A * B на n, где A и B — числа.
В персональных компьютерах на платформе x86 при перемножении двух m-разрядных чисел получается число разрядностью 2*m. Чтобы получить остаток от деления на , нужно отбросить m старших бит.
Пример реализации на языке Си
Общий вид алгоритма шифрования, использующего сеть Фейстеля:
/* Функция, выполняющая преобразование подблока с учётом значения ключа (по ключу). Реализация зависит от выбранного алгоритма блочного шифрования. */ int f ( int subblock, /* преобразуемый подблок */ int key /* ключ */ ); /* возвращаемое значение - преобразованный блок */ /* Функция, выполняющая шифрование открытого текста */ void crypt ( int * left, /* левый входной подблок */ int * right, /* правый входной подблок */ int rounds, /* количество раундов */ int * key /* массив ключей (по ключу на раунд) */ ) { int i, temp; for ( i = 0; i < rounds; i++ ) { temp = *right ^ f( *left, key[i] ); *right = *left; *left = temp; } } /* Функция, выполняющая расшифрование текста */ void decrypt ( int * left, /* левый зашифрованный подблок */ int * right, /* правый зашифрованный подблок */ int rounds, /* количество раундов */ int * key /* массив ключей (по ключу на раунд) */ ) { int i, temp; for ( i = rounds - 1; i >= 0; i-- ) { temp = *left ^ f( *right, key[i] ); *left = *right; *right = temp; } } Достоинства и недостатки
Достоинства:
- простота аппаратной реализации на современной электронной базе;
- простота программной реализации в силу того, что значительная часть функций поддерживается на аппаратном уровне в современных компьютерах (например, сложение по модулю 2 («xor»), сложение по модулю
, умножение по модулю
, и т. д.);
- хорошая изученность алгоритмов, построенных на основе сетей Фейстеля.
Недостатки:
- за один раунд шифруется только половина входного блока.
Теоретические исследования
Сети Фейстеля были широко изучены криптографами в силу их обширного распространения. В 1988 году [англ.] и [англ.] провели исследования сети Фейстеля и доказали, что если раундовая функция является криптостойкой псевдослучайной, а используемые ключи независимы в каждом раунде, то 3 раундов будет достаточно для того, чтобы блочный шифр являлся псевдослучайной перестановкой, тогда как четырёх раундов будет достаточно для того, чтобы сделать сильную псевдослучайную перестановку.
«Псевдослучайной перестановкой» Люби и Ракофф назвали такую, которая устойчива к атаке с адаптивным выбором открытого текста, а «сильной псевдослучайной перестановкой» — псевдослучайную перестановку, устойчивую к атаке с использованием выбранного шифрованного текста.
Иногда в западной литературе сеть Фейстеля называют «Luby-Rackoff block cipher» в честь Люби и Ракоффа, которые проделали большой объём теоретических исследований в этой области.
В дальнейшем, в 1997 году [англ.] и [англ.] предложили упрощённый вариант конструкции Люби — Ракоффа, состоящий из четырёх раундов. В этом варианте в качестве первого и последнего раунда используются две попарно-независимые перестановки. Два средних раунда конструкции Наора — Рейнголда идентичны раундам в конструкции Люби — Ракоффа.
Большинство же исследований посвящено изучению конкретных алгоритмов. Во многих блочных шифрах на основе сети Фейстеля были найдены те или иные уязвимости, однако в ряде случаев эти уязвимости являются чисто теоретическими и при нынешней производительности компьютеров использовать их на практике для взлома невозможно.
Модификации сети Фейстеля
При большом размере блоков шифрования (128 бит и более) реализация такой конструкции Фейстеля на 32-разрядных архитектурах может вызвать затруднения, поэтому применяются модифицированные варианты этой конструкции. Обычно используются сети с четырьмя ветвями. На рисунке показаны наиболее распространённые модификации. Также существуют схемы, в которых длины половинок и
не совпадают. Такие сети называются несбалансированными.
- Модификации сети Фейстеля
-
![image]()
Тип 1 -
![image]()
Тип 2 -
![image]()
Тип 3
Алгоритм IDEA
Источник :
| Схема одной итерации полного раунда алгоритма IDEA |
|---|
|
![]() |
В алгоритме IDEA используется глубоко модифицированная сеть Фейстеля. В нём 64-битные входные блоки данных (обозначим за ) делятся на 4 подблока длиной 16 бит
. На каждом этапе используется 6 16-битных ключей. Всего используется 8 основных этапов и 1 укороченный.
Формулы для вычисления значения подблоков на i-м раунде (для раундов c 1-го по 8-й):
- предварительные вычисления:
- финальные вычисления:
где — j-й ключ на i-м раунде.
Формула для вычисления 9-го раунда:
Выходом функции будет
Можно заметить, что s- и p-блоки в чистом виде не используются. В качестве основных операций используются:
- умножение по модулю
;
- сложение по модулю
.
Шифры на основе сети Фейстеля
Люцифер (Lucifer)



Исторически первым алгоритмом, использующим сеть Фейстеля, был алгоритм «Люцифер», при работе над которым Фейстелем и была, собственно, разработана структура, впоследствии получившая название «сеть Фейстеля». В июне 1971 года Фейстелем был получен американский патент № 3798359.
Первая версия «Люцифера» использовала блоки и ключи длиной по 48 бит и не использовала конструкцию «сеть Фейстеля». Последующая модификация алгоритма была запатентована на имя Джона Л. Смитта (англ. John Lynn Smith) в ноябре 1971 года (US Patent 3,796,830; Nov 1971), и в патенте содержится как описание собственно самой «сети Фейстеля», так и конкретной функции шифрования. В ней использовались 64-разрядные ключи и 32-битные блоки. И, наконец, последняя версия предложена в 1973 году и оперировала с 128-битными блоками и ключами. Наиболее полное описание алгоритма «Люцифер» было приведено в статье Артура Соркина (англ. Arthur Sorkin) «Люцифер. Криптографический алгоритм» («Lucifer, A Cryptographic Algorithm») в журнале «Криптология» («Cryptologia») за январь 1984.
Хотя изначальная модификация «Люцифера» обходилась без «ячеек Фейстеля», она хорошо демонстрирует то, как только применением s- и p-блоков можно сильно исказить исходный текст. Структура алгоритма «Люцифер» образца июня 1971 года представляет собой «сэндвич» из слоёв двух типов, используемых по очереди — так называемые SP-сети (или подстановочно-перестановочные сети). Первый тип слоя — p-блок разрядности 128 бит, за ним идёт второй слой, представляющий собой 32 модуля, каждый из которых состоит их двух четырёхбитных s-блоков, чьи соответствующие входы закорочены и на них подаётся одно и то же значение с выхода предыдущего слоя. Но сами блоки подстановок различны (отличаются таблицами замен). На выход модуля подаются значения только с одного из s-блоков, какого конкретно — определяется одним из битов в ключе, номер которого соответствовал номеру s-блока в структуре. Упрощённая схема алгоритма меньшей разрядности и неполным числом раундов приведена на рисунке. В ней используется 16 модулей выбора s-блоков (всего 32 s-блока), таким образом такая схема использует 16-битный ключ.
Рассмотрим теперь, как будет меняться шифротекст, в приведённом выше алгоритме, при изменении всего одного бита. Для простоты возьмём таблицы замен s-блоков такими, что если на вход s-блока подаются все нули, то и на выходе будут все нули. В силу нашего выбора s-блоков, если на вход шифрующего устройства подаются все нули, то и на выходе устройства будут все нули. В реальных системах такие таблицы замен не используются, так как они сильно упрощают работу криптоаналитика, но в нашем примере они наглядно иллюстрируют сильную межсимвольную взаимосвязь при изменении одного бита шифруемого сообщения. Видно, что благодаря первому p-блоку единственная единица сдвигается перемещается в центр блока, затем следующий нелинейный s-блок «размножает» её, и уже две единицы за счёт следующего p-блока изменяют своё положение и т. д. В конце устройства шифрования, благодаря сильной межсимвольной связи, выходные биты стали сложной функцией от входных и от используемого ключа. В среднем на выходе половина бит будет равна «0» и половина — «1».
По своей сути сеть Фейстеля является альтернативой сложным SP-сетям и используется намного шире. С теоретической точки зрения раундовая функция шифрования может быть сведена к SP-сети, однако сеть Фейстеля является более практичной, так как шифрование и дешифрование может вестись одним и тем же устройством, но с обратным порядком используемых ключей. Вторая и третья версия алгоритма (использующие сеть Фейстеля) оперировали над 32-битными блоками с 64-битным ключом и 128-битными блоками со 128-битными ключами. В последней (третьей) версии раундовая функция шифрования была устроена очень просто — сначала шифруемый подблок пропускался через слой 4-битных s-блоков (аналогично слоям в SP-сетях, только s-блок является константным и не зависит от ключа), затем к нему по модулю 2 добавлялся раундовый ключ, после чего результат пропускался через p-блок.
DES
Функция (где:
— 32-разрядный входной блок на i-й итерации;
— 48-разрядный ключ на данной итерации)
в алгоритме DES состоит из следующих операций:
- расширение входного блока L до 48 разрядов (некоторые входные разряды могут повторяться);
- Сложение по модулю 2 с ключом
:
- деление результата на 8 блоков длиной по 6 бит каждый:
- полученные блоки информации
подаются на блоки подстановок, имеющие 6-разрядные входы и 4-разрядные выходы;
- на выходе 4-битные блоки объединяются в 32-битный, который и является результатом функции
.
Полное число раундов в алгоритме DES равно 16.
«Магма»
Функция (где
и
— 32-битные числа) вычисляется следующим образом:
- складываются
и
по модулю
:
- результат разбивается на 8 4-битных блоков, которые подаются на вход 4-разрядных s-блоков (которые могут быть различными);
- выходы s-блоков объединяют в 32-битное число, которое затем сдвигается циклически на 11 битов влево;
- полученный результат является выходом функции.
Количество раундов в алгоритме ГОСТ 28147—89 равно 32.
Сравнительный список алгоритмов
Следующие блочные шифры в качестве своей основы используют классическую или модифицированную сеть Фейстеля.
| Алгоритм | Год | Число раундов | Длина ключа | Размер блока | Количество подблоков |
|---|---|---|---|---|---|
| Blowfish | 1993 | 16 | от 32 до 448 | 64 | 2 |
| Camellia | 2000 | 18/24 | 128/192/256 | 128 | 2 |
| CAST-128 | 1996 | 12/16 | 40-128 | 64 | 2 |
| CAST-256 | 1998 | 12×4=48 | 128/192/256 | 128 | 2 |
| CIPHERUNICORN-A | 2000 | 16 | 128/192/256 | 128 | 2 |
| CIPHERUNICORN-E | 1998 | 16 | 128 | 64 | 2 |
| CLEFIA | 2007 | 16 | 128/192/256 | 128 | 16 |
| DEAL | 1998 | 6 (8) | (128/192) 256 | 128 | 2 |
| DES | 1977 | 16 | 56 | 64 | 2 |
| DFC | 1998 | 8 | 128/192/256 | 128 | ? |
| FEAL | 1987 | 4-32 | 64 | 64 | 2 |
| ГОСТ 28147-89 | 1989 | 32/16 | 256 | 64 | 2 |
| IDEA | 1991 | 8+1 | 128 | 64 | 4 |
| KASUMI | 1999 | 8 | 128 | 64 | 2 |
| Khufu | 1990 | 16-32/64 | 512 | 64 | 2 |
| LOKI97 | 1997 | 16 | 128/192/256 | 128 | 2 |
| Lucifer | 1971 | 16 | 48/64/128 | 48/32/128 | 2 |
| MacGuffin | 1994 | 32 | 128 | 64 | 4 |
| MAGENTA | 1998 | 6/8 | 128/192/256 | 128 | 2 |
| MARS | 1998 | 32 | 128—1248 | 128 | 2 |
| Mercy | 2000 | 6 | 128 | 4096 | ? |
| MISTY1 | 1995 | 4×n(8) | 128 | 64 | 4 |
| Raiden | 2006 | 16 | 128 | 64 | 2 |
| RC2 | 1987 | 16+2 | 8-128 | 64 | 4 |
| RC5 | 1994 | 1-255(12) | 0-2040(128) | 32/64/128 | 2 |
| RC6 | 1998 | 20 | 128/192/256 | 128 | 4 |
| RTEA | 2007 | 48/64 | 128/256 | 64 | 2 |
| SEED | 1998 | 16 | 128 | 128 | 2 |
| Sinople | 2003 | 64 | 128 | 128 | 4 |
| Skipjack | 1998 | 32 | 80 | 64 | 4 |
| TEA | 1994 | 64 | 128 | 64 | 2 |
| Triple DES | 1978 | 32/48 | 112/168 | 64 | 2 |
| Twofish | 1998 | 16 | 128/192/256 | 128 | 4 |
| XTEA | 1997 | 64 | 128 | 64 | 2 |
| XTEA-3 | 1999 | 64 | 256 | 128 | 4 |
| XXTEA | 1998 | 12-64 | 128 | 64 | 2 |
Примечания
- Хорст Фейстель «Cryptography and computer privacy» (англ.) («Криптография и компьютерная безопасность»). Перевод Архивная копия от 11 марта 2018 на Wayback Machine Андрея Винокурова.
- Винокуров А. Статья Архивная копия от 1 апреля 2022 на Wayback Machine «Алгоритм шифрования ГОСТ 28147-89, его использование и реализация для компьютеров платформы Intel x86». Часть материалов, вошедших в данную статью, была опубликована в выпуске «#1,5/1995 год» журнала «Монитор».
- Дискретная математика. Алгоритмы. Симметричные системы и блочные шифры. Дата обращения: 21 ноября 2008. Архивировано из оригинала 5 декабря 2012 года.
- Сергей Панасенко. «Современные алгоритмы шифрования Архивная копия от 31 января 2010 на Wayback Machine» // Журнал «Byte». Выпуск № 8 (60), август 2003.
- Баричев, Гончаров, Серов, 2011.
- On the construction of pseudo-random permutation: Luby-Rackoff revisited.
- Menezes, Oorschot, Vanstone, 1996, §7.6 IDEA, pp. 263.
- U.S. Patent 3 798 359
- U.S. Patent 3 796 830
- Arthur Sorkin. Lucifer, A Cryptographic Algorithm. Cryptologia, Выпуск 8(1), Январь 1984, стр. 22—41, с дополнением в выпуске 8(3), стр. 260—261
Литература
- Баричев С. Г., Гончаров В. В., Серов Р. Е. Основы современной криптографии — 3-е изд. — М.: Диалог-МИФИ, 2011. — 176 с. — ISBN 978-5-9912-0182-7
- Menezes A. J., van Oorschot P., Vanstone S. A. Handbook of Applied Cryptography (англ.) — Boca Raton: CRC Press, 1996. — 816 p. — (Discrete Mathematics and Its Applications) — ISBN 978-0-8493-8523-0
Статья является кандидатом к лишению статуса хорошей с 3 июня 2025 года |
Википедия, чтение, книга, библиотека, поиск, нажмите, истории, книги, статьи, wikipedia, учить, информация, история, скачать, скачать бесплатно, mp3, видео, mp4, 3gp, jpg, jpeg, gif, png, картинка, музыка, песня, фильм, игра, игры, мобильный, телефон, Android, iOS, apple, мобильный телефон, Samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Сеть, компьютер, Информация о Сеть Фейстеля, Что такое Сеть Фейстеля? Что означает Сеть Фейстеля?
Set Fe jstelya ili konstrukciya Fejstelya angl Feistel network Feistel cipher odin iz metodov postroeniya blochnyh shifrov Set sostoit iz yacheek nazyvaemyh yachejkami Fejstelya Na vhod kazhdoj yachejki postupayut dannye i klyuch Na vyhode kazhdoj yachejki poluchayut izmenyonnye dannye i izmenyonnyj klyuch Vse yachejki odnotipny i govoryat chto set predstavlyaet soboj opredelyonnuyu mnogokratno povtoryayushuyusya iterirovannuyu strukturu Klyuch vybiraetsya v zavisimosti ot algoritma shifrovaniya rasshifrovaniya i menyaetsya pri perehode ot odnoj yachejki k drugoj Pri shifrovanii i rasshifrovanii vypolnyayutsya odni i te zhe operacii otlichaetsya tolko poryadok klyuchej Vvidu prostoty operacij set Fejstelya legko realizovat kak programmno tak i apparatno Ryad blochnyh shifrov DES RC2 RC5 RC6 Blowfish FEAL CAST 128 TEA XTEA XXTEA i dr ispolzuet set Fejstelya v kachestve osnovy Alternativoj seti Fejstelya yavlyaetsya podstanovochno perestanovochnaya set AES i dr IstoriyaV 1971 godu Horst Fejstel zapatentoval dva ustrojstva realizuyushih razlichnye algoritmy shifrovaniya pozzhe poluchivshie nazvanie Lyucifer angl Lucifer Odno iz etih ustrojstv ispolzovalo konstrukciyu vposledstvii nazvannuyu setyu Fejstelya angl Feistel cipher Feistel network Togda Fejstel rabotal nad sozdaniem novyh kriptosistem v stenah IBM vmeste s Donom Koppersmitom Proekt Lyucifer byl skoree eksperimentalnym no stal osnovoj dlya algoritma DES angl data encryption standard V 1973 godu zhurnal Scientific American opublikoval statyu Fejstelya Kriptografiya i kompyuternaya bezopasnost angl Cryptography and computer privacy v kotoroj raskryty nekotorye vazhnye aspekty shifrovaniya i privedeno opisanie pervoj versii proekta Lyucifer V pervoj versii proekta Lyucifer set Fejstelya ne ispolzovalas Na osnove seti Fejstelya byl sproektirovan algoritm DES V 1977 godu vlasti SShA prinyali standart FIPS 46 3 priznayushij DES standartnym metodom shifrovaniya dannyh DES nekotoroe vremya shiroko ispolzovalsya v kriptograficheskih sistemah Iterativnaya struktura algoritma pozvolyala sozdavat prostye programmnye i apparatnye realizacii Soglasno nekotorym dannym v SSSR uzhe v 1970 e gody KGB razrabatyvala blochnyj shifr ispolzovavshij set Fejstelya i veroyatno imenno etot shifr v 1990 godu byl prinyat v kachestve GOST 28147 89 V 1987 godu byli razrabotany algoritmy FEAL i RC2 Seti Fejstelya poluchili shirokoe rasprostranenie v 1990 e gody v gody poyavleniya takih algoritmov kak Blowfish 1993 TEA 1994 RC5 1994 CAST 128 1996 XTEA 1997 XXTEA 1998 RC6 1998 i drugih 2 yanvarya 1997 goda institut NIST obyavil konkurs po sozdaniyu novogo algoritma shifrovaniya dannyh prizvannogo zamenit DES Novyj blochnyj shifr poluchil nazvanie AES angl advanced encryption standard i byl utverzhdyon 26 maya 2002 goda V AES vmesto seti Fejstelya ispolzuetsya podstanovochno perestanovochnaya set Konstrukciya blochnogo shifra na osnove setej FejstelyaProstoe opisanie Shifrovanie Pust trebuetsya zashifrovat nekotoruyu informaciyu predstavlennuyu v dvoichnom vide v vide posledovatelnosti nulej i edinic i nahodyashuyusya v pamyati kompyutera ili inogo ustrojstva naprimer v fajle Algoritm shifrovaniya Informaciya razbivaetsya na bloki odinakovoj fiksirovannoj dliny Poluchennye bloki nazyvayutsya vhodnymi tak kak postupayut na vhod algoritma V sluchae esli dlina vhodnogo bloka menshe chem razmer kotoryj vybrannyj algoritm shifrovaniya sposoben zashifrovat edinovremenno razmer bloka blok udlinyaetsya kakim libo sposobom Kak pravilo dlina bloka yavlyaetsya stepenyu dvojki naprimer sostavlyaet 64 bita ili 128 bit Dalee budem rassmatrivat operacii proishodyashie tolko s odnim blokom tak kak v processe shifrovaniya s drugimi blokami vypolnyayutsya te zhe samye operacii Vybrannyj blok delitsya na dva podbloka odinakovogo razmera levyj L0 displaystyle L 0 i pravyj R0 displaystyle R 0 Pravyj podblok R0 displaystyle R 0 izmenyaetsya funkciej F s ispolzovaniem raundovogo klyucha K0 displaystyle K 0 x F R0 K0 displaystyle x F R 0 K 0 Rezultat skladyvaetsya po modulyu 2 xor s levym podblokom L0 displaystyle L 0 x x L0 displaystyle x x oplus L 0 Rezultat budet ispolzovan v sleduyushem raunde v roli pravogo podbloka R1 displaystyle R 1 R1 x displaystyle R 1 x Pravyj podblok R0 displaystyle R 0 tekushego raunda v svoem ne izmenennom na moment nachala raunda vide budet ispolzovan v sleduyushem raunde v roli levogo podbloka L1 displaystyle L 1 L1 R0 displaystyle L 1 R 0 Po kakomu libo matematicheskomu pravilu vychislyaetsya raundovyj klyuch K1 displaystyle K 1 klyuch kotoryj budet ispolzovatsya v sleduyushem raunde Perechislennye operacii vypolnyayutsya N 1 raz gde N kolichestvo raundov v vybrannom algoritme shifrovaniya Pri etom mezhdu perehodami ot odnogo raunda etapa k drugomu izmenyayutsya klyuchi K0 displaystyle K 0 zamenyaetsya na K1 displaystyle K 1 K1 displaystyle K 1 na K2 displaystyle K 2 i t d Rasshifrovanie Rasshifrovka informacii proishodit tak zhe kak i shifrovanie s tem lish isklyucheniem chto klyuchi sleduyut v obratnom poryadke to est ne ot pervogo k N mu a ot N go k pervomu Algoritmicheskoe opisanie Blok otkrytogo teksta delitsya na dve ravnye chasti L0 R0 displaystyle L 0 R 0 V kazhdom raunde vychislyayutsya Li Ri 1 f Li 1 Ki 1 displaystyle L i R i 1 oplus f L i 1 K i 1 Ri Li 1 displaystyle R i L i 1 gde i nomer raunda i 1 N displaystyle i 1 ldots N N kolichestvo raundov v vybrannom algoritme shifrovaniya f displaystyle f nekotoraya funkciya Ki 1 displaystyle K i 1 klyuch i 1 go raunda raundovyj klyuch Rezultatom vypolneniya N displaystyle N raundov yavlyaetsya LN RN displaystyle L N R N V N m raunde perestanovka LN displaystyle L N i RN displaystyle R N ne proizvoditsya chtoby byla vozmozhnost ispolzovat tu zhe proceduru i dlya rasshifrovaniya prosto invertirovav poryadok ispolzovaniya klyuchej KN KN 1 K0 displaystyle K N K N 1 ldots K 0 vmesto K0 K1 KN displaystyle K 0 K 1 ldots K N Li 1 Ri f Li Ki 1 displaystyle L i 1 R i oplus f L i K i 1 Ri 1 Li displaystyle R i 1 L i Nebolshim izmeneniem mozhno dobitsya i polnoj identichnosti procedur shifrovaniya i rasshifrovaniya Dostoinstva obratimost algoritma nezavisimo ot ispolzuemoj funkcii f vozmozhnost vybora skol ugodno slozhnoj funkcii f Matematicheskoe opisanie Rassmotrim primer Pust X blok dannyh postupayushij na vhod vhodnoj blok A nekotoroe involyutivnoe preobrazovanie ili involyuciya vzaimno odnoznachnoe preobrazovanie kotoroe yavlyaetsya obratnym samomu sebe to est dlya kazhdogo X spravedlivo vyrazhenie AAX A2X X X displaystyle AAX A 2 X X forall X Y blok dannyh poluchaemyj na vyhode rezultat Pri odnokratnom primenenii preobrazovaniya A k vhodnomu bloku X poluchitsya vyhodnoj blok Y Y AX displaystyle Y AX Pri primenenii preobrazovaniya A k rezultatu predydushego preobrazovaniya Y poluchitsya AY AAX X X displaystyle AY AAX X forall X Pust vhodnoj blok X sostoit iz dvuh podblokov L i R ravnoj dliny X L R displaystyle X L R Opredelim dva preobrazovaniya G X K displaystyle G X K shifrovanie dannyh X s klyuchom K G X K G L R K L F K R R displaystyle G X K G L R K L oplus F K R R T L R displaystyle T L R perestanovka podblokov L i R T L R R L displaystyle T L R R L Vvedyom oboznacheniya odnokratnoe primenenie preobrazovaniya G X L R GX displaystyle tilde X tilde L tilde R GX dvukratnoe primenenie preobrazovaniya G X L R G2X displaystyle tilde tilde X tilde tilde L tilde tilde R G 2 X Dokazhem involyutivnost dvukratnogo preobrazovaniya G G2 displaystyle G 2 Neslozhno zametit chto preobrazovanie G menyaet tolko levyj podblok L ostavlyaya pravyj R neizmennym L L F K R displaystyle tilde L L oplus F K R R R displaystyle tilde R R Poetomu dalee budem rassmatrivat tolko podblok L Posle dvukratnogo primeneniya preobrazovaniya G k L poluchim L L F K R L F K R L F K R F K R L displaystyle tilde tilde L tilde L oplus F K tilde R tilde L oplus F K R L oplus F K R oplus F K R L Takim obrazom G2L L displaystyle G 2 L L G2R R displaystyle G 2 R R sledovatelno G2X X displaystyle G 2 X X i G involyuciya Dokazhem involyutivnost dvukratnogo preobrazovaniya T T2 displaystyle T 2 T2X T2 L R T R L L R X displaystyle T 2 X T 2 L R T R L L R X Rassmotrim process shifrovaniya Pust X vhodnoe znachenie Gi displaystyle G i preobrazovanie s klyuchom Ki displaystyle K i Yi displaystyle Y i vyhodnoe znachenie rezultat i go raunda Togda preobrazovanie vypolnyaemoe na i 1 m raunde mozhno zapisat v vide Yi 1 TGiYi displaystyle Y i 1 TG i Y i Preobrazovanie vypolnyaemoe na 1 m raunde Y1 TG1X displaystyle Y 1 TG 1 X Sledovatelno vyhodnoe znachenie posle m raundov shifrovaniya budet ravno Ym TGmYm 1 TGmTGm 1 TG1X displaystyle Y m TG m Y m 1 TG m TG m 1 ldots TG 1 X Mozhno zametit chto na poslednem etape ne obyazatelno vypolnyat perestanovku T Rasshifrovanie vedyotsya primeneniem vseh preobrazovanij v obratnom poryadke V silu involyutivnosti kazhdogo iz preobrazovanij obratnyj poryadok dayot ishodnyj rezultat X G1TG2T Gm 1TGmT Ym G1TG2T Gm 1T Ym 1 G1T Y1 X displaystyle X G 1 TG 2 T ldots G m 1 TG m T Y m G 1 TG 2 T ldots G m 1 T Y m 1 ldots G 1 T Y 1 X Funkcii ispolzuemye v setyah Fejstelya V svoej rabote Kriptografiya i kompyuternaya bezopasnost Horst Fejstel opisyvaet dva bloka preobrazovanij funkcij f Li Ki displaystyle f L i K i blok podstanovok s blok angl s box blok perestanovok p blok angl p box Mozhno pokazat chto lyuboe dvoichnoe preobrazovanie nad blokom dannyh fiksirovannoj dliny mozhet byt realizovano v vide s bloka V silu slozhnosti stroeniya N razryadnogo s bloka pri bolshih N na praktike primenyayut bolee prostye konstrukcii Termin blok v originalnoj state ispolzuetsya vmesto termina funkciya vsledstvie togo chto rech idyot o blochnom shifre i predpolagalos chto s i p bloki budut cifrovymi mikroshemami cifrovymi blokami Principialnaya shema 3 razryadnogo s blokaPrincipialnaya shema 8 razryadnogo p blokaS blok Osnovnaya statya S bloki Blok podstanovok s blok angl s box sostoit iz sleduyushih chastej deshifrator preobrazovatel n razryadnogo dvoichnogo signala v odnorazryadnyj signal po osnovaniyu 2n displaystyle 2 n sistema kommutatorov vnutrennie soedineniya vsego vozmozhnyh soedinenij 2n displaystyle 2 n shifrator preobrazovatel signala iz odnorazryadnogo 2n displaystyle 2 n richnogo v n razryadnyj dvoichnyj Analiz n razryadnogo S bloka pri bolshom n krajne slozhen odnako realizovat takoj blok na praktike ochen slozhno tak kak chislo vozmozhnyh soedinenij krajne veliko 2n displaystyle 2 n Na praktike blok podstanovok ispolzuetsya kak chast bolee slozhnyh sistem V obshem sluchae s blok mozhet imet nesovpadayushee chislo vhodov vyhodov v etom sluchae v sisteme kommutacii ot kazhdogo vyhoda deshifratora mozhet idti ne strogo odno soedinenie a 2 ili bolee ili ne idti vovse To zhe samoe spravedlivo i dlya vhodov shifratora V elektronike mozhno neposredstvenno primenyat privedyonnuyu sprava shemu V programmirovanii zhe generiruyut tablicy zameny Oba etih podhoda yavlyayutsya ekvivalentnymi to est fajl zashifrovannyj na kompyutere mozhno rasshifrovat na elektronnom ustrojstve i naoborot Tablica zameny dlya privedyonnogo 3 razryadnogo s bloka kombinacii 0 1 2 3 4 5 6 7Vhod 000 001 010 011 100 101 110 111Vyhod 011 000 001 100 110 111 010 101P blok Blok perestanovok p blok angl p box vsego lish izmenyaet polozhenie cifr i yavlyaetsya linejnym ustrojstvom Etot blok mozhet imet ochen bolshoe kolichestvo vhodov vyhodov odnako v silu linejnosti sistemu nelzya schitat kriptoustojchivoj Kriptoanaliz klyucha dlya n razryadnogo p bloka provoditsya putyom podachi na vhod n 1 razlichnyh soobshenij kazhdoe iz kotoryh sostoit iz n 1 nulya 0 i 1 edinicy 1 ili naoborot iz edinic i nulya Ciklicheskij sdvig Osnovnye stati Bitovye operacii i Bitovyj sdvig Ciklicheskij sdvig vlevo na 3 razryada 8 bitnoj shiny Mozhno pokazat chto ciklicheskij sdvig yavlyaetsya chastnym sluchaem p bloka V prostejshem sluchae sdvig na 1 bit krajnij bit otsheplyaetsya i peremeshaetsya na drugoj konec registra ili shiny V zavisimosti ot togo kakoj bit beryotsya pravyj ili levyj sdvig nazyvaetsya vpravo ili vlevo Sdvigi na bolshee chislo bit mozhno rassmatrivat kak mnogokratnoe primenenie sdviga na 1 Ciklicheskij sdvig na m bit dlya n razryadnogo vhoda m lt n Napravlenie sdviga Poryadok sledovaniya bitov do sdviga Poryadok sledovaniya bitov posle sdvigaVlevo b0 b1 b2 bn 1 displaystyle b 0 b 1 b 2 b n 1 bm bm 1 bn 1 b0 b1 bm 1 displaystyle b m b m 1 b n 1 b 0 b 1 b m 1 Vpravo b0 b1 b2 bn 1 displaystyle b 0 b 1 b 2 b n 1 bn m bn m 1 bn 1 b0 b1 bn m 1 displaystyle b n m b n m 1 b n 1 b 0 b 1 b n m 1 Slozhenie po modulyu n Osnovnaya statya Sravnenie po modulyu Operaciya slozhenie po modulyu n oboznachaetsya kak A B mod n i predstavlyaet soboj ostatok ot deleniya summy A B na n gde A i B chisla Mozhno pokazat chto slozhenie dvuh chisel po modulyu n predstavlyaetsya v dvoichnoj sisteme schisleniya v vide s bloka u kotorogo na vhod podayotsya chislo A a v kachestve sistemy kommutacii s bloka ispolzuetsya ciklicheskij sdvig vlevo na B razryadov V kompyuternoj tehnike i elektronike operaciya slozheniya kak pravilo realizovana kak slozhenie po modulyu n 2m displaystyle n 2 m gde m celoe obychno m ravno razryadnosti mashiny Dlya polucheniya v dvoichnoj sisteme A B mod 2m displaystyle 2 m dostatochno slozhit chisla posle chego otbrosit razryady nachinaya s m go i starshe Umnozhenie po modulyu n Umnozhenie po modulyu n oboznachaetsya kak A B mod n i predstavlyaet soboj ostatok ot deleniya proizvedeniya A B na n gde A i B chisla V personalnyh kompyuterah na platforme x86 pri peremnozhenii dvuh m razryadnyh chisel poluchaetsya chislo razryadnostyu 2 m Chtoby poluchit ostatok ot deleniya na 2m displaystyle 2 m nuzhno otbrosit m starshih bit Primer realizacii na yazyke Si Obshij vid algoritma shifrovaniya ispolzuyushego set Fejstelya Funkciya vypolnyayushaya preobrazovanie podbloka s uchyotom znacheniya klyucha po klyuchu Realizaciya zavisit ot vybrannogo algoritma blochnogo shifrovaniya int f int subblock preobrazuemyj podblok int key klyuch vozvrashaemoe znachenie preobrazovannyj blok Funkciya vypolnyayushaya shifrovanie otkrytogo teksta void crypt int left levyj vhodnoj podblok int right pravyj vhodnoj podblok int rounds kolichestvo raundov int key massiv klyuchej po klyuchu na raund int i temp for i 0 i lt rounds i temp right f left key i right left left temp Funkciya vypolnyayushaya rasshifrovanie teksta void decrypt int left levyj zashifrovannyj podblok int right pravyj zashifrovannyj podblok int rounds kolichestvo raundov int key massiv klyuchej po klyuchu na raund int i temp for i rounds 1 i gt 0 i temp left f right key i left right right temp Dostoinstva i nedostatki Dostoinstva prostota apparatnoj realizacii na sovremennoj elektronnoj baze prostota programmnoj realizacii v silu togo chto znachitelnaya chast funkcij podderzhivaetsya na apparatnom urovne v sovremennyh kompyuterah naprimer slozhenie po modulyu 2 xor slozhenie po modulyu 2n displaystyle 2 n umnozhenie po modulyu 2n displaystyle 2 n i t d horoshaya izuchennost algoritmov postroennyh na osnove setej Fejstelya Nedostatki za odin raund shifruetsya tolko polovina vhodnogo bloka Teoreticheskie issledovaniyaSeti Fejstelya byli shiroko izucheny kriptografami v silu ih obshirnogo rasprostraneniya V 1988 godu angl i angl proveli issledovaniya seti Fejstelya i dokazali chto esli raundovaya funkciya yavlyaetsya kriptostojkoj psevdosluchajnoj a ispolzuemye klyuchi nezavisimy v kazhdom raunde to 3 raundov budet dostatochno dlya togo chtoby blochnyj shifr yavlyalsya psevdosluchajnoj perestanovkoj togda kak chetyryoh raundov budet dostatochno dlya togo chtoby sdelat silnuyu psevdosluchajnuyu perestanovku Psevdosluchajnoj perestanovkoj Lyubi i Rakoff nazvali takuyu kotoraya ustojchiva k atake s adaptivnym vyborom otkrytogo teksta a silnoj psevdosluchajnoj perestanovkoj psevdosluchajnuyu perestanovku ustojchivuyu k atake s ispolzovaniem vybrannogo shifrovannogo teksta Inogda v zapadnoj literature set Fejstelya nazyvayut Luby Rackoff block cipher v chest Lyubi i Rakoffa kotorye prodelali bolshoj obyom teoreticheskih issledovanij v etoj oblasti V dalnejshem v 1997 godu angl i angl predlozhili uproshyonnyj variant konstrukcii Lyubi Rakoffa sostoyashij iz chetyryoh raundov V etom variante v kachestve pervogo i poslednego raunda ispolzuyutsya dve poparno nezavisimye perestanovki Dva srednih raunda konstrukcii Naora Rejngolda identichny raundam v konstrukcii Lyubi Rakoffa Bolshinstvo zhe issledovanij posvyasheno izucheniyu konkretnyh algoritmov Vo mnogih blochnyh shifrah na osnove seti Fejstelya byli najdeny te ili inye uyazvimosti odnako v ryade sluchaev eti uyazvimosti yavlyayutsya chisto teoreticheskimi i pri nyneshnej proizvoditelnosti kompyuterov ispolzovat ih na praktike dlya vzloma nevozmozhno Modifikacii seti FejstelyaPri bolshom razmere blokov shifrovaniya 128 bit i bolee realizaciya takoj konstrukcii Fejstelya na 32 razryadnyh arhitekturah mozhet vyzvat zatrudneniya poetomu primenyayutsya modificirovannye varianty etoj konstrukcii Obychno ispolzuyutsya seti s chetyrmya vetvyami Na risunke pokazany naibolee rasprostranyonnye modifikacii Takzhe sushestvuyut shemy v kotoryh dliny polovinok L0 displaystyle L 0 i R0 displaystyle R 0 ne sovpadayut Takie seti nazyvayutsya nesbalansirovannymi Modifikacii seti Fejstelya Tip 1 Tip 2 Tip 3Algoritm IDEA Osnovnaya statya IDEA Istochnik Shema odnoj iteracii polnogo raunda algoritma IDEA V algoritme IDEA ispolzuetsya gluboko modificirovannaya set Fejstelya V nyom 64 bitnye vhodnye bloki dannyh oboznachim za X0 displaystyle X 0 delyatsya na 4 podbloka dlinoj 16 bit X0 X 0 X 1 X 2 X 3 displaystyle X 0 X 0 X 1 X 2 X 3 Na kazhdom etape ispolzuetsya 6 16 bitnyh klyuchej Vsego ispolzuetsya 8 osnovnyh etapov i 1 ukorochennyj Formuly dlya vychisleniya znacheniya podblokov na i m raunde dlya raundov c 1 go po 8 j predvaritelnye vychisleniya Ai Xi 1 0 Ki 1 Xi 1 2 Ki 3 Ki 5 displaystyle A i X i 1 0 K i 1 oplus X i 1 2 K i 3 K i 5 dd Bi Xi 1 1 Ki 2 Xi 1 3 Ki 4 Ai Ki 6 displaystyle B i X i 1 1 K i 2 oplus X i 1 3 K i 4 A i K i 6 dd Ci Xi 1 1 Ki 2 Xi 1 3 Ki 4 Xi 1 0 Ki 1 Xi 1 2 Ki 3 Ki 5 Ki 6 displaystyle C i X i 1 1 K i 2 oplus X i 1 3 K i 4 X i 1 0 K i 1 oplus X i 1 2 K i 3 K i 5 K i 6 dd finalnye vychisleniya Xi 0 Xi 1 0 Ki 1 Bi displaystyle X i 0 X i 1 0 K i 1 oplus B i dd Xi 1 Xi 1 2 Ki 3 Bi displaystyle X i 1 X i 1 2 K i 3 oplus B i dd Xi 2 Xi 1 1 Ki 2 Ai Ci displaystyle X i 2 X i 1 1 K i 2 oplus A i C i dd Xi 3 Xi 1 3 Ki 4 Ai Ci displaystyle X i 3 X i 1 3 K i 4 oplus A i C i dd gde Ki j displaystyle K i j j j klyuch na i m raunde Formula dlya vychisleniya 9 go raunda X9 0 X8 0 K9 1 displaystyle X 9 0 X 8 0 K 9 1 dd X9 1 X8 2 K9 2 displaystyle X 9 1 X 8 2 K 9 2 dd X9 2 X8 1 K9 3 displaystyle X 9 2 X 8 1 K 9 3 dd X9 3 X8 3 K9 4 displaystyle X 9 3 X 8 3 K 9 4 dd Vyhodom funkcii budet Y X9 0 X9 1 X9 2 X9 3 displaystyle Y X 9 0 X 9 1 X 9 2 X 9 3 dd Mozhno zametit chto s i p bloki v chistom vide ne ispolzuyutsya V kachestve osnovnyh operacij ispolzuyutsya umnozhenie po modulyu 216 1 65537 displaystyle 2 16 1 65537 slozhenie po modulyu 216 65536 displaystyle 2 16 65536 Shifry na osnove seti FejstelyaLyucifer Lucifer Osnovnaya statya Lucifer kriptografiya Modul vybirayushij ispolzuemuyu tablicu podstanovok po bitovomu klyuchuUproshyonnaya shema s i p sloyov v algoritme Lyucifer iyun 1971 Shema generacii i rasprostraneniya edinic Istoricheski pervym algoritmom ispolzuyushim set Fejstelya byl algoritm Lyucifer pri rabote nad kotorym Fejstelem i byla sobstvenno razrabotana struktura vposledstvii poluchivshaya nazvanie set Fejstelya V iyune 1971 goda Fejstelem byl poluchen amerikanskij patent 3798359 Pervaya versiya Lyucifera ispolzovala bloki i klyuchi dlinoj po 48 bit i ne ispolzovala konstrukciyu set Fejstelya Posleduyushaya modifikaciya algoritma byla zapatentovana na imya Dzhona L Smitta angl John Lynn Smith v noyabre 1971 goda US Patent 3 796 830 Nov 1971 i v patente soderzhitsya kak opisanie sobstvenno samoj seti Fejstelya tak i konkretnoj funkcii shifrovaniya V nej ispolzovalis 64 razryadnye klyuchi i 32 bitnye bloki I nakonec poslednyaya versiya predlozhena v 1973 godu i operirovala s 128 bitnymi blokami i klyuchami Naibolee polnoe opisanie algoritma Lyucifer bylo privedeno v state Artura Sorkina angl Arthur Sorkin Lyucifer Kriptograficheskij algoritm Lucifer A Cryptographic Algorithm v zhurnale Kriptologiya Cryptologia za yanvar 1984 Hotya iznachalnaya modifikaciya Lyucifera obhodilas bez yacheek Fejstelya ona horosho demonstriruet to kak tolko primeneniem s i p blokov mozhno silno iskazit ishodnyj tekst Struktura algoritma Lyucifer obrazca iyunya 1971 goda predstavlyaet soboj sendvich iz sloyov dvuh tipov ispolzuemyh po ocheredi tak nazyvaemye SP seti ili podstanovochno perestanovochnye seti Pervyj tip sloya p blok razryadnosti 128 bit za nim idyot vtoroj sloj predstavlyayushij soboj 32 modulya kazhdyj iz kotoryh sostoit ih dvuh chetyryohbitnyh s blokov chi sootvetstvuyushie vhody zakorocheny i na nih podayotsya odno i to zhe znachenie s vyhoda predydushego sloya No sami bloki podstanovok razlichny otlichayutsya tablicami zamen Na vyhod modulya podayutsya znacheniya tolko s odnogo iz s blokov kakogo konkretno opredelyaetsya odnim iz bitov v klyuche nomer kotorogo sootvetstvoval nomeru s bloka v strukture Uproshyonnaya shema algoritma menshej razryadnosti i nepolnym chislom raundov privedena na risunke V nej ispolzuetsya 16 modulej vybora s blokov vsego 32 s bloka takim obrazom takaya shema ispolzuet 16 bitnyj klyuch Rassmotrim teper kak budet menyatsya shifrotekst v privedyonnom vyshe algoritme pri izmenenii vsego odnogo bita Dlya prostoty vozmyom tablicy zamen s blokov takimi chto esli na vhod s bloka podayutsya vse nuli to i na vyhode budut vse nuli V silu nashego vybora s blokov esli na vhod shifruyushego ustrojstva podayutsya vse nuli to i na vyhode ustrojstva budut vse nuli V realnyh sistemah takie tablicy zamen ne ispolzuyutsya tak kak oni silno uproshayut rabotu kriptoanalitika no v nashem primere oni naglyadno illyustriruyut silnuyu mezhsimvolnuyu vzaimosvyaz pri izmenenii odnogo bita shifruemogo soobsheniya Vidno chto blagodarya pervomu p bloku edinstvennaya edinica sdvigaetsya peremeshaetsya v centr bloka zatem sleduyushij nelinejnyj s blok razmnozhaet eyo i uzhe dve edinicy za schyot sleduyushego p bloka izmenyayut svoyo polozhenie i t d V konce ustrojstva shifrovaniya blagodarya silnoj mezhsimvolnoj svyazi vyhodnye bity stali slozhnoj funkciej ot vhodnyh i ot ispolzuemogo klyucha V srednem na vyhode polovina bit budet ravna 0 i polovina 1 Po svoej suti set Fejstelya yavlyaetsya alternativoj slozhnym SP setyam i ispolzuetsya namnogo shire S teoreticheskoj tochki zreniya raundovaya funkciya shifrovaniya mozhet byt svedena k SP seti odnako set Fejstelya yavlyaetsya bolee praktichnoj tak kak shifrovanie i deshifrovanie mozhet vestis odnim i tem zhe ustrojstvom no s obratnym poryadkom ispolzuemyh klyuchej Vtoraya i tretya versiya algoritma ispolzuyushie set Fejstelya operirovali nad 32 bitnymi blokami s 64 bitnym klyuchom i 128 bitnymi blokami so 128 bitnymi klyuchami V poslednej tretej versii raundovaya funkciya shifrovaniya byla ustroena ochen prosto snachala shifruemyj podblok propuskalsya cherez sloj 4 bitnyh s blokov analogichno sloyam v SP setyah tolko s blok yavlyaetsya konstantnym i ne zavisit ot klyucha zatem k nemu po modulyu 2 dobavlyalsya raundovyj klyuch posle chego rezultat propuskalsya cherez p blok DES Osnovnaya statya DES Funkciya f Li Ki displaystyle f L i K i gde Li displaystyle L i 32 razryadnyj vhodnoj blok na i j iteracii Ki displaystyle K i 48 razryadnyj klyuch na dannoj iteracii v algoritme DES sostoit iz sleduyushih operacij rasshirenie vhodnogo bloka L do 48 razryadov nekotorye vhodnye razryady mogut povtoryatsya Slozhenie po modulyu 2 s klyuchom Ki displaystyle K i Li Li Ki displaystyle tilde L i L i oplus K i dd delenie rezultata na 8 blokov dlinoj po 6 bit kazhdyj Li Li 0 Li 1 Li 2 Li 3 Li 4 Li 5 Li 6 Li 7 displaystyle tilde L i tilde L i 0 tilde L i 1 tilde L i 2 tilde L i 3 tilde L i 4 tilde L i 5 tilde L i 6 tilde L i 7 dd poluchennye bloki informacii Li j displaystyle tilde L i j podayutsya na bloki podstanovok imeyushie 6 razryadnye vhody i 4 razryadnye vyhody na vyhode 4 bitnye bloki obedinyayutsya v 32 bitnyj kotoryj i yavlyaetsya rezultatom funkcii f Li Ki displaystyle f L i K i Polnoe chislo raundov v algoritme DES ravno 16 Magma Osnovnaya statya GOST 28147 89 Funkciya f Li Ki displaystyle f L i K i gde Li displaystyle L i i Ki displaystyle K i 32 bitnye chisla vychislyaetsya sleduyushim obrazom skladyvayutsya Li displaystyle L i i Ki displaystyle K i po modulyu 232 displaystyle 2 32 Li Li Ki mod 232 displaystyle tilde L i L i K i bmod 2 32 dd rezultat razbivaetsya na 8 4 bitnyh blokov kotorye podayutsya na vhod 4 razryadnyh s blokov kotorye mogut byt razlichnymi vyhody s blokov obedinyayut v 32 bitnoe chislo kotoroe zatem sdvigaetsya ciklicheski na 11 bitov vlevo poluchennyj rezultat yavlyaetsya vyhodom funkcii Kolichestvo raundov v algoritme GOST 28147 89 ravno 32 Sravnitelnyj spisok algoritmov Sleduyushie blochnye shifry v kachestve svoej osnovy ispolzuyut klassicheskuyu ili modificirovannuyu set Fejstelya Algoritm God Chislo raundov Dlina klyucha Razmer bloka Kolichestvo podblokovBlowfish 1993 16 ot 32 do 448 64 2Camellia 2000 18 24 128 192 256 128 2CAST 128 1996 12 16 40 128 64 2CAST 256 1998 12 4 48 128 192 256 128 2CIPHERUNICORN A 2000 16 128 192 256 128 2CIPHERUNICORN E 1998 16 128 64 2CLEFIA 2007 16 128 192 256 128 16DEAL 1998 6 8 128 192 256 128 2DES 1977 16 56 64 2DFC 1998 8 128 192 256 128 FEAL 1987 4 32 64 64 2GOST 28147 89 1989 32 16 256 64 2IDEA 1991 8 1 128 64 4KASUMI 1999 8 128 64 2Khufu 1990 16 32 64 512 64 2LOKI97 1997 16 128 192 256 128 2Lucifer 1971 16 48 64 128 48 32 128 2MacGuffin 1994 32 128 64 4MAGENTA 1998 6 8 128 192 256 128 2MARS 1998 32 128 1248 128 2Mercy 2000 6 128 4096 MISTY1 1995 4 n 8 128 64 4Raiden 2006 16 128 64 2RC2 1987 16 2 8 128 64 4RC5 1994 1 255 12 0 2040 128 32 64 128 2RC6 1998 20 128 192 256 128 4RTEA 2007 48 64 128 256 64 2SEED 1998 16 128 128 2Sinople 2003 64 128 128 4Skipjack 1998 32 80 64 4TEA 1994 64 128 64 2Triple DES 1978 32 48 112 168 64 2Twofish 1998 16 128 192 256 128 4XTEA 1997 64 128 64 2XTEA 3 1999 64 256 128 4XXTEA 1998 12 64 128 64 2PrimechaniyaHorst Fejstel Cryptography and computer privacy angl Kriptografiya i kompyuternaya bezopasnost Perevod Arhivnaya kopiya ot 11 marta 2018 na Wayback Machine Andreya Vinokurova Vinokurov A Statya Arhivnaya kopiya ot 1 aprelya 2022 na Wayback Machine Algoritm shifrovaniya GOST 28147 89 ego ispolzovanie i realizaciya dlya kompyuterov platformy Intel x86 Chast materialov voshedshih v dannuyu statyu byla opublikovana v vypuske 1 5 1995 god zhurnala Monitor Diskretnaya matematika Algoritmy Simmetrichnye sistemy i blochnye shifry neopr Data obrasheniya 21 noyabrya 2008 Arhivirovano iz originala 5 dekabrya 2012 goda Sergej Panasenko Sovremennye algoritmy shifrovaniya Arhivnaya kopiya ot 31 yanvarya 2010 na Wayback Machine Zhurnal Byte Vypusk 8 60 avgust 2003 Barichev Goncharov Serov 2011 On the construction of pseudo random permutation Luby Rackoff revisited Menezes Oorschot Vanstone 1996 7 6 IDEA pp 263 U S Patent 3 798 359 U S Patent 3 796 830 Arthur Sorkin Lucifer A Cryptographic Algorithm Cryptologia Vypusk 8 1 Yanvar 1984 str 22 41 s dopolneniem v vypuske 8 3 str 260 261LiteraturaBarichev S G Goncharov V V Serov R E Osnovy sovremennoj kriptografii 3 e izd M Dialog MIFI 2011 176 s ISBN 978 5 9912 0182 7 Menezes A J van Oorschot P Vanstone S A Handbook of Applied Cryptography angl Boca Raton CRC Press 1996 816 p Discrete Mathematics and Its Applications ISBN 978 0 8493 8523 0 Statya yavlyaetsya kandidatom k lisheniyu statusa horoshej s 3 iyunya 2025 goda





