Мережа Фейстеля

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

Мережа Фе́йстеля (конструкція Фейстеля) — різновид блочного шифру з певною ітеративною структурою. Багато сучасних алгоритмів використовують мережу Фейстеля у якості основи.

Історія[ред.ред. код]

В 1973 році Хорст Фейстель (англ. Horst Feistel) в журналі Scientific American опублікував статтю «Криптографія і комп'ютерна безпека»(«Cryptography and Computer Privacy»), в якій розкрив деякі важливі аспекти шифрування, а також ввів конструкцію, названу пізніше мережею Фейстеля. Ця схема була використана в проекті Lucifer фірми IBM, над яким працював Фейстель і Дон Коперсміт (Don Coppersmith). Цей проект був скоріше експериментальним, але став базисом для DES. Ітеративна структура алгоритма дозволяла спростити його реалізацію в апаратному серидовищі.

Конструкія[ред.ред. код]

Шифрування
Розшифрування
  • блок відкритого тексту ділиться на 2 рівні частини (L_0,\  R_0)
  • в кожному раунді вираховується (i=1\ldots n — номер раунду)

L_i\ =\ R_{i-1}\oplus f(L_{i-1},K_{i-1})
R_i\ =\ L_{i-1},

де f — деяка функція, а K_{i-1} — ключ i-го раунду. Результатом виконання n раундів є (L_n,\  R_n). Але зазвичай в n-му раунді перестановка L_n і R_n не виконуються, що дозволяє використовувати ту ж процедуру і для розшифрування, просто інвертувавши порядок використання раундової ключової інформації:

L_{i-1}\ =\ R_{i}\oplus f(L_{i},\ K_{i-1})
R_{i-1}\ =\ L_i,

Невеликі зміни дозволяють досягнути повної ідентичності процеду шифрування та розшифрування. Одною із переваг такої моделі є застосовність алгоритму незалежно від функції f, і вона може бути довільної складності.

Модификації мережі Фейстеля[ред.ред. код]

При великому розмірі блоків шифрування (128 біт і більше) реалізація такої мережі Фейстеля на 32-розрядних архітектурах може викликати складнощі, тому використовуються модифіковані варіанти цієї конструкції. В звичайних ситуаціяї використовуються мережі з 4 гілками. На малюнку показано найбільш розповсюджені модифікації. Також існують схеми, в яких довжини половинок L_0 і R_0 не збігаються. Вони називаються незбалансованими.

Шифри на основі мережі Фейстеля[ред.ред. код]

Такі шифри використовують класичну або модифіковану мережу Фейстеля у своїй основі:

Посилання[ред.ред. код]