В криптографії, MacGuffin — симетричний блочний шифр, побудований на основі мережі Фейстеля.
Алгоритм придуманий Брюсом Шнайєром і Меттом Блейзом в 1994 році в рамках Fast Software EncryptionFast Software Encryption. І в тому ж році Вінсент Реймен і Барт Пренель показали його вразливість до диференціального криптоаналізу, також наявну в схожого шифру DES. Призначався для дослідження такої структури шифрів, як незбалансована мережа Фейстеля.
Введення Традиційно, шифри, що використовують мережу Фейстеля, ділять вхідний блок на рівні частини — ліву (цільовий блок) і праву (керуючий блок). При кожному раунді блоки міняються місцями. MacGuffin базується на структурі, в якій цільовий блок меншої довжини, ніж керуючий. Шифр оперує вхідними блоками довжиною 64 біта, де цільова частина довжиною 16 біт, а керуюча 48. Використовується 128 бітний ключ. Однак, кількість раундів і розмір ключа можуть змінюватись.
Архітектура Велика частина дизайну запозичена у DES. Вхідний не зашифрований текст розділений на 4 16 бітних слова. S-блоки запозичені у DES. Використовується 8, кожен повертає результат з 4-х біт, приймаючи 6 біт на вході. Але враховуються тільки 2 біта (сумарний результат повинен бути 16 біт). Вихід S-блоку не стає на позиції бітів, які використовуються для входу самого блоку, протягом наступних 4-х раундів. Шифр призначений для реалізації в устаткуванні або програмному забезпеченні. Перестановки вибрані так, щоб мінімізувати кількість операцій зсуву і маски.
Опис алгоритму Ключовим елементом у структурі шифру є незбалансована мережа Фейстеля. Вхідні блоки поділені на чотири регістри, по два байти кожен. У новому раунді три останніх правих блока об'єднуються в контрольний блок і складаються по модулю 2 з раундовим ключем, створеним з основного за допомогою алгоритму ключового розкладу. Отримані 48 біт розбиваються на 8 частин і стають вхідними параметрами шести S-блоків. У свою чергу, кожен S-блок перетворює 6 вхідних бітів в 2 вихідних. 16-бітовий результат S-блоків складається по модулю 2 з крайнім зліва вхідним блоком, і результат стає крайнім праворуч регістром вхідного блоку наступного раунду. Три крайні праворуч регістра поточного раунду зміщуються без змін на одну позицію вліво. Таким чином формується вхідний блок для наступного раунду.
S-блоки та перестановки Нелінійність процесу шифрування і раундових ключів забезпечується переважно восьми S-блоками, S1…S8. На вхід вибираються біти з поданих 16-бітних регістрів a, b і c. Порядок вибору визначається за таблицею 1 (біт з позицією 0 найменш значущий): + Таблиця 1. Перестановка вхідних бітS-блокивхідні біти012345S1a2a5b6b9c11c13S2a1a4b7b10c8c14S3a3a6b8b13c0c15S4a12a14b1b2c4c10S5a0a10b3b14c6c12S6a7a8b12b15c1c5S7a9a15b5b11c2c7S8a11a13b0b4c3c9
Ключовий розклад У кожному раунді шифру використовується секретний ключовий параметр, який додаванням за модулем 2 впливає на входи S-блоків. Відповідно, при кожному раунді запитується 48 біт. Для конвертації 128 біт ключа в послідовність з 48 біт, MacGuffin використовує итеріровану версію своєї функції шифрування блоків.
Криптоаналіз Як і DES, MacGuffin піддається диференціальному криптоаналізу, суть якого в аналізі ймовірностей отримання певної різниці значень функції Фейстеля при заданій різниці аргументів. Оптимальна 4-раундова характеристика має імовірність у той час, як 2-раундова DES . Таким чином, 32 раунду MacGuffin менш стійкі, ніж 16 DES.
Примітки
Література