Kriptográfia Ötödik előadás Az AES

Hasonló dokumentumok
Kriptográfia Tizedik előadás SHA, Whirlpool, HMAC és CMAC

Kriptográfia Negyedik előadás A DES

Kriptográfia I. Kriptorendszerek

Sapientia Egyetem, Műszaki és Humántudományok Tanszék.

Kriptográfia Nyolcadik előadás Blokktitkosítók működési módjai, folyamtitkosítók

Kriptográfia Kilencedik előadás A hitelesítésről általában

Kriptográfia Harmadik előadás Klasszikus titkosítások II

Kriptográfia Hatodik előadás Nyilvános kulcsú kriptográfia I. Az RSA

Kriptográfia Hetedik előadás Nyilvános kulcsú kriptográfia II. Kulcsgondozás és további nyilvános kulcsú rendszerek

Kriptográfia Első előadás A kriptográfiáról általában

AES kriptográfiai algoritmus

Hálózati biztonság ( ) Kriptográfia ( )

Harmadik elıadás Klasszikus titkosítások II.

Best of Criptography Slides

Sapientia Egyetem, Matematika-Informatika Tanszék.

Konzulensek: Mikó Gyula. Budapest, ősz

Webalkalmazás-biztonság. Kriptográfiai alapok

Hírek kriptográfiai algoritmusok biztonságáról

Sapientia Egyetem, Matematika-Informatika Tanszék.

Kriptográfia Tizenegyedik előadás Digitális aláírások, kölcsönös és egyirányú hitelesítés, a DSA

DÉRI MIKSA PROGRAM. magyar részvr DERI_EUREKA_07. Budapest, 2007.

Sapientia Egyetem, Műszaki és Humántudományok Tanszék.

Műveletek mátrixokkal. Kalkulus. 2018/2019 ősz

Modern szimmetrikus kulcsú rejtjelezők kriptoanalízise

Kriptográfiai alapfogalmak

Diplomamunka. Miskolci Egyetem. GPGPU technológia kriptográfiai alkalmazása. Készítette: Csikó Richárd VIJFZK mérnök informatikus

Informatikai biztonság alapjai

PROJEKTTERVEZÉS. Page 1. A program definíci. A projekt definíci. Olyan egymásra melynek minden eleme, 1Art. 2Art. 3Art

Készítette: Fuszenecker Róbert Konzulens: Dr. Tuzson Tibor, docens

Rekord adattípus. Egymásba ágyazott rekordok. With utasítás. Változó rekord. Rekord konstans

VEZETÉK NÉLKÜLI HÁLÓZATOK TITKOSÍTÁSA

Adat és Információvédelmi Mesteriskola 30 MB. Dr. Beinschróth József SAJÁTOS LOGIKAI VÉDELEM: A KRIPTOGRÁFIA ALKALMAZÁSA

Kvantuminformatikai alapismeretek összefoglalása

az Excel for Windows programban

AES Balogh Csaba

REJTJELZŐ MÓDSZEREK VIZSGÁLATA

Sapientia Egyetem, Műszaki és Humántudományok Tanszék.

Sapientia Egyetem, Matematika-Informatika Tanszék.

Adatbiztonság. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Adatbiztonság / 22

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

megoldásai a Trimble 5503 DR

Dr. Illés Zoltán

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás)

Titkosítás NetWare környezetben

Adatvédelem titkosítással

STATISZTIKA. ( x) 2. Eloszlásf. 9. gyakorlat. Konfidencia intervallumok. átlag. 45% 40% 35% 30% 25% 20% 15% 10% 5% 0% (cm)

Projekttervezési. Sikeres projekt ismérvei ELEMZÉSI SZAKASZ. Projekttervezési technikák, k, lnak. Meggyőző

Digitális technika II. (vimia111) 5. gyakorlat: Tervezés adatstruktúra-vezérlés szétválasztással, vezérlőegység generációk

Sapientia Egyetem, Matematika-Informatika Tanszék.

egy szisztolikus példa

Waldhauser Tamás december 1.

Diszkrét matematika I., 12. előadás Dr. Takách Géza NyME FMK Informatikai Intézet takach november 30.

