Advanced Encryption Standard

A Wikipédiából, a szabad enciklopédiából
(Aes szócikkből átirányítva)

Az Advanced Encryption Standard (AES) egy módszer elektronikus adatok titkosítására. A módszert 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 kiválasztott módszer a Rijndael titkosításon[2] alapszik, melyet két belga kriptográfiai szakember, Joan Daemen és Vincent Rijmen fejlesztett ki és küldött be a szervezetnek a kiválasztásra.[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 Standard (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ú módszeré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ása[szerkesztés | forrásszöveg szerkesztése]

Az 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:

  • 10 ciklus 128 bites kulcs esetén.
  • 12 ciklus 192 bites kulcs esetén.
  • 14 ciklus 256 bites kulcs esetén.

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[szerkesztés | forrásszöveg szerkesztése]

  1. A tényleges kulcsok előállítása a nyers kulcsból a Rijndael-féle módszerrel
  2. Előkészítés
    1. AddRoundKey A mátrix minden bájtját bitenkénti xorral módosítják a tényleges kulcs segítségével.
  3. Ciklusonként ismétlődő lépések.
    1. SubBytes—egy nemlineáris helyettesítési kódolós a Rijndael S-box szerint.
    2. ShiftRows—egy keverési lépés ahol a sorokat körkörösen(tehát a sor végi elemek megjelennek a sor elején) eltolják egy meghatározott mértékkel.
    3. MixColumns—egy lépés ahol az oszlopok mind a négy bájtját kombinálják.
    4. AddRoundKey
  4. Utolsó ciklus (nincs MixColumns lépés)
    1. SubBytes
    2. ShiftRows
    3. AddRoundKey

A SubBytes lépés[szerkesztés | forrásszöveg szerkesztése]

A SubBytes szakaszban, minden bájtot lecserélnek egy helyettesítési kódolással, S; bij = S(aij).

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(2^8) multiplikatív inverzének és egy affin transzformáció segítségével készítik.

A ShiftRows lépés[szerkesztés | forrásszöveg szerkesztése]

A ShiftRows lépésben, a state mátrix sorait körkörösen eltolják balra. Az eltolás nagysága minden sorban különböző.

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[szerkesztés | forrásszöveg szerkesztése]

A MixColumns lépésben, minden oszlopot a mátrixban megszoroznak egy meghatározott polinommal c(x)-el.

A MixColumns lépésben, minden oszlop 4 bájtját módosítják egy nem 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átrixxal, ami 128 bites kulcs esetén:


\begin{bmatrix}
2 & 3 & 1 & 1 \\
1 & 2 & 3 & 1 \\
1 & 1 & 2 & 3 \\
3 & 1 & 1 & 2
\end{bmatrix}.

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-al. A együtthatók hexadecimális formában vannak. A MixColumns lépést úgy is tekinthetjük, mint szorzás egy megfelelő MDS mátrixxal egy véges testen.

Az AddRoundKey lépés[szerkesztés | forrásszöveg szerkesztése]

A AddRoundKey lépésben, minden bájt a state mátrixban össze XOR-ozásra kerül az adott lépés szubkulcsának a megfelelő bájtjával.

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(andolul: Rijndael's key schedule). A keletkező szubkulcs ugynakkora 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ág[szerkesztés | forrásszöveg szerkesztése]

2009 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) védelme érdekében is:

Az AES szerkezete és erőssége minden kulcshossz mellett(pld: 128, 192 és 256 bites kulcsokkal) megfelelő a titkos információk védelméhez, a "SECRET" kategóriáig. A "TOP SECRET" kategóriájú információkhoz 192 vagy 256-os kulcshosszra van szükség. Azok a programok amiknek az a célja, hogy titkos információkat és/vagy rendszereket védjenek az AES segítségével át kell esniük egy átvilágításon az NSA-nál.[6]

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ások[szerkesztés | forrásszöveg szerkesztése]

A 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ág-kritikus körülmények között..."[11] Egyébként 2000 októberében, az AES kiválasztási folyamat végén Bruce Schneier, a kifejlesztője egy másik algoritmusnak(Twofish) ami részt vett a versenyben, azt írta, hogy miközben elméleti törések lehetséges az algoritmussal szemben: "Nem hiszem 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éleszlenszerű 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és[szerkesztés | forrásszöveg szerkesztése]

A 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 a 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 a NIST által ellenőrzőtt módszerek listájára. Ugyanakkor ez az ellenőrzés nem elégséges sem 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 US)[20]

Teljesítmény[szerkesztés | forrásszöveg szerkesztése]

A gyorsaság és alacsony memóriaigény követelmény volt az AES kiválasztási eljárásban. Így az AES jól használható szinte minden hardwaren 8 bites smart kártyákon át nagyteljesítményű számítógépekig.

Lásd még[szerkesztés | forrásszöveg szerkesztése]

Megjegyzések[szerkesztés | forrásszöveg szerkesztése]

  1. ^ a b Announcing the ADVANCED ENCRYPTION STANDARD (AES). Federal Information Processing Standards Publication 197. United States National Institute of Standards and Technology (NIST), 2001. november 26. (Hozzáférés: 2012. október 2.)
  2. AES Proposal: Rijndael. National Institute of Standards and Technology, 2003. szeptember 4. (Hozzáférés: 2013. február 21.)
  3. John Schwartz. „U.S. Selects a New Encryption Technique”, 2000. október 3. 
  4. Westlund, Harold B.. „NIST reports measurable success of Advanced Encryption Standard”, Journal of Research of the National Institute of Standards and Technology 
  5. A mátrixokat a bemenetből úgy építik fel, hogy veszik az első 4 bájtot, ez lesz a mátrix első oszlopa, és így tovább, míg a mátrix el nem készül.
  6. Lynn Hathaway: National Policy on the Use of the Advanced Encryption Standard (AES) to Protect National Security Systems and National Security Information (PDF), 2003. június 1. (Hozzáférés: 2011. február 15.)
  7. John Kelsey, Stefan Lucks, Bruce Schneier, Mike Stay, David Wagner, and Doug Whiting, Improved Cryptanalysis of Rijndael, Fast Software Encryption, 2000 pp 213–230 [1]
  8. Is encryption really crackable?. Ziff-Davis, 2006. április 30. [2010. augusztus 7-i dátummal az eredetiből archiválva]. (Hozzáférés: 2010. augusztus 7.)
  9. Sean Murphy. University of London. (Hozzáférés: 2008. november 2.)
  10. Bruce Schneier: AES News, Crypto-Gram Newsletter, September 15, 2002. [2007. július 7-i dátummal az eredetiből archiválva]. (Hozzáférés: 2007. július 27.)
  11. Niels Ferguson, Richard Schroeppel, Doug Whiting (2001). „A simple algebraic representation of Rijndael” (PDF/PostScript). Proceedings of Selected Areas in Cryptography, 2001, Lecture Notes in Computer Science: 103–111, Springer-Verlag. Hozzáférés: 2006. október 6.. 
  12. Bruce Schneier, AES Announced, October 15, 2000
  13. Bruce Schneier: New Attack on AES. Schneier on Security, A blog covering security and security technology, 2009. július 1. [2010. február 8-i dátummal az eredetiből archiválva]. (Hozzáférés: 2010. március 11.)
  14. Biryukov, Alex; Khovratovich, Dmitry: Related-key Cryptanalysis of the Full AES-192 and AES-256, 2009. december 4. (Hozzáférés: 2010. március 11.)
  15. Distinguisher and Related-Key Attack on the Full AES-256, Advances in Cryptology – CRYPTO 2009. Springer Berlin / Heidelberg, 231–249. o. DOI:10.1007/978-3-642-03356-8_14 (2009). ISBN 978-3-642-03355-1. Hozzáférés ideje: 2010. március 11. 
  16. Henri Gilbert; Thomas Peyrin: Super-Sbox Cryptanalysis: Improved Attacks for AES-like permutations, 2009. november 9. (Hozzáférés: 2010. március 11.)
  17. Andrey Bogdanov, Dmitry Khovratovich, and Christian Rechberger: Biclique Cryptanalysis of the Full AES, 2011
  18. ^ a b http://www.cnss.gov/Assets/pdf/nstissp_11_fs.pdf
  19. NIST.gov - Computer Security Division - Computer Security Resource Center. Csrc.nist.gov. (Hozzáférés: 2012. december 23.)
  20. ^ a b OpenSSL, openssl@openssl.org: OpenSSL's Notes about FIPS certification. Openssl.org. (Hozzáférés: 2012. december 23.)

Fordítás[szerkesztés | forrásszöveg szerkesztése]

Ez 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.

Források[szerkesztés | forrásszöveg szerkesztése]

  • Nicolas Courtois, Josef Pieprzyk, "Cryptanalysis of Block Ciphers with Overdefined Systems of Equations". pp 267–287, ASIACRYPT 2002.
  • Joan Daemen, Vincent Rijmen, "The Design of Rijndael: AES – The Advanced Encryption Standard." Springer, 2002. ISBN 3-540-42580-2.
  • Christof Paar, Jan Pelzl, "The Advanced Encryption Standard", Chapter 4 of "Understanding Cryptography, A Textbook for Students and Practitioners". (companion web site contains online lectures on AES), Springer, 2009.

Külső hivatkozások[szerkesztés | forrásszöveg szerkesztése]