MacGuffin (cifr)

MacGuffin
Creator Bruce Schneier , Matt Blaze
Creată 1994 _
publicat 14.12.1994
Dimensiunea cheii 128 de biți
Dimensiunea blocului 64 de biți
Numărul de runde 32
Tip de Rețeaua Feistel

În criptografie , MacGuffin  este un cifru bloc simetric bazat pe rețeaua Feistel .

Algoritmul a fost inventat de Bruce Schneier și Matt Blaze în 1994, ca parte a Fast Software Encryption . Și în același an, Vincent Rayman și Bart Presnel și-au arătat vulnerabilitatea la criptoanaliza diferențială , găsită și în cifrul DES similar . S-a intenționat să se studieze o astfel de structură a cifrurilor ca o rețea Feistel dezechilibrată [1] .

Introducere

În mod tradițional, cifrurile care folosesc rețeaua Feistel împart blocul de intrare în părți egale - stânga (blocul țintă) și dreapta (blocul de control). Blocurile sunt schimbate cu fiecare rundă . MacGuffin se bazează pe o structură în care blocul țintă este mai scurt decât blocul de control. Cifrul operează cu blocuri de intrare de 64 de biți, unde partea țintă are 16 biți și partea de control este de 48. Este folosită o cheie de 128 de biți. Cu toate acestea, numărul de runde și dimensiunea cheii pot varia [2] .

Arhitectură

O mare parte din design este împrumutat de la DES. Textul necriptat introdus este împărțit în 4 cuvinte de 16 biți. S-box-urile sunt împrumutate de la DES. Sunt 8 dintre ele, fiecare returnând un rezultat de 4 biți, luând 6 biți ca intrare. Dar sunt luați în considerare doar 2 biți (rezultatul total ar trebui să fie de 16 biți). Ieșirea unei S-box nu se schimbă în poziția biților utilizați pentru a intra în același bloc pentru următoarele 4 runde. Cifrul este destinat să fie implementat în hardware sau software. Permutările sunt alese pentru a minimiza numărul de operații de schimbare și de masca. [3]

Descrierea algoritmului

Elementul cheie în structura cifrului este rețeaua Feistel dezechilibrată. Blocurile de intrare sunt împărțite în patru registre, câte doi octeți. În noua rundă, ultimele trei blocuri din dreapta sunt combinate într-un bloc de control și adăugate modulo 2 cu cheia rotundă creată din cea principală folosind algoritmul de planificare a cheilor . Cei 48 de biți rezultați sunt împărțiți în 8 părți și devin parametrii de intrare a șase casete S. La rândul său, fiecare S-box convertește 6 biți de intrare în 2 biți de ieșire. Rezultatul pe 16 biți al casetelor S este modulo 2 adăugat la blocul de intrare din stânga, iar rezultatul devine registrul din dreapta al blocului de intrare al rundei următoare. Cele trei registre din dreapta ale rundei curente sunt deplasate neschimbate cu o poziție spre stânga. Acesta formează blocul de intrare pentru runda următoare. [patru]

S-box și permutări

Neliniaritatea procesului de criptare și a cheilor rotunde este asigurată în principal de opt casete S, S 1 ... S 8 . Biții sunt selectați pentru intrare din registrele date de 16 biți a, b și c. Ordinea selecției este determinată de tabelul 1 (bitul cu poziția 0 este cel mai puțin semnificativ) [5] :

Tabelul 1.
Permutarea biților de intrare
S-blocuri biți de intrare
0 unu 2 3 patru 5
S1 _ a 2 un 5 b 6 b 9 de la 11 de la 13
S2 _ a 1 a 4 b 7 b 10 de la 8 de la 14
S3 _ a 3 a 6 b 8 b 13 c 0 de la 15
S4 _ un 12 un 14 b 1 b 2 c 4 de la 10
S5 _ un 0 un 10 b 3 b 14 de la 6 de la 12
S6 _ un 7 un 8 b 12 b 15 c 1 de la 5
S7 _ un 9 un 15 b 5 b 11 c 2 de la 7
S8 _ un 11 un 13 b 0 b 4 c 3 de la 9

Program cheie

Fiecare rundă a cifrului folosește un parametru cheie secretă care modulo 2 afectează intrările S-box. În consecință, sunt solicitați 48 de biți pentru fiecare rundă. Pentru a converti o cheie de 128 de biți într-o secvență de 48 de biți, MacGuffin folosește o versiune repetată a funcției sale de criptare bloc [5] .

Criptanaliză

La fel ca DES, MacGuffin se pretează la criptoanaliza diferențială, a cărei esență este analiza probabilităților de obținere a unei anumite diferențe în valorile funcției Feistel pentru o diferență dată de argumente. O caracteristică optimă cu 4 runde are o probabilitate de , în timp ce un DES cu 2 runde are o probabilitate de . Astfel, 32 de runde MacGuffin sunt mai puțin stabile decât 16 DES [6] .

Note

  1. Unbalanced Feistel networks and block cipher design, 1996 , p. 123.
  2. Algoritmul de cifrare în bloc MacGuffin, 1994 , p. 97.
  3. Algoritmul de cifrare în bloc MacGuffin, 1994 , p. 98.
  4. Algoritmul de cifrare în bloc MacGuffin, 1994 , p. 99.
  5. 1 2 Algoritmul de cifrare în bloc MacGuffin, 1994 , p. 100.
  6. Criptanalysis of McGuffin, 1995 , p. 354.

Literatură