Nemzetközi adattitkosítási algoritmus

ÖTLET összefoglaló
Tervező (k) Xuejia Lai , James Massey
Első kiadvány 1991
Származó PES
Titkosítás (ok) ezen algoritmus alapján FOX , NXT ÖTLET , Akelarre , MESH
Jellemzők
Blokk mérete (i) 64 bit
Kulcs (ok) 128 bit
Szerkezet Lai-Massey diagram
Fordulatok száma 8 kör + ½ utolsó kör

Jobb kriptanalízis

Támadás ütközés 2 24 világos szöveggel, összetettség 2 126 az IDEA 5 fordulóján.

IDEA , mert én N EMZETKÖZI D ata E nCRYPTION A lgorithm egy algoritmust a szimmetrikus titkosítási tervezte Xuejia Lai és James Massey , és írták le először 1991-ben.

Az IDEA algoritmus már szabadalmaztatta a svájci cég Mediacrypt  ; a szabadalom 2011-ben járt le Európában, és2012. januáraz Egyesült Államokban és Japánban. A Mediacrypt azóta is kiemeli2005. májusúj " IDEA NX T" nevű titkosítása,  amely valójában FOX .

Áttekintés

Az IDEA egy szimmetrikus blokkos titkosító algoritmus, amelyet az adatok titkosítására és visszafejtésére használnak. A 64 bites tiszta szöveg blokkjait manipulálja . Az adatok titkosításához egy 128 bites titkosítási kulcsot használnak (amelyet véletlenszerűen kell kiválasztani ). Ugyanaz a titkos kulcs szükséges a visszafejtésükhöz.

Mint minden blokkos titkosítás, az IDEA mind a zavart, mind a diffúziót használja . Az algoritmus abból áll, hogy ugyanazt a transzformációt nyolcszor (vagy lentebb kerekítve) alkalmazzuk, majd egy végső transzformációt (félkörnek nevezünk). Minden forduló során különböző algebrai csoportok műveleteinek kombinációját alkalmazzuk , amelyek könnyen elvégezhetők szoftveres és hardveres formában is  :

Mindezek a műveletek 16 bites alblokkokat kezelnek. Ez az algoritmus tehát még 16 bites processzorokon is hatékony.

Leírás

A titkosítandó 64 bites adatblokk 4 16 bites alblokkra oszlik: X 1 , X 2 , X 3 és X 4 . Ez a négy alblokk lesz az algoritmus nyolc fordulójának első bemenete. Minden körben a 4 alblokkot exkluzív VAGY-val kombináljuk, összeadjuk és szorozzuk egymással, valamint 6 16-bites K 1 ... K 6 -os kulccsal, amelyek a titkosítási kulcsból származnak. Minden forduló között felcserélik a második és a harmadik alblokkot. Végül a nyolcadik forduló után kapott négy blokkot az utolsó négy alkulccsal dolgozzuk fel egy végső transzformáció során.

Ezért minden körben 6 különálló 16 bites alkulcsot használunk és a végső transzformációt 4 alkulcs használatával összesen 52 alkulcsra van szükség. Az első 8 al-kulcsok veszik közvetlenül a 128-bites titkosító kulccsal, a K 1 veszik a legkevésbé szignifikáns 16 bitje. A titkosítási kulcs első 25 bites bal oldali forgatása az első 8 alkulcs kibontása után történik. Az 52 szükséges alkulcs kibontásához összesen 6 forgatásra lesz szükség.

Kerek

Minden fordulónál az események sorrendje a következő (lásd a művelet lépéseit a szemközti diagramon):

  1. többszörösen X 1 , és az első alkulcs K 1 ;
  2. add X 2 , és a második alkulcs K 2 ;
  3. add X 3 , és a harmadik alkulcs K 3 ;
  4. többszörösen X 4 és a negyedik alkulcs K 4 ;
  5. az (1) és (3) lépés eredményeinek kizárólagos VAGY kombinálása;
  6. kombinálja exkluzív VAGY vagy a (2) és (4) lépés eredményeit;
  7. szorozzuk meg az eredményt a lépésben (5) az ötödik alkulcs K 5 ;
  8. adja hozzá a (6) és (7) lépés eredményeit;
  9. szorozzuk meg az eredményt a lépésben (8), amelyet a hatodik alkulcs K 6 ;
  10. adja hozzá a (7) és (9) lépés eredményeit;
  11. az (1) és (9) lépés eredményeinek kizárólagos VAGY kombinálása;
  12. kombinálja kizárólagos VAGY vagy a (3) és (9) lépés eredményeit;
  13. kombinálja exkluzív VAGY vagy a (2) és (10) lépés eredményeit;
  14. kombinálja exkluzív VAGY a (4) és (10) lépés eredményeit.

A kör kimenetét a (11), (13), (12) és (14) lépésekkel előállított 4 alblokk alkotja. Cserélje ki a két belső alblokkot (kivéve az utolsó kört), és ezzel X ' 1 , X' 2 , X ' 3 és X' 4 kapja a következő kör bejegyzését. Ezenkívül hat új K 7 ... K 12 alkulcsot származtatunk a következő körben történő felhasználásra stb.

A nyolcadik forduló után végső átalakulás következik be a részblokkok utolsó generációján:

  1. szorozzuk meg az utolsó X ' 1 -et és a K 49 alkulcsot ;
  2. hozzá az utolsó X ' 2 , és a alkulcs K 50 ;
  3. add hozzá az utolsó X ' 3-at és a K 51 alkulcsot ;
  4. szorozzuk meg az utolsó X ' 4 és a K 52 alkulcsot .

Végül a 4 alblokkot összerakjuk, hogy kialakuljon a 64 bites titkosítási szöveg.

Külső linkek