MacGuffin (chiffer)

MacGuffin
Skapare Bruce Schneier , Matt Blaze
Skapad 1994 _
publiceras 1994.12.14
Nyckelstorlek 128 bitar
Block storlek 64 bitar
Antal omgångar 32
Sorts Feistel nätverk

Inom kryptografi är MacGuffin  ett symmetriskt blockchiffer baserat på Feistel-nätverket .

Algoritmen uppfanns av Bruce Schneier och Matt Blaze 1994 som en del av Fast Software Encryption . Och samma år visade Vincent Rayman och Bart Presnel sin sårbarhet för differentiell kryptoanalys , som också finns i det liknande DES- chifferet . Det var tänkt att studera en sådan struktur av chiffer som ett obalanserat Feistel-nätverk [1] .

Inledning

Traditionellt delar chiffer som använder Feistel-nätverket inmatningsblocket i lika delar - vänster (målblock) och höger (kontrollblock). Blocken byts ut med varje omgång . MacGuffin är baserad på en struktur där målblocket är kortare än kontrollblocket. Chifferet arbetar med ingångsblock på 64 bitar, där måldelen är 16 bitar lång och kontrolldelen är 48. En 128 bitars nyckel används. Antalet rundor och nyckelstorleken kan dock variera [2] .

Arkitektur

Mycket av designen är lånad från DES. Den okrypterade inmatade texten är uppdelad i 4 16-bitars ord. S-boxar är lånade från DES. Det finns 8 av dem, var och en returnerar ett resultat på 4 bitar och tar 6 bitar som indata. Men endast 2 bitar tas med i beräkningen (det totala resultatet bör vara 16 bitar). Utsignalen från en S-box ändras inte till positionen för de bitar som används för att gå in i samma block under de kommande 4 omgångarna. Chifferet är avsett att implementeras i hårdvara eller mjukvara. Permutationerna är valda för att minimera antalet skift- och maskoperationer. [3]

Beskrivning av algoritmen

Nyckelelementet i chiffrets struktur är det obalanserade Feistel-nätverket. Ingångsblocken är uppdelade i fyra register, två byte vardera. I den nya omgången kombineras de tre sista högra blocken till ett kontrollblock och läggs till modulo 2 med den runda nyckeln skapad från den huvudsakliga med hjälp av nyckelschemaalgoritmen . De resulterande 48 bitarna delas upp i 8 delar och blir indataparametrarna för sex S-boxar. Varje S-box omvandlar i sin tur 6 ingångsbitar till 2 utgångsbitar. 16-bitarsresultatet av S-boxarna läggs till modulo 2 till ingångsblocket längst till vänster, och resultatet blir registret längst till höger i nästa omgångs ingångsblock. De tre registren längst till höger i den aktuella omgången flyttas oförändrat en position till vänster. Detta utgör ingångsblocket för nästa omgång. [fyra]

S-boxar och permutationer

Icke-linjäriteten hos krypteringsprocessen och runda nycklar tillhandahålls huvudsakligen av åtta S-boxar, S1 ... S8 . Bitar väljs för inmatning från de givna 16-bitarsregistren a, b och c. Urvalsordningen bestäms av tabell 1 (bit med position 0 är den minst signifikanta) [5] :

Tabell 1.
Permutation av ingångsbitar
S-block inmatningsbitar
0 ett 2 3 fyra 5
S1 _ en 2 en 5 b 6 b 9 från 11 från 13
S2 _ en 1 en 4 b 7 b 10 från 8 från 14
S3 _ en 3 en 6 b 8 b 13 c 0 från 15
S4 _ en 12 en 14 b 1 b 2 c 4 från 10
S5 _ en 0 en 10: a b 3 b 14 från 6 från 12
S6 _ en 7 en 8 b 12 b 15 c 1 från 5
S7 _ en 9 en 15 b 5 b 11 c 2 från 7
S8 _ en 11 en 13 b 0 b 4 c 3 från 9

Nyckelschema

Varje omgång av chifferet använder en hemlig nyckelparameter som modulo 2 påverkar S-boxens ingångar. Följaktligen begärs 48 bitar för varje omgång. För att konvertera en 128-bitars nyckel till en 48-bitars sekvens använder MacGuffin en itererad version av sin blockkrypteringsfunktion [5] .

Kryptanalys

Precis som DES lämpar sig MacGuffin för differentiell kryptoanalys, vars essens är analysen av sannolikheterna för att få en viss skillnad i värdena för Feistel-funktionen för en given skillnad i argument. En optimal 4-rundsfunktion har sannolikheten på , medan en 2-round DES har sannolikheten på . Således är 32 MacGuffin-rundor mindre stabila än 16 DES [6] .

Anteckningar

  1. Obalanserade Feistel-nätverk och blockchifferdesign, 1996 , sid. 123.
  2. MacGuffins blockchifferalgoritm, 1994 , sid. 97.
  3. MacGuffins blockchifferalgoritm, 1994 , sid. 98.
  4. MacGuffins blockchifferalgoritm, 1994 , sid. 99.
  5. 1 2 MacGuffins blockchifferalgoritm, 1994 , sid. 100.
  6. Cryptanalysis of McGuffin, 1995 , sid. 354.

Litteratur