MADRYGA

A MADRYGA (a szerző, WE Madryga tiszteletére) egy blokk titkosítási algoritmus, amelyet V. E. Madriga hozott létre 1984-ben.

Tulajdonságok

Ezt az algoritmust úgy tervezték, hogy megkönnyítse és hatékony legyen a titkosítás szoftveren belüli megvalósítása. Az algoritmus minden műveletet bájton hajt végre.

Az algoritmus megtervezésekor a szerző a következő problémákat oldotta meg:

  1. A rejtjelezett szövegből a nyílt szöveg nem nyerhető ki kulcs segítsége nélkül (az algoritmus biztonságos);
  2. A kulcsnak a rendelkezésre álló rejtjelezett szövegből és egyszerű szövegből történő meghatározásához szükséges műveletek számának statisztikailag egyenlőnek kell lennie a titkosítási műveletek számának a lehetséges kulcsok számával való szorzatával;
  3. Az algoritmus kiemelkedősége nem befolyásolja a titkosítás erősségét;
  4. A kulcs egy bitjének változása ugyanazon nyílt szöveg esetén radikális változást kell, hogy okozzon a rejtjelezett szövegben, és a nyílt szöveg egy bitjének változása ugyanazon kulcs esetén a rejtjelezett szöveg gyökeres változását okozza;
  5. Az algoritmusnak tartalmaznia kell a helyettesítések és permutációk nem kommutatív kombinációját;
  6. Az algoritmusban használt helyettesítéseket és permutációkat mind a bemenetnek, mind a kulcsnak meg kell határoznia;
  7. A redundáns egyszerű szöveges bitcsoportokat teljesen el kell takarni a titkosított szövegben;
  8. A titkosított szöveg hosszának meg kell egyeznie a nyílt szöveg hosszával;
  9. Nem lehetnek egyszerű kapcsolatok a rejtjelezett szöveg lehetséges kulcsai és jellemzői között;
  10. Minden lehetséges kulcsnak erős titkosítást kell adnia (nem lehetnek gyenge kulcsok);
  11. A kulcs és a szöveg hossza beállítható, hogy megfeleljen a különböző biztonsági követelményeknek;
  12. Az algoritmusnak lehetővé kell tennie a hatékony szoftvermegvalósítást nagy nagyszámítógépeken , miniszámítógépeken , mikroszámítógépeken és diszkrét logikával.

A DES algoritmus teljesítette az első kilenc követelményt, de az utolsó három új lett. Lehetőséget adnak ennek az algoritmusnak a szoftveres megvalósításra.

Az algoritmus leírása

A Madryga két egymásba ágyazott hurokból áll. A külső ciklus nyolcszor ismétlődik (de ez a szám növelhető a biztonság növelése érdekében), és tartalmazza a belső ciklus egyszerű szövegre való alkalmazását. A belső ciklus a nyílt szöveget titkosított szöveggé alakítja, megismétlve a nyílt szöveg minden 8 bites blokkjára (byte-jára). Ezért az algoritmus a teljes szöveget nyolcszor egymás után feldolgozza.

A belső hurok iterációja egy 3 bájtos adatablakon működik, amelyet munkakeretnek neveznek. Ez az ablak iterációnként egy bájttal eltolódik. A munkakeret első két bájtja változó számú pozícióval van elforgatva, az utolsó bájt pedig néhány kulcsbittel XOR -re kerül. A munkakeret előrehaladtával az összes bájt egymás után „forgatásra kerül”, és a kulcs egyes részeivel XOR-re kerül. Az egymást követő forgatások keverik a korábbi XOR-ok és forgatások eredményeit, és az XOR eredménye befolyásolja a forgatást. Ez visszafordíthatóvá teszi a folyamatot.

Mivel minden adatbájt igen bájtot érint tőle balra és egy bájtot jobbra, nyolc lépés után a titkosított szöveg minden bájtja 16 bájttól függ a bal és nyolc bájttól a jobb oldalon.

A titkosítás során a belső ciklus minden egyes művelete a műveleti keretet az utolsó előtti szövegbájtra állítja, és az utolsótól balra lévő harmadik bájtig ciklikusan. A teljes kulcsot először egy véletlenszerű konstanssal XOR-ezik, majd 3 bittel balra forgatják. A munkakeret alsó bájtjának alsó három bitje megmarad, és meghatározza a maradék két bájt elforgatását. A munkakeret alsó bájtja ezután XOR-re kerül a kulcs alacsony bájtjával. Ezután a két magas bájt egyesítése változó számú bittel (0-tól 7-ig) ciklikusan balra tolódik. Végül a munkakeret egy bájttal jobbra tolódik, és az egész folyamat megismétlődik.

A véletlenszerű állandó jelentése az, hogy a kulcsot pszeudo-véletlen sorozattá alakítja. Az állandó hosszának meg kell egyeznie a kulcs hosszával. Az adatcsere során az előfizetőknek azonos hosszúságú konstansokat kell használniuk. 64 bites kulcs esetén a Madriga a 0x0f1e2d3c4b5a6978 konstanst ajánlja.

A visszafejtéskor a folyamat megfordul. A belső ciklus minden iterációja során a munkakeret a rejtjelezett szöveg utolsó bájtjának bal oldali harmadára van beállítva, és visszalép a titkosított szöveg utolsó bájtjától két bájttal balra lévő bájtra. A kulcsot és a titkosított szöveg két bájtját is jobbra forgatjuk a folyamat során, és az XOR-t a forgatások előtt hajtjuk végre.

Cryptanalysis MADRYGA

A Queenslandi Műszaki Egyetem kutatói a Madrygát és néhány más blokk-rejtjelet vizsgáltak. Azt találták, hogy ebben az algoritmusban nincs elárasztási hatás a nyílt szöveg titkosított szöveggé konvertálására. Ezenkívül sok rejtjelezett szövegben az egyesek százaléka magasabb volt, mint a nullák százaléka.

Eli Biham az algoritmus felületes megismerésével a következő következtetésekre jutott:

  1. Az algoritmus csak lineáris műveletekből áll (ciklikus eltolás és XOR), az adatoktól függően kissé módosítva
  2. Ez semmiben sem hasonlít a DES S-boxok erejéhez .
  3. A titkosított szöveg és az egyszerű szöveg összes bitjének paritása változatlan, és csak a kulcstól függ. Ezért a nyílt szöveg és a megfelelő rejtjelezett szöveg ismeretében megjósolható a rejtjelezett szöveg paritása bármely nyílt szöveg esetén.

Jegyzetek

Irodalom

Linkek