Diszkrét matematika 2.

Programozás alapjai. 10. előadás

Diszkrét matematika I.

Digitális technika VIMIAA01

The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003

Komplex munkaerőpiaci integráci. ciós s programok magyarországi gi tapasztalatai. Kellermann Éva csadó január r 31.

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

dolás, felbontható kód Prefix kód Blokk kódk Kódfa

Vektorterek. Wettl Ferenc február 17. Wettl Ferenc Vektorterek február / 27

ERLANG PROGRAMOK TRANSZFORMÁCI CIÓJA ERLANG

Táblázatkezelés (Excel)

Inkluzív nevelés tantárgypedagógiája. Gyakorlati jegy

Eszterházy Károly Főiskola Matematikai és Informatikai Intézet. Kriptográfia. Liptai Kálmán. Eger, 2011.

Simon Balázs Dr. Goldschmidt Balázs Dr. Kondorosi Károly. BME, Irányítástechnika és Informatika Tanszék

TANÚSÍTVÁNY. tanúsítja, hogy a Polysys Kft. által kifejlesztett és forgalmazott

IP alapú távközlés. Virtuális magánhálózatok (VPN)

Bevezetés s a szemantikus technológi

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

8. Előadás. Megyesi László: Lineáris algebra, , oldal. 8. előadás Mátrix rangja, Homogén lineáris egyenletrendszer

Videó titkosítása. BME - TMIT VITMA378 - Médiabiztonság feher.gabor@tmit.bme.hu

Kiegészítő részelőadás 1. Az algoritmusok hatékonyságának mérése

Miskolci Egyetem. Diszkrét matek I. Vizsga-jegyzet. Hegedűs Ádám Imre

Kódolás, hibajavítás. Tervezte és készítette Géczy LászlL. szló 2002

Bevezetés a programozásba. 12. Előadás: 8 királynő

Lineáris Algebra gyakorlatok


Adatbiztonság PPZH május 20.

Bázistranszformáció és alkalmazásai 2.

Társadalmi Megújul. felsőoktat. oktatásban

Sapientia Egyetem, Matematika-Informatika Tanszék.

Assembly programozás: 2. gyakorlat

Adatelérés és memóriakezelés

Titkosítási rendszerek CCA-biztonsága

2. Előadás. rendszerek. Dr. Németh L. Zoltán

Hadamard-mátrixok Előadó: Hajnal Péter február 23.

A Markowitz modell: kvadratikus programozás

A 32 bites x86-os architektúra regiszterei

Lineáris egyenletrendszerek

5 = hiszen és az utóbbi mátrix determinánsa a középs½o oszlop szerint kifejtve: 3 7 ( 2) = (példa vége). 7 5 = 8. det 6.

Lineáris algebra 2. Filip Ferdinánd december 7. siva.banki.hu/jegyzetek

Adatszerkezetek 2. Dr. Iványi Péter

Vezetéknélküli technológia

A Z E L E K T R O N I K U S A L Á Í R Á S J O G I S Z A B Á L Y O Z Á S A.

Logisztikai módszerek

Véges állapotú gépek (FSM) tervezése

Felvételi vizsga mintatételsor Informatika írásbeli vizsga

A KLT (Kanade Lucas Tomasi) Feature Tracker Működése (jellegzetes pontok választása és követése)

Assembly. Iványi Péter

Átírás:

Kriptográfia Ötödik előadás Az AES Dr. Németh N L. Zoltán SZTE, Számítástudom studomány Alapjai Tanszék 2008 ősz

Az AES pályp lyázat a DES szabványt le kellett váltani, mert nyt le kellett az 56 bites kulcs brute-force módon való feltörését t több t kisérlet is igazolta (distributed.net, Deep Crack) kriptoanalízisen alapuló támadások is ismertek rá r (igaz csak elméletiek) letiek) a TDES T helyettesítheti, theti, de lassú, és s a blokkméret továbbra is kicsi (64 bit) az USA-ban a NIST újabb pályp lyázatot hirdetett 1997-ben AES = Advanced Encryption Standard-re re (Továbbfejlesztett titkosítási si szabványra nyra)

