Advanced Encryption Standard
Az Advanced Encryption Standard (AES) egy módszer elektronikus adatok titkosítására, melyet a U.S. National Institute of Standards and Technology által meghirdetett versenyre beküldött eljárások közül választották ki 2001-ben.[1] A titkosítást két belga kriptográfiai szakember, Joan Daemen és Vincent Rijmen fejlesztette ki, majd specifikálta.[2] A módszer eredeti, holland neve Rijndael.[3] Az AES-t számos nemzetközi szervezet használja, köztük az Amerikai Egyesült Államok jegybankja is. Az eljárás a korábbi hivatalos ajánlást, a Data Encryption Standardet (DES)-t[4] váltotta le. A korábbi ajánlás 1977-ben született. Az AES szimmetrikus kulcsú titkosítás, ami azt jelenti, hogy az adatok titkosításához ugyanazt a kulcsot használják, mint az adatok visszafejtéséhez. Az AES-t 2001. november 26-án, az Amerikai Egyesült Államok szabadalmi hivatala, a NIST hozta nyilvánosságra a U.S. FIPS PUB 197 (FIPS 197) jelzéssel ellátott dokumentumban.[1] Ezt egy 5 éves kiválasztási folyamat előzte meg, amely során 15 módszer közül választották ki a végül elfogadott Rijndael titkosítást. 2002-ben az amerikai kormány első számú titkosításává vált. Az AES az ISO/IEC 18033-3 szabvány része. Az eljárás elérhető a legtöbb titkosítással foglalkozó szoftverben. Ez volt az első olyan széles körben nyilvánosságra hozott módszer, amit az amerikai National Security Agency (NSA) elfogadott mint titkos információk titkosítására használható eljárást. A Rijndael név a készítők (Joan Daemen és Vincent Rijmen) nevének összevonása. Hivatalosan AES-nek csak a Rijndael kódolás azon változatát tekinthetjük, ahol a blokkméret 128 bit. A titkosítás leírásaAz AES a Rijndael kódolás olyan változata, ahol a blokkméret szigorúan 128 bit, a kulcs pedig 128, 192 vagy 256 bit. Összehasonlításként a Rijndael kódolásban a blokkméret és a kulcsméret is lehet 32 bit tetszőleges többszöröse azzal a kikötéssel, hogy mind a kulcs, mind a blokkméret minimum 128 és maximum 256 bit lehet. Az AES 4x4-es mátrixokat[5] használ a titkosítás során, habár más blokkméret esetén más a mátrix mérete is. A kulcsméret meghatározza, hogy a bemeneti információt hány átalakítási ciklus éri, míg eléri a „végleges” titkosított állapotát. A titkosítási ciklusok száma a következőképpen alakul:
Minden ciklus számos lépést foglal magába, ezek között van az a lépés is, ami kulcs alapján módosítja a mátrixot. A visszaalakítás során ugyanennyi ellentétes ciklust hajtanak végre a kulcs segítségével. Az eljárás részletes leírása
A SubBytes lépés![]() Ebben a lépésben minden bájtot a state mátrixban lecserélnek egy 8 bites helyettesítési tábla, a Rijndael S-box segítségével. Ez a művelet biztosítja, hogy a szöveg nemlineáris lesz a kódolási szakaszban. Hogy az egyszerű algebrai tulajdonságokra támaszkodó támadásokat kiküszöböljék, az S-boxot egy Galois test(28) multiplikatív inverzének és egy affin transzformáció segítségével készítik. A ShiftRows lépés![]() A ShiftRows lépés a mátrix sorait módosítja, körkörös eltolással. Minden sort egy meghatározott, de soronként különböző mértékben eltolják. Az AES-ben az első sor változatlan marad ebben a lépésben. A második sor minden bájtját egyszeresen tolják balra. Hasonlóan, a harmadik és a negyedik sort 2 illetve 3 bájttal tolják balra. 128 és 192 bites blokkokban az eltolás megegyezik. Az n. sort n-1 bájttal tolják el. Így minden oszlop a ShiftRows lépés után csak azokból a bájtokból áll, amiket a transzformáció előtt is tartalmazott az adott sor. (Nagyobb Rijndael blokkméret esetén az eltolás más módszerrel történik). 256 bites blokkméret esetében az első sor változatlan marad, míg a 2., 3., 4. esetében az eltolás 1 bájt, 3 bájt és 4 bájt. Ez a módszer csak 256 blokkméret esetében alkalmazandó. Emlékeztetőül: az AES nem támogatja a 256 blokkméretet. A MixColumns lépés![]() A MixColumns lépésben minden oszlop 4 bájtját módosítják egy invertálható lineáris transzformáció szerint. A MixColumns lépésben a bemeneti információ a 4 bájt, a kimenet pedig 4 bájt, ahol bármely bájt megváltozása a bemenetben a teljes kimenetet megváltoztatja. A ShiftRows és a MixColumns lépések együtt biztosítják a véletlennek látszó kimenetet. Ez alatt a lépés alatt minden oszlop megszorzásra kerül egy előre meghatározott mátrixszal, ami 128 bites kulcs esetén: Az 1-gyel való szorzás nem változtat, a 2-vel való szorzást most úgy kell értelmezni mint eltolást balra (lásd a képet), a 3-mal való szorzás eltolás balra, majd xor művelet az eredeti el nem tolt értékkel. Az eltolás után, ha a keletkezett érték 0xFF-nél nagyobb, akkor még egy xor-t kell elvégezni az eredménnyel és a 0x11B értékkel. Általánosabban: minden oszlopot úgy kezelünk mint egy polinomot GF(28) felett és aztán ezt szorozzuk meg egy meghatározott polinommal c(x) = 0x03 · x3 + x2 + x + 0x02 modulus x4+1-gyel. Az együtthatók hexadecimális formában vannak. A MixColumns lépést úgy is tekinthetjük, mint szorzást egy megfelelő MDS mátrixxal egy véges testen. Az AddRoundKey lépés![]() Az AddRoundKey lépésben a szubkulcsot összekombinálják a state mátrixxal. Minden ilyen lépésben a szubkulcsot az eredeti kulcsból állítják elő a Rijndael-féle szubkulcs-előállító algoritmussal (angolul: Rijndael's key schedule). A keletkező szubkulcs ugyanakkora, mint a state mátrix. A szubkulcs megfelelő bájtját és a state mátrix megfelelő bájtját össze XOR-ozzák, így kapják meg a state mátrix új bájtjait. Biztonság2009 májusáig az egyetlen sikeres publikált támadás a teljes AES ellen egy specifikus támadás bizonyos implementációk ellen. Az NSA átnézte az AES összes végső jelöltjét, beleértve a Rijndael titkosítást és úgy találta, hogy mindegyik megfelelő az USA kormánynak a nem-titkosított (jogi értelemben) adatok titkosítására. 2003 júniusában az USA kormánya is bejelentette, hogy az AES használható a titkosított információk (jogi értelemben vett) védelme érdekében is:
Az AES 128 bites kulcs esetén 10 ciklusból áll, 192 bites kulcs esetén 12 ciklusból áll és 256 bites kulcs esetén 14 ciklusból. 2006-ban a legjobb ismert támadások a 7 ciklusos 128 bites, 8 ciklusos 192 bites és a 9 ciklusos 256 bites titkosítást támadták.[7] Ismert támadásokA kriptográfusok a "kriptográfiai törésen" egy olyan eljárást értenek, ami gyorsabb, mint a brute force, vagyis gyorsabb, mint kipróbálni minden lehetséges kulcsot. Ebbe a meghatározásba beletartoznak olyan a brute force-nál jobb eljárások is, amik a gyakorlatban nem valósíthatóak meg a jelenlegi technológiával. 2006-ban a legnagyobb sikeres brute force-os törés, ami nyilvánosságra került, bármilyen block alapú titkosítással szemben egy 64 bites RC5-ös feltörése.[8] Az AES viszonylag könnyen leírható algebrailag.[9] 2002-ben egy elméleti törés, az "XSL" látott napvilágot Nicolas Courtois és Josef Pieprzyk tollából, aminek az volt a célja, hogy bemutassa az AES azon gyengeségeit, amik ebből az egyszerű leírhatóságból következnek.[10] Azóta más tanulmányok megmutatták, hogy az eredeti XSL támadás a gyakorlatban működésképtelen. Az AES kiválasztási folyamata alatt más algoritmusok kifejlesztői ezt írták a Rijndaelről: "... meggyőző a hatásossága ... a biztonságkritikus körülmények között..."[11] Egyébként 2000 októberében, az AES kiválasztási folyamatának végén Bruce Schneier, egy másik olyan algoritmusnak (Twofish) a kifejlesztője, amely részt vett a versenyben, azt írta, hogy miközben elméleti törések lehetségesek az algoritmussal szemben: "Nem hiszem, hogy valaha is bárki fölfedezne egy olyan támadást, ami a gyakorlatban képessé tenné, hogy Rijndael titkosított adatforgalmat hallgasson le."[12] 2009. július 1-jén Bruce Scheier írt a blogjában[13] egy támadási módról, ami a 192 bites és a 256 bites verziókat érintette, és amit Alex Biryukov és Dmitry Khovratovich,[14] fedezett fel. Ez a módszer azt használja ki, hogy az AES a kulcsokat elkészíti és a komplexitása 2119. Decemberre ezt a módszert 299.5-es komplexitásúra javították. A módszer egy korábban felfedezett eljárást fejlesztett tovább amit 2009 elején fedezett fel Alex Biryukov, Dmitry Khovratovich, és Ivica Nikolić. Ennek 296 a komplexitása minden 235. kulcsra.[15] 2009 novemberében lett ismert az első olyan támadás, ami meg tudja különböztetni a véletlenszerű adatokat az AES-el kódolt adatoktól. Ez a módszert egy egyszerűsített 8 ciklusos AES-128-as ellen működik.[16] Az első olyan támadások, amelyek megszerzik a titkosító kulcsot, Andrey Bogdanov, Dmitry Khovratovich és Christian Rechbergertől származnak és 2011-ben jelentek meg.[17] NIST/CSEC ellenőrzésA Cryptographic Module Validation Program (CMVP) az Amerikai Egyesült Államok National Institute of Standards and Technology (NIST) nevű szervezetének Computer Security részlegének és Kanada Communications Security Establishment (CSE) szervezetének programja. A titkosítást, amit az USA rendelt meg, a szabályok szerint olyan adatok titkosítására használhatja az Egyesült Államok, amik titkosítási besorolása érzékeny (Sensitive), de nem titkos (Unclassified (SBU)) vagy szigorúbb. A NSTISSP #11 alapján: "Az olyan titkosítások, amiket a titkos minősítésű adatok védelmére használnak, az NSA-nak kell ellenőriznie és az ilyen titkosítás megkapja a NIST FIPS 140-2 szerinti minősítést."[18] A kanadai kormány szintén azt javasolja, hogy a titkosítást a kormánylétesítmények ne használják titkos adatok védelmére. A Cryptographic Algorithm Validation Program (CAVP)[19] lehetővé teszi, hogy egy adott implementációt az NIST ellenőrizzen, viszont ennek a költsége nagy. Egy ilyen ellenőrzés azt eredményezi, hogy az adott implementáció felkerült az NIST által ellenőrzött módszerek listájára. Ugyanakkor ez az ellenőrzés nem elégséges sem az NSA-ellenőrzés, sem a FIPS 140-2 minősítés pótlására, tehát az USA kormánya nem használhatja ezeket titkos adatok védelmére.[18] FIPS 140-2 minősítés kihívást jelent mind technikailag, mind fizikailag.[20] Egy ilyen teszt jól meghatározott részekből áll, mint pl.: a forráskód megvizsgálása. Az eljárás költsége magas lehet (több mint 30,000 USD)[20] TeljesítményA gyorsaság és alacsony memóriaigény követelmény volt az AES kiválasztási eljárásában. Így az AES jól használható szinte minden hardveren 8 bites smart kártyákon át a nagyteljesítményű számítógépekig. Kapcsolódó szócikkekMegjegyzések
FordításEz a szócikk részben vagy egészben az Advanced Encryption Standard című angol Wikipédia-szócikk fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként. Források
További információk
|
Portal di Ensiklopedia Dunia