MacGuffin (шифр)
Шаблон:Картка блочного шифру В криптографії, MacGuffin — симетричний блочний шифр, побудований на основі мережі Фейстеля.
Алгоритм придуманий Брюсом Шнайєром і Меттом Блейзом в 1994 році в рамках Fast Software EncryptionFast Software Encryption. І в тому ж році Вінсент Реймен і Барт Пренель показали його вразливість до диференціального криптоаналізу, також наявну в схожого шифру DES. Призначався для дослідження такої структури шифрів, як незбалансована мережа ФейстеляШаблон:Sfn.
Введення
Традиційно, шифри, що використовують мережу Фейстеля, ділять вхідний блок на рівні частини — ліву (цільовий блок) і праву (керуючий блок). При кожному раунді блоки міняються місцями. MacGuffin базується на структурі, в якій цільовий блок меншої довжини, ніж керуючий. Шифр оперує вхідними блоками довжиною 64 біта, де цільова частина довжиною 16 біт, а керуюча 48. Використовується 128 бітний ключ. Однак, кількість раундів і розмір ключа можуть змінюватисьШаблон:Sfn.
Архітектура
Велика частина дизайну запозичена у DES. Вхідний не зашифрований текст розділений на 4 16 бітних слова. S-блоки запозичені у DES. Використовується 8, кожен повертає результат з 4-х біт, приймаючи 6 біт на вході. Але враховуються тільки 2 біта (сумарний результат повинен бути 16 біт). Вихід S-блоку не стає на позиції бітів, які використовуються для входу самого блоку, протягом наступних 4-х раундів. Шифр призначений для реалізації в устаткуванні або програмному забезпеченні. Перестановки вибрані так, щоб мінімізувати кількість операцій зсуву і маски.Шаблон:Sfn
Опис алгоритму
Ключовим елементом у структурі шифру є незбалансована мережа Фейстеля. Вхідні блоки поділені на чотири регістри, по два байти кожен. У новому раунді три останніх правих блока об'єднуються в контрольний блок і складаються по модулю 2 з раундовим ключем, створеним з основного за допомогою алгоритму ключового розкладуШаблон:Iw. Отримані 48 біт розбиваються на 8 частин і стають вхідними параметрами шести S-блоків. У свою чергу, кожен S-блок перетворює 6 вхідних бітів в 2 вихідних. 16-бітовий результат S-блоків складається по модулю 2 з крайнім зліва вхідним блоком, і результат стає крайнім праворуч регістром вхідного блоку наступного раунду. Три крайні праворуч регістра поточного раунду зміщуються без змін на одну позицію вліво. Таким чином формується вхідний блок для наступного раунду.Шаблон:Sfn
S-блоки та перестановки
Нелінійність процесу шифрування і раундових ключів забезпечується переважно восьми S-блоками, S1…S8. На вхід вибираються біти з поданих 16-бітних регістрів a, b і c. Порядок вибору визначається за таблицею 1 (біт з позицією 0 найменш значущий)Шаблон:Sfn:
| S-блоки | вхідні біти | |||||
|---|---|---|---|---|---|---|
| 0 | 1 | 2 | 3 | 4 | 5 | |
| S1 | a2 | a5 | b6 | b9 | c11 | c13 |
| S2 | a1 | a4 | b7 | b10 | c8 | c14 |
| S3 | a3 | a6 | b8 | b13 | c0 | c15 |
| S4 | a12 | a14 | b1 | b2 | c4 | c10 |
| S5 | a0 | a10 | b3 | b14 | c6 | c12 |
| S6 | a7 | a8 | b12 | b15 | c1 | c5 |
| S7 | a9 | a15 | b5 | b11 | c2 | c7 |
| S8 | a11 | a13 | b0 | b4 | c3 | c9 |
Ключовий розклад
У кожному раунді шифру використовується секретний ключовий параметр, який додаванням за модулем 2 впливає на входи S-блоків. Відповідно, при кожному раунді запитується 48 біт. Для конвертації 128 біт ключа в послідовність з 48 біт, MacGuffin використовує итеріровану версію своєї функції шифрування блоківШаблон:Sfn.
Криптоаналіз
Як і DES, MacGuffin піддається диференціальному криптоаналізу, суть якого в аналізі ймовірностей отримання певної різниці значень функції Фейстеля при заданій різниці аргументів. Оптимальна 4-раундова характеристика має імовірність у той час, як 2-раундова DES . Таким чином, 32 раунду MacGuffin менш стійкі, ніж 16 DESШаблон:Sfn.