Az AES pályázat követelmk vetelményei titkos kulcsú szimmetrikus blokktitkosító 128-bit bites blokk,, 128/192/256-bit bites kulcs erősebb és s gyorsabb legyen a TDES-nél hatékony megvalósíthat thatóság számítási si teljesítm tmény kód és s adatmemória szüks kséglet előkész szítő számítások sok (pl. kulcsszervezés) s) flexibilitás s az egyes platformok és későbbi fejlesztések sek tekintetében aktív v működésm 20-30 évre (+ archív használat)

A nevezéshez szüks kséges dokumentumok 1. az algoritmus specifikáci ciójának komplett leírása 2. a teljesítm tményekre vonatkozó számítások, sok, becslések, sek, mérésekm 3. teszt-vektorok (nyílt lt titkosított tott szövegp vegpárok) 4. analízis az ismert támadt madási módszerekkel m szembeni helytáll llásról l (pl. lineáris és fifferencuális kriptoanalízis zis) 5. az algoritmus lehetőségei és s korlátai 6. referencia megvalósítás s ANSI C-benC 7. optimalizálási lehetőségek C illetve JAVA megvalósításban sban

AES értékelési szempontok kezdeti kritériumok riumok (az első két t fordulóban) ban): biztonság a gyakorlati kriptoanalízissel szemben idő/t /tár r igény számítási si hatékonys konyság g szempontjából az algoritmus és s az implementáci ció tulajdonságai végső kritériumok riumok (az 5 döntd ntős s résztvevr sztvevőnek) általános biztonság g (az analízis nyilvános nos volt!) a softveres és s hardveres megvalósítás s könnyk nnyűsége (korlátozott RAM/ROM memória esetén n is) az implementáci ció támadhatósága (pl. az idő vagy áram felhasználás s mérése m alapján) flexibilit itás (titkosítás/megfejtés, kulcsszervezés/csere, s/csere, paraméterek, platformok, utasítás s szintű párh. rh.-síthatóság)

Az AES pályp lyázat eredménye az értékelés s három h fordulóban zajlott 1998 98 jún: : az első fordulóban 15 jelelöltet ltet fogadtak el 1999 aug: : a második m fordulóban ezt 5-re szűkített tették 2000 okt: : a Rijndael lett a győztes (ejtsd: www.iaik.tu-graz.ac.at/research/krypto/aes/wav/rijndael_pronunciation.wav ) 2001 nov: FIPS 197 szabványk nyként nt publikált lták AES néven 2003 jún: : az NSA mínősített adatok védelmv delmére is engedélyezi: Sectret,, Top Secret (utóbbira csak 192/256 bites kulccsal) ez az első ilyen mindenki számára elérhet rhető titkosítás

AES szűkített lista Az öt t döntd ntős s résztvevr sztvevő: MARS (IBM) - complex, gyors, nagy bizt.. ráhagyr hagyás RC6 (USA) - n. egyszrű, n. gyors, kis bizt.. ráhagyr hagyás Rijndael (Belgium) - világos gos, gyors, jó bizt.. ráhagyr hagyás Serpent (Euro) - világos gos, lassú,, n. nagy bizt.. ráhagyr hagyás Twofish (USA) - complex, n. gyors, nagy bizt.. ráhagyr hagyás ezután n jött j az újabb szempontok analízise

Az AES titkosító - Rijndael tervezői: Joan Rijmen és Vincent Daemen (Belgium) a Rijndaelben mind az adatblokk mind a kulcshossz 128-256 256 bit között k 32 bitenként nt változtathatv ltoztatható AES szabványos kulcsok: 128/192/256 bit, AES szabványos adatblokk 128 bit iteratív S-P P hálózat, h de nem Feistel struktúrás az adatokat 4 sor x 4 oszlopos adatblokkokban tárolja, t melyekben egy-egy bájtot b tárolt minden körben k az egész adatblokkon dolgozik úgy tervezték, hogy: minden ismert támadt madásnak ellenálljon lljon gyors és s tömör t r kód k írható rá sok processzor típusont átlátható terve legyen

Az AES az 4 x 4 bájtos b adatblokk egy tartalmát állapotnak (state)) hívjuk h = 4 db 32 bites szó = 128 bit a kulcsot is 32 bites szavak oszlopaira bontjuk ki melyekből l körönkk nként nt szintén n 4 db-ot használunk fel (kulcsméret függvf ggvényében) 10/1 /12/14 körben: byte substitution: (1 közös S-dobozos a bájthelyettesb jthelyettesítés) shift rows: (a a sorok elforgatása különbk nböző mértékben) mix columns: (az oszlopok átalakítása mátrixszorzm trixszorzással) add round key: (XOR művelet bájtonkb jtonként nt a körkulccsalk rkulccsal) az első kör r előtt még m g egy add round key van az utolsó körben a mix columns kimarad könnyen invertálhat lható és s implementálhat lható XOR-ok és műveleti táblt blázatok segíts tségével

AES titkosítás/megfejt s/megfejtés

A titkosítás s algoritmusa AESCipher(byte in[16], byte out[16], word w[44]) begin byte state[4,4] state = in AddRoundKey(state state,, w[0, 3]) for round = 1 step 1 to 10 SubBytes(state state) ShiftRows(state state) MixColumns(state state) AddRoundKey(state state,, w[round round*4,( *4,(round+1)*4-1]) 1]) end for SubBytes(state state) ShiftRows(state state) AddRoundKey(state state,, w[40, 43]) out = state end

1. SubBytes() (bájt helyettesítés) s) Minden bájt helyettesítése egy közös (8 bit -> 8 bites) S-doboz segítségével.

1. SubBytes Bytes() megadása táblázattal

Az AES S-doboza S táblt blázatban

1. SubBytes Bytes() egyszerű helyettesítés s az aktuális állapot minden bájtjb jtjára egy 16x16-os bájtokat tartalmazó 256 elemű táblázattal (minden 8-bites érték k pontosan egyszer fordul elő) a helyettesítend tendő bájt első 4 bitje a sorindexet a második 4 bitje az oszlopindexet adja pl. {95}-öt (hexadecimálisan írva) a 9-es sor 5-ös oszlopában levő {2A} bájttal helyettesítj tjük gondosan úgy tervezték, hogy az ismert támadt madástípusoknak ellenálljon, lljon, pl.,,nagyon nem lineáris az S-doboz egy a 256 elemű test feletti invertálhat lható függvénnyel adható meg ez multiplikatív inverz számítás a testben, majd egy affin transzformáci ció végrehajtása a 256 elemű test elemei polinomok segíts tségével írhatók k le, pl: GF(2 8 ) = Z 2 [x] / (x 8 +x 4 +x 3 +x+1)

Számol molás s GF(2 8 )-ban az együtthat tthatókra 1+1 = 1 1 = 0 és (x 8 +x 4 +x 3 +x+1)-ra nézve redukálni kell. Pl: 2d = 00101101 =x= 5 + x 3 + x 2 + 1 a3 = 10100011 =x= 7 + x 5 + x + 1 2d + a3 = x 7 + 2x 5 + x 3 + x 2 + x + 2 = x 7 + x 3 + x 2 + x = 10001110 = 8e 2d a3 =(x 12 + x 10 + x 9 + x 7 ) + (x 10 + x 8 + x 7 + x 5 ) + (x 6 + x 4 + x 3 + x) + (x 5 + x 3 + x 2 + 1) =x 12 + x 9 + x 8 + x 6 + x 4 + x 2 + x + 1 = = (x 4 + x) (x 8 +x 4 +x 3 +x+1) + x 7 + x 6 + x 4 + 1 = = x 7 + x 6 + x 4 + 1. Így 2d a3 =11010001 = d1 Ez a struktúra ra test, mert bebizonyíthat tható,, hogy minden nem 0 polinomnak van inverze.

Az S-doboz S megkonstruálása sa bemenet: (a 7,a 6,,a,a 0 ) 8 bit, inverze G(256)-ban legyen: (x 7,x 6,,x,x 0 ) majd egy affin transzformáci ció: Másképpen bitenként nt kiszámolva: b i = x i x i+4 mod 8 x i+5 mod 8 x i+6 mod 8 x i+7 mod 8 c i ahol a b i kimenet i-dik bitje, és s c= 01100011. kimenet: (b 7,b 6,,b,b 0 ) 8 bit.

2. Shift Rows()

2. ShiftRows() (sorok elforgatása) permutáci ciós s lépés l s (keverés) a bájtok körkk rkörös s forgatása balra az 1.. sor változatlan v marad a 2. sor 1 bájttal b fordul körbe k balra a 3. sor 2 bájttal b fordul körbe k balra a 4. sor 3 bájttal b fordul körbe k balra a megfejtéskor egyszerűen en jobbra forgatunk mivel az állapotokban a bájtokat b oszloponként nt tekinthetjük, k, ez a lépés l s az oszlopok adatait keveri össze minden oszlop kap bájtot b minden oszlopból

3. MixColumns()

3. MixColumns() (oszlopok összekeverése) se) az oszlopokat külön-külön k n helyettesítj tjük minden helyettesített tett bájt b a keverendő oszlop mind a 4 bájtjb jtjának függvf ggvénye effektíven leírhat rható egy mátrix szorzással ssal a 256 elemű GF(2 8 ) test felett, ahol a bájtok b szorzása sa polinomok segíts tségével törtt rténő bonyolult, de könnyen implementálhat lható művelet:

4. AddRoundKey()

4. AddRoundKey() (körkulcs hozzáad adása) annyira egyszerű,, amennyire csak lehet XOR az állapot és s a 1281 bites körkulcs között szintén n oszloponként nt haladva (persze bájt b szinten párhuzamosp rhuzamosítható) inverze a megfejtéskor ugyanez mivel a XOR önmaga inverze, csak a kulcsok sorrendjét t kell megfordítani

Egy AES kör r az állapotok oszloponkénti nti kiterítésével vel

AES kulcs kiterjesztés (Key Expansion) minden körhk rhöz z 4 (32-bites) szóból álló körkulcs kell a körök k k számától l függf ggően egy összesen 44/52/60 szóból álló kulcstömbre van szüks kség a kulcstömb első 4 eleme maga a titkosítás s kulcsa (128 bit) w 0, w 1, w 2, w 3 a kulcstömb további szavait ezek kiterjesztésével kapjuk a következk vetkező szót mindig az előzőből és s a 4-gyel ezelőttib ttiből képezve 4 ből 3 esetben egyszerűen en XOR-olva a kettőt minden 4. esetben viszont (ha az új w i indexe 4-gyel 4 osztható) az előző szót t előbb 1. elforgatjuk 2. az S-doboz alapján helyettesítj tjük 3. egy kör k r konstanssal XOR-oljuk mielőtt a 4-el 4 ezelőttivel XOR-oln olnánknk

AES kulcs kiterjesztés

A kulcs kiterjesztés s magyarázata hogy az ismert támadt madásoknak ellenálljon lljon a következk vetkező tervezési kritériumok riumok vették: a kulcs egy részr szének ismeret ne segítse a többi t bit meghatároz rozását a transzformáci ció invertálhat lható legyen gyorsan működjm djön n különbk nböző a processzorokon a körkonstansok alkalmazása megtörje a szimmetriát biztosítsa tsa a kulcs bitjeinek diffúzi zióját t a körkulcsok k bitjeibe küszöbölje ki a linearitást st, így gátolva g az analízist egyszerűen en leírhat rható/megvalósítható legyen

Az AES megfejtés mind a 4 lépésnek l van inverze: pl. InvSubBytes() ezek megegyeznek az eredetivel csak más m konstansokkal/tábl blázatokkal dolgoznak az AES megfejtés s nem egyezik meg a titkosítással ssal mivel a lépések inverzét t fordított sorrendben kell alkalmazni de szerencsére lehetőség g van a titkosítással ssal megegyező struktúrájú ekvivalens megfejtő algoritmus kidolgozására természetesen fordított kulcssorrenddel a lépések l inverzeihez tartozó más s táblt blázatokkal erre azért van lehetőség, mert InvSubBytes és InvShift hiftrows sorrenje felcserélhet lhető InvMix ixcolumns és AddRoundKey is felcserélhet lhető,, ha a körkulcson k előbb InvMixColumns-t elvégez gezünk, hiszen InvMixColumns lineáris transzformáci ció.

AES ekvivalens megfejtés

Implementáci ciós szempontok I effekt ektíven implementálhat lható 8-bites CPU-ra ra: SubBytes leírhat rható egy 256 elemű bájtokat tartalmazó táblázattal ShiftRows egyszerűen en bájtok b cseréje AddRoundKey bájtonkénti nti XOR művelet MixColumns ugyan mátrixszorzás GF(2 8 ) felett, de egyszerűsíthet thető egy másik m 256 elemű, bájt értéket tartalmazó tömbben való keresések sek és s bájtonkb jtonkéntinti XOR műveletek használat latára csak {02}-vel kell tudni szorozni, mert {03} = {02} {01}

Implementáci ciós szempontok II effekt ektíven implementálhat lható 32-bit bites CPU-ra is: a kör k r 4 függvf ggvényét összevonhatjuk 32-bit bites oszlopok közvetlen kiszámítására táblt blázatokkal ehhez előre kiszámíthatunk 4 darab 256 bemenetű 32-bites szó értékeket tartalmazó táblázatot egy eredmény oszlop kiszámíthat tható 4 darab kereséssel ssel a táblázatokban + 4 szavankénti nti XOR-ral a táblt blázatok mérete m összesen 4 x 256 x 4 = 4096 bájtb ha nincs 4KB hely megoldható 1 táblt blázattal és s ciklikus forgatásokkal is a tervezők k szerint ez az effektív v megvalósíthat thatóság kulcsfontosságú tényező volt abban, hogy a Rijndaelt választották k AES titkosítónak

Az AES biztonsága a módszer m feltörésének minősül l minden olyan módszer, ami pl. a tejes kipróbálás átlagos 2 127 titkosítási si műveletm veleténél l kevesebbel fejti meg a 128 bites kulcsot mondjuk egy 2 120 műveletigényű,, 2 100 választott nyíltsz ltszöveget igényl nylő módszer is, ami a gyakorlatban biztos, hogy kivitelezhetetlen jelenleg (2008-ban) nem ismert AES törést csupán n az AES kevesebb körrel k rendelkező változatatira van ilyen: ismert nyílt szöveg vegű támadás 7 körös k s AES-128 128-ra 8 körös k s AES-192 192-re és s AES-256 256-ra hasonló kulcsos támadt madás s (related( key attack) 9 körös k s AES-256 256-ra

Az XSL támadt madás s (?) 2002-ben ugyan napvilágot látott l egy spekulatív XSL attack nevezetű támadás de még m g nyitott kérdk rdéses, hogy valóban alkalmazható-e e elméletileg letileg is az AES-re jelenleg gyakorlati kivitelezése nagyon valósz színűtlen

Kerülő utas támadt madások (side channel attacks) ezek nem az algoritmust, hanem annak implementáci cióját t támadjt madják nevezetesen cache timing attacks (gyorsítótár időméréses támadt madások) de kivitelezésükh khöz z a titkosító rendszer nagyon pontos megfigyelésére van szüks kség, pl. a titkosító szerveren futó időmérő programra, vagy 200 millió választott nyílt szövegre komoly gyakorlati fenyegetést nem jelentenek sajnos nagyon nehéz z olyan implementáci ciót írni, hogy a táblt blázatokban való keresés s gyors, de az indextől l teljesen független f legyen

Felhasznált lt irodalom Virrasztó Tamás: Titkosítás és s adatrejtés: Biztonságos kommunikáci ció és s algoritmikus adatvédelem, delem, NetAcademia Kft., Budapest, 2004. Online elérhet rhető: http:// ://www.netacademia.net/book.aspx?id=1# (3.4.-3.5. 3.5. fejezet) William Stallings: Cryptography and Network Security,, 4th Edition, Prentice Hall, 2006. (Chapter 5) Lawrie Brown előad adás s fólif liái i (Chapter( 5) http://en.wikipedia.org/wiki/advanced_encryptio n_standard AES animáci ció: http:// ://www.cs.bc.edu/~straubin/cs381-05/blockciphers blockciphers/rijndael_ingles2004.swf