Advanced Encryption Standard
Ezt a szócikket át kellene olvasni, ellenőrizni a szöveg helyesírását és nyelvhelyességét, a tulajdonnevek átírását. Esetleges további megjegyzések a vitalapon. |
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ása
szerkesztésAz 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- A tényleges kulcsok előállítása a nyers kulcsból a Rijndael-féle módszerrel
- Előkészítés
- AddRoundKey A mátrix minden bájtját bitenkénti XOR (kizáró vagy) művelettel módosítják a tényleges kulcs segítségével.
- Ciklusonként ismétlődő lépések.
- SubBytes—egy nemlineáris helyettesítési kódolás a Rijndael S-box szerint.
- 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.
- MixColumns—egy lépés ahol az oszlopok mind a négy bájtját kombinálják.
- AddRoundKey
- Utolsó ciklus (nincs MixColumns lépés)
- SubBytes
- ShiftRows
- AddRoundKey
A SubBytes lépés
szerkesztésEbben 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
szerkesztésA 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ésA 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
szerkesztésAz 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ág
szerkesztés2009 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 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ésA 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és
szerkeszté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ény
szerkesztésA 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ócikkek
szerkesztésMegjegyzések
szerkesztés- ↑ 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.)
- ↑ John Schwartz. „U.S. Selects a New Encryption Technique”, New York Times , 2000. október 3.
- ↑ AES Proposal: Rijndael. National Institute of Standards and Technology, 2003. szeptember 4. [2013. március 5-i dátummal az eredetiből archiválva]. (Hozzáférés: 2013. február 21.)
- ↑ Westlund, Harold B.. „NIST reports measurable success of Advanced Encryption Standard”, Journal of Research of the National Institute of Standards and Technology
- ↑ 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.
- ↑ 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.)
- ↑ 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]
- ↑ 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.)
- ↑ Sean Murphy. University of London. (Hozzáférés: 2008. november 2.)
- ↑ 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.)
- ↑ 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. [2006. november 4-i dátummal az eredetiből archiválva]. Hozzáférés: 2006. október 6.
- ↑ Bruce Schneier, AES Announced, October 15, 2000
- ↑ 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.)
- ↑ 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.)
- ↑ 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.
- ↑ Henri Gilbert; Thomas Peyrin: Super-Sbox Cryptanalysis: Improved Attacks for AES-like permutations, 2009. november 9. (Hozzáférés: 2010. március 11.)
- ↑ Andrey Bogdanov, Dmitry Khovratovich, and Christian Rechberger: Biclique Cryptanalysis of the Full AES, 2011. [2016. március 6-i dátummal az eredetiből archiválva]. (Hozzáférés: 2016. október 9.)
- ↑ a b Archivált másolat. [2012. április 21-i dátummal az eredetiből archiválva]. (Hozzáférés: 2013. november 8.)
- ↑ NIST.gov - Computer Security Division - Computer Security Resource Center. Csrc.nist.gov. (Hozzáférés: 2012. december 23.)
- ↑ a b OpenSSL, openssl@openssl.org: OpenSSL's Notes about FIPS certification. Openssl.org. [2013. január 2-i dátummal az eredetiből archiválva]. (Hozzáférés: 2012. december 23.)
Fordítás
szerkeszté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
szerkesztés- 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.
További információk
szerkesztés