MacGuffin | |
---|---|
Teremtő | Bruce Schneier , Matt Blaze |
Létrehozva | 1994_ _ |
közzétett | 1994.12.14 |
Kulcsméret | 128 bites |
Blokkméret | 64 bites |
A körök száma | 32 |
Típusú | Feistel hálózat |
A kriptográfiában a MacGuffin egy szimmetrikus blokkrejtjel , amely a Feistel hálózaton alapul .
Az algoritmust Bruce Schneier és Matt Blaze találta ki 1994-ben a Fast Software Encryption részeként . Ugyanebben az évben Vincent Rayman és Bart Presnel kimutatta a differenciális kriptoanalízissel szembeni sebezhetőségét , amely szintén megtalálható a hasonló DES - rejtjelben . A rejtjelek olyan szerkezetét szándékozták tanulmányozni, mint egy kiegyensúlyozatlan Feistel-hálózat [1] .
Hagyományosan a Feistel hálózatot használó titkosítók egyenlő részekre osztják a bemeneti blokkot - balra (cél blokk) és jobbra (vezérlőblokk). A blokkokat minden körben felcseréljük. A MacGuffin olyan struktúrán alapul, amelyben a célblokk rövidebb, mint a vezérlőblokk. A titkosítás 64 bites bemeneti blokkokkal működik, ahol a célrész 16 bites, a vezérlőrész pedig 48 bites. 128 bites kulcsot használnak. A körök száma és a kulcs mérete azonban változhat [2] .
A tervezés nagy részét a DES-től kölcsönözték. A bevitt titkosítatlan szöveg 4 16 bites szóra van osztva. Az S-boxokat a DES-től kölcsönözték. 8 van belőlük, mindegyik 4 bites eredményt ad vissza, 6 bitet véve bemenetként. De csak 2 bitet vesznek figyelembe (a teljes eredménynek 16 bitnek kell lennie). Az S-box kimenete nem változik az ugyanabba a blokkba való belépéshez használt bitek pozíciójára a következő 4 körben. A titkosítást hardverben vagy szoftverben való megvalósításra szánták. A permutációk úgy vannak megválasztva, hogy minimalizálják az eltolási és maszkolási műveletek számát. [3]
A rejtjel szerkezetének kulcseleme a kiegyensúlyozatlan Feistel-hálózat. A bemeneti blokkok négy, egyenként két bájtnyi regiszterre vannak osztva. Az új körben az utolsó három jobb oldali blokkot egy vezérlőblokkba egyesítjük, és hozzáadjuk a modulo 2 -t a főből létrehozott körkulccsal a kulcsütemezési algoritmus segítségével . Az így kapott 48 bitet 8 részre osztják, és hat S-box bemeneti paramétereivé válnak. Viszont minden S-box 6 bemeneti bitet alakít 2 kimeneti bitté. Az S-boxok 16 bites eredménye a bal szélső bemeneti blokkhoz hozzáadódik a modulo 2, és az eredmény a következő kör bemeneti blokkjának jobb szélső regisztere lesz. Az aktuális kör három jobb szélső regisztere változatlanul egy pozícióval balra tolódik. Ez képezi a következő kör beviteli blokkját. [négy]
A titkosítási folyamat és a kerek kulcsok nemlinearitását elsősorban nyolc S-box, S 1 ...S 8 biztosítja . A biteket a megadott 16 bites a, b és c regiszterekből választjuk ki bemenetre. A kiválasztás sorrendjét az 1. táblázat határozza meg (a 0. pozíciójú bit a legkevésbé szignifikáns) [5] :
S-blokkok | bemeneti bitek | |||||
---|---|---|---|---|---|---|
0 | egy | 2 | 3 | négy | 5 | |
S1_ _ | a 2 | egy 5 | b 6 | b 9 | 11 -től | 13 -tól |
S2_ _ | egy 1 | egy 4 | b 7 | b 10 | 8 -tól | 14 -től |
S3_ _ | a 3 | egy 6 | b 8 | b 13 | c 0 | 15 -től |
S4_ _ | egy 12 | egy 14 | b 1 | b 2 | c 4 | 10 -től |
S5_ _ | egy 0 | egy 10 | b 3 | b 14 | 6 -tól | 12 -től |
S6_ _ | a 7 | egy 8 | b 12 | b 15 | c 1 | 5 -től |
S7_ _ | egy 9 | egy 15 | b 5 | b 11 | c 2 | 7 -től |
S8_ _ | egy 11 | a 13 | b 0 | b 4 | c 3 | 9 -től |
A titkosítás minden köre egy titkos kulcsparamétert használ, amely a modulo 2 hatással van az S-box bemeneteire. Ennek megfelelően minden körhöz 48 bitet kell kérni. A 128 bites kulcs 48 bites szekvenciává alakításához a MacGuffin a blokk titkosítási funkciójának iterált változatát használja [5] .
A DES-hez hasonlóan a MacGuffin is alkalmas a differenciális kriptoanalízisre, amelynek lényege annak a valószínűségének elemzése, hogy a Feistel-függvény értékei egy bizonyos különbséget kapjanak az argumentumok adott különbségére. Egy optimális 4 körös tulajdonság valószínűsége , míg a 2 körös DES valószínűsége . Így a 32 MacGuffin kör kevésbé stabil, mint a 16 DES [6] .
Szimmetrikus titkosítási rendszerek | |
---|---|
Rejtjelfolyam adatfolyam | |
Feistel hálózat | |
SP hálózat | |
Egyéb |