1 / 38

AES

AES. Advanced Encryption System. 1997-ben az NIST (National Institute of standards) pályázatot írt ki az AES-re Határidő: 1998. június 15. 15 pályázat érkezett Az első kört 5 javaslat élte túl: MARS, RC6, Rijndael, Serpent, Twofish 2000. október 2.: A 128 bites Rijndael lesz az AES.

jagger
Download Presentation

AES

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. AES Advanced Encryption System

  2. 1997-ben az NIST (National Institute of standards) pályázatot írt ki az AES-re • Határidő: 1998. június 15. • 15 pályázat érkezett • Az első kört 5 javaslat élte túl: MARS, RC6, Rijndael, Serpent, Twofish • 2000. október 2.: A 128 bites Rijndael lesz az AES.

  3. Az AES a kiírás szerint egy • nyilvánosan közzétett • díjmentes • világszerte terjesztett • a következő évszázadban a kormányzati dokumentumok védelmére alkalmas titkkosító algoritmus kell legyen

  4. Minimális kritériumok: • Szimmetrikus kriptorendszert valósítson meg • Blokkódoló legyen • Kezelje a 128-128, 128-192 és a 128-256 bites blokkhoszz-kulcshossz kombinációt

  5. További elvárások: • Legyen legalább olyan biztonságos mint a TDES • Legyen sokkal gyorsabb mint a TDES • A tervezőnek le kell mondania a szerzői jogokról

  6. Matematikai előismeretek • A Rijndael erősen kihasználja a test tulajdonságait • A test elemeit 7-ed fokú {0,1} együtthatós polinomokként ábrázoljuk, az összeadás a polinomok összeadásának felel meg, míg a szorzás a polinomok szorzásának modulo egy irreducibilis polinom. A kiválasztott polinom az

  7. Összeadás:

  8. Szorzás

  9. Inverz számítása • Mivel • Ezért • azaz

  10. feletti polinomok Négy byte tekinthető mint feletti harmadfokú polinom. Az és polinomok szorzata ahol

  11. Sajnos ez már nem ábrázolható 4 byte-on ezért az eredményt vesszük modulo Így a szorzásunk eredménye a alakban adható meg, ahol mivel

  12. Ez írható mátrixos alakban Mivel az polinom reducibilis felett, ezért egy rögzített polinommal való szorzás modulo nem feltétlenül invertálható művelet, de a Rijndael-ben olyan polinomot választottak, melynek van inverze.

  13. Szorzás x-szel A polinom alakú lesz, amit modulo véve adódik, azaz

  14. A Rijndael leírása Tervezők: Joan Daemen Vincent Rijmen A tervezés során figyelembe vett fő szempontok: • Ellenállás az ismert támadásokkal szemben • Gyorsaság és tömör kódolhatóság a platformok minél szélesebb körén • Egyszerű kivitel

  15. A Rijndael blokkhossza: 128, 192, 256 bit • A Rijndael kulcshossza: 128, 192, 256 bit • Mindegyik blokkhossz mindegyik kulcshosszal használható • A Rijdael nem Feistel struktúrájú blokktitksító, mivel azokban az egyes menetek során a bitek legnagyobbrészt csak összekeverednek, de nem változnak meg a bitek.

  16. A Rijndael menet-transzformációja ezzel szemben három invertálható rétegből áll • lineáris keverő réteg (ez teríti szét az információt a blokk teljes hosszában) • nem-lineáris réteg (egy S-boksz, azaz a lineáristól minél távolabb álló transzformáció) • kulcshozzáadó réteg (a menetkulcsot egyszerű EXOR-ozása az aktuális állapothoz)

  17. Részletes leírás Az állapot (state) a titkosítás köztes eredménye Legyen Nb a blokhossz 32-ed része Legyen Nk a kulcshossz 32-ed része • Ekkor az állapotot ábrázolhatjuk egy 4 sorból és Nb oszlopból álló táblázatként, ahol a táblázat minden eleme egy byte

  18. Az állapot Nb=6 esetén és a kulcs Nk=4 esetén

  19. A kezdeti állapot feltöltése a nyílt szöveggel • Az inputot 8 bites byte-ok alkotják, melyek 0-tól (4*Nb-1)-ig vannak sorszámozva • Ha ebben a számozásban a byte sorszáma n akkor a táblázatbeli kétdimenziós (i,j) indexe:

  20. A menetek száma a blokk- éskucshossz függvényében

  21. A menettranszformáció Az utolsó menet kicsit különbözik a többitől

  22. A ByteSub transzformáció A ByteSub transzformáció egy S-box, ami az állapot egy-egy byte-ján külön-külön hat. Ez egy invertálható transzformáció, mely két részből áll: • Először vesszük az inverzet -ban • Aztán alkalmazzuk az alábbi affin transzformációt:

  23. Az S-box kimenete minden byte esetén előre kiszámítható, és táblázatba foglalható • A ByteSub inverze is egy ByteSub és ugyanannyi időbe telik elvégezni. • A ByteSub és a ShiftRow sorrendje felcserélhető

  24. A ShiftRow transzformáció A ShiftRow transzformáció az állapot sorait sifteli ciklikusan. Az i-edik sort Ci-vel shifteljük, ahol Ci függ a blokkhossztól. Ci = 0.

  25. Az alábbi ábra mutatja a ShiftRow hatását az állapot sorain A ShiftRow inverze az (Nb- Ci)-vel való ciklikus bal-eltolás.

  26. A MixColumn transzformáció A MixColumn során az állapot oszlopait feletti polinomoknak tekintjük és modulo a polinommal szorozzuk, azaz a művelet alakba írható.

  27. Az alábbi ábra mutatja a MixColumn hatását az állapot sorain A MixColumn inverze polinomszorzás, egy d(x) polinommal, melyre Ez a d(x) az alábbi polinom:

  28. Az AddRoundKey transzformáció Ebben a részben adjuk hozzá a menetkulcsot az állapothoz

  29. Menetkulcsgenerálás • A szükséges menetkulcsok bitjeinek száma 32*Nb*(Nr+1) • Először a titkosító kulcsból egy kiterjesztett kulcsot generálunk, amely Nb*(Nr+1) darab 4 byte-os szóból áll. Jel: W[i] az i-edik szó. • Ebből választjuk ki a menetkulcsokat, úgy, hogy az első menetkulcs a kiterjesztett kulcs első Nb darab 4 byte-os szava, a második menetkulcs a második Nb darab, stb.

  30. Kulcskiterjesztés • A kulcskiterjesztés során a az 32*Nk bit hosszúságú titkosítókulcsból egy 32*Nb*(Nr+1) hosszúságú kiterjesztett kulcsot hozunk létre • A kiterjesztett kulcs első Nk szava a titkosítókulcs bitjeit tartalmazza • A többit az alábbi módon, rekurzívan definiáljuk

  31. Nk ≤ 6 esetén: • SubByte() a szó minden byte-jára az S-Boxot alkamazza • A RotByte() a négy szón egy szóval való ciklikus baleltolást hajt végre • Rcon(i/Nk) egy menetkonstans, amely Nk-tól függetlenül van definiálva:

  32. Nk > 6 esetén:

  33. Menetkulcskiválasztás • Az i-edik menetkucs a kiterjesztett kulcs W[Nb*i] és W[Nb*(i+1)] közötti része lesz • Például Nb=6 és Nk=4 esetén:

  34. A titkosító algoritmus • Először alkalmazunk egy kulcshozzáadást • Majd jön Nr-1 menet • Végül egy utolsó menet (amelyik kicsit különbözik a többitől)

  35. A Rijndael inverze • Ha az összes transzformáció inverzét elvégezzük fordított sorrendben, akkor visszakapjuk az eredeti szöveget. • Az inverztranszformáció a Rijndael-lel azonos struktúrjúra hozható, de ezzel nem foglalkozunk.

More Related