Kriptográfia Negyedik előadás A DES Németh L. Zoltán SZTE, Számítástudom studomány Alapjai Tanszék 2008 ősz
Modern Blokktitkosítók az eddig módszerek m mind feltörhet rhetőekek akkor hogyan titkosítsunk? tsunk? modern (gépi) módszerek m következnekk ma is a szimmetrikus blokktitkosítók k a legelterjedtebbek (gyorsak, sokat vizsgáltak) titkosságot / hitelességet biztosítanak tanak a DES-re (Data Encryption Standard,, 1977) fogunk koncentrálni hogy bemutassuk a blokktitkosítók általános tervezési elveit
A blokkok méretem a blokk titkosítók k az üzenetet fix hosszúságú egységenk genként nt titkosítj tják/fejtik meg tekinthetjük őket hatalmas ábécék k feletti helyettesítésnek snek (64( 64-bites vagy még m g több) t elég g sok bitre szüks kség g van, hogy a helyettesítés s feltörésére re alkalmazott gyakoriságanal ganalízisnek ne legyen esélye a DES blokkmérete 64 bit az AES blokkmérete 128 bit
Block vagy folyam titkosítók k? a folyamtitkosítók k (stream( ciphers) ) az üzenetet bitenk enkéntnt vagy bájtonkb jtonként nt titkosítj tják k / fejtik meg ekkor nem kell egy blokknyi adatot összevárni a titkosítás s megkezdéséhez számos mai titkosító blokktitkosító szélesebb körben k alkalmazottak, mint a folyamtitkosítók blokkonként nt lehet velük k adatfolyamot is tovább bbítani majd később k nézzn zzük k a működési m módjaikatm
Az ideális blokktitkosító
A példa p által definiált helyettesítés
Blokk titkosítók k alapelvei a blokktitksosítók hatalmas ábécék k feletti helyettesítések sek de szüks kség g van rá, r, hogy a helyettesítés injektív legyen, sőt s t effektíven kiszámíthat tható általános esetben 64 biten 2 64! darab helyettesítés definiálhat lható egy helyettesítés s leírásához egy 2 64 soros 64-bit bites értékeket tartalmazó táblázat kell, ami 64 2 64 = 2 70 10 21 bites kulcsméretet jelent. hogyan készk szíthető akkor biztonságos invertálhat lható helyettesítés s kisebb komponensekből? a legtöbb szimmetrikus blokktitkopsító ún. Feistel titkosító stuktúrán alapszik
Helyettesítő-kever keverő titkosítók (Substitution-Permutation Ciphers) Claude Shannon vezette be a helyettesítő- keverő hálózatokat (S-P P networks) 1949-ben a modern blokktitkosítók k rajtuk alapulnak az S-P hálózatok pedig a két k t korábbi alap kriptográfiai műveletbm veletből épülnek fel: helyettesítés s (S-doboz( doboz) ) / substitutions (S-box) / keverés s (P-doboz( doboz) ) / permutation (P-box) / ezek biztosítj tják k a titkos szövegnek mind a nyílt szövegt vegtől, mind a kulcstól l való minél komplexebb, de könnyen k megadható függését
Diffúzi zió és s konfúzi zió (Confusion and Diffusion) a titkosítónak a nyílt szöveg statisztikai jellemzőit a felismerhetetlenségig el kell rejtenie a titkosított tott szövegben mint példp ldául a OTP, és s az ideális blokktitkosító a gyakorlatban erre Shannon az S és P dobzok kombinálását t javasolta, a két k t cél: c diffúzi zió (szétterjeszt tterjesztés) s) szétoszlatja a nyílt szöveg statisztikai struktúráit egy terjedelmes méretm retű titkos szöveg részekbenr konfúzi zió (összekeverés) s) a titkos szöveg és s a kulcs kapcsolatát t minél l komplexebbé teszi
A Feistel titkosító struktúra ra Horst Feistel ötlete a 70-es évek elején Shannon (S-P P hálózatos) h produkciós titkosítós ötletéből könnyen invertálhat lható titkosítók általános terve más s körfk rfüggvény használat latával más m s tikosítót t kapunk a bemenő blokkot két k t félre f osztja (pl. 32-32 bit) a titkosítás s több t körben k (round( round) ) zajlik, melyekben az adatok bal felén n helyettesítést st hajt végre v (XOR( XOR-ol) melyhez a körfüggvényt (round function) ) használja, ami az adatok jobb felének és s a körkulcsnak a függvf ggvénye végül l a bal és s jobb feleket felcseréli li (ez permutáci ció)
A Feistel Strukt uktúra vázlata
Miért jój ez? Ez a struktúra ra azért (is) kedvező,, mert míg g tipikusan egy kör k r csak gyenge (egyszerű) titkosítást st ad, a körök k k egymás s utáni alkalmazása jelentősen növeli az erőss sséget a megfejtés s algoritmusa majdnem ugyanaz, csak a körkulcsokat k kell fordított sorrendben alkalmazni (ld. a következk vetkező ábrát) ezért került az utolsó kör r végére v még m g egy csere
Titkosítás s (bal) és s megfejtése (jobb)
blokkm kkméret kulcsméret Feistel struktúrák tervetésének elemei körök k száma (pl. DES-nél 16 kör k r van) körkulcs generálás s algoritmusa körfüggvény (további S és s P dobozok) Figyelembe kell venni: gyors szoftveres/hardveres megvalósítha thatóságot könnyű legyen analizálni lni
Data Encryption Standard (DES) (Adat titkosítási si szabvány) a világon ma is a legelterjedtebb blokktitkosító 1977-ben vezették k be az NBS (National Bureau of Standards,, ma NIST) FIPS 46 szabvány ny: http:// ://csrc.nist.gov/publications/fips/fips46-3/fips46-3.pdf3.pdf 64-bit bites adatblokk, 56-bit bites kulcssal biztonsága sok vitát t váltott v ki bár r (nyilvános) nos) ismereteink szerint csak brute force módon törhett rhető ma már m új általános szabvány is van az AES (128, 196 vagy 256 bites kulccsal)
A DES története I az IBM kifejleszti a LuciferL titkosítót Feistel vezette csoport, 60-as évek végétől v l 1971-ig 64-bit bites blokkonklént nt 128-bit bites kulccsal majd újra tervezték: kereskedelmi célokra c NSA (National Security Agency = az USA Nemzetbiztonsági Hivatala) és s más m s szakért rtőkkel közösenk férjen el egyetlen chipen -> csak 56 bites kulcs
A DES története II 1973-ban NBS pályázatot hirdetett az USA-ban nemzeti titkosító algoritmusra az IBM a Lucifer módosított változatv ltozatát nevezte melyet el is fogadtak, mint Data Encryption Standard-ot ot,, azaz adattitkosítási si szabvány nyt t 1977-ben
Viták k a DES tervezéséről annak ellenére, hogy a DES nyilvános nos szabvány vitákra adott okot tervezésében a kulcs 56-bit bitre választv lasztásasa (a Luciferé 128-bit) a részletes tervezési kritériumokat riumokat (pl. az S dobozokét) nem hozták k nyilvánoss nosságra a későbbi k analízis mégis m azt mutatja, hogy jól tervezett, bevált rendszer széles körben k alkalmazzák k ma is különösen pénzp nzügyi alkalmazásokban használata ma is szabványos meglevő rendszerekben új j alkalmazásokban, persze már m r modernebb titkosítást st (pl. AES-t,, vagy 3DES-t) kell bevezetni
A DES titkosításának áttekintése
A kezdeti keverés (Initial Permutation IP) ez a legelső lépés s a 64 bites adatblokkon IP átrendezi a biteket sorrendjét, közbenk a páros p sorszámú bitek a bal félbe f (LH( LH) a páratlanok p a jobb félbe f (RH( RH) ) kerülnek meglehetősen szabályos strukturát mutat (felülről l lefele, majd jobbról-balra balra) például: IP(675a6967 5e5a6b5a) = (ffb2194d 004df6fb)
A kezdeti keverés s táblt blázata IP
A kezdeti keverés s grafikusan
A kezdeti keverés s inverze IP -1
A DES egy körek
A DES köreinek felépítése a két k t fél f 32-bit bites blokk az i-dik körben: L i és R i ahogy minden Feistel struktúrában itt is: L i = R i 1 R i = L i 1 F(R i 1, K i ) F körfüggvény így egy 32-bit bites R blokkfelet és s egy 48-bit bites körkulcsot kap és 1. kiterjeszti R-et 48-bit bitre az E-segítségével (expansion) 2. XOR műveletet végez v vele a körkulccsalk 3. a 8 darab egyenként nt 6-bemeneti 6 és s 4 kimeneti bites S-dobozzal a 48=8 6 6 bitet 8 48 4 = 32 bittel helyettesíti ti 4. végül l a P pemutáci cióval összekeveri a 32 bitet
A DES körfüggvénye
Az S-dobozokS a 8 S-doboz mindegyike 6-ból 4 bitet készít igazából l minden S-doboz 4 darab 4-ből 4 bites es kis dobozból áll a külsk lső bitek az 1. és s a 6.. (sor( bitek) ) kijelölnek lnek egyet a 4 sorból l (azaz a 4 kisdobozból) a belső bitek 2-5. (oszlop bitek ek) e sor szerint helyettesítődnek így egy S-doboz S egy 4 (soros) x 16 (oszlopos) táblt blázat ír le, melynek elemei 4 bites értékek (0-15 számok) pl hexadecimális jelöléssel : S(18 09 12 3d 11 17 38 39) = 5fd25e03 S1(01100 11000)=5,, mert S1 00 sor 1100 oszlopában 5 van S2(00100 01001)=f mert S2 01 sor 0100 oszlopában 15=f van
Az S1 doboz Az S2 doboz
S dobozok tervezése az S-dobozok S a DES egyedüli nemlineáris komponensei tervezésük k különös k s figyelemmel törtt rtént ezek tervezési részleteit r nem hozták nyilvánoss nosságra pl. a differenciális kriptoanalízis ellen védelmet v nyújtanak, amely módszer m csak 90-ben került nyilvánoss nosságra általában a biztonságos S-dobozok S tervezése a kriptográfia egy külön k n fejezete
A DES S dobozainak tulajdonságai nem lineárisak soraikban a 0..15 számok mindegyike pontosan egyszer szerepel a bemenetet 1 bittel változtatva v a kimenet legalább 2 bitben megváltozik S(x) és s S(x 001100) legalább 2 biten eltér S(x) S(x 11ab00) minden a,b {0,1} -re
DES kulcsszervezés (Key Schedule) hogyan kapjuk a körkulcsot k az eredetiből? a szabványos kulcs 64 bit, de ebből l a kezdeti (kulcs) keverés PC1 (Permuted Choice 1) csak 56 bitet választ v ki, ezt két k t 28 bites félre f osztjuk a 16 db körkulcs k generálás s lépéseil sei: forgassuk mindkét t felet külön-külön balra 1 vagy 2 bittel (a forgatás s mértm rtékét t egy táblt blázat adja meg) válasszunk ki 24-bit bitet mindkét t félbf lből és permutáljuk őket PC2 (Permuted Choice 2) segíts tségével vegyük észre a könnyk nnyű hw/sw megvalósíthat thatóságot
A kör k r kulcsgeneráláshoz shoz szüks kséges forgatások táblt blázata Összesen 28 forgatás, éppen körülfordul a két fél körkulcs Crypt Tool DES animáció
A DES megfejtése a megfejtéskor fordítva kell alkalmazni a titkosítás s lépéseit l az adatokon mivel a kezdeti és s végsv gső keverés s egymás s inverze a többi t pedig Feistel-strukt struktúrara ezért elég g a körkulcsokat k (jobbra forgatással) fordítva 16 K 1 sorrendben generálva megismételni a titkosítást st K 16 IP visszarendezi a végsv gső keverés FP hatását az 1.. kör k r az K 16 visszafejti a 16.. kör k r titkosítását. az 16. kör k r az K 1 visszafejti a 1.. kör k r titkosítását végül l a végsv gső keverés (FP) hatástalan stalanítja tja a kezdeti keverést (IP( IP) így visszakapjuk a nyílt szöveget
A lavina hatás az egyik igen kívánatos k tulajdonsága bármely b titkosításnak, snak, hogy a nyílt szöveg vagy a kulcs kisméret retű változtatása is, jelentősen változtassa v meg a titkosított tott szöveget. ha a bemenet vagy kulcsnak csak egy bitjét változtatjuk meg, ez a kimeneti bitek körülbelk lbelül felének a megváltoz ltozásával járjonj ha csak kismért rtékű lenne a változv ltozás, akkor az lehetőséget adna a nyílt szöveg vagy a kulcs keresési si terének leszűkítésére A DES erős s lavinahatással rendelkezik, mint az a következő táblázat mutatja
A DES lavinahatásának nak szemléltet ltetése Input:... Permuted:...... Round 1:......... Round 2:.................. Round 3:............................... Round 4:............................... Round 5:.................................. Round 6:...................................... Round 7:................................... Round 8:.................................... Round 9:................................ Round 10:............................... Round 11:............................... Round 12:.............................. Round 13:................................ Round 14:................................. Round 15:................................... Round 16:..................................... Output:.................................... a tömör t r négyzetek n a megválzozott bitek
Lavina hatás s a DES-ben
Támadások a DES ellen I Brute-force kis kulcsméret a DES leggyengébb (ismert) pontja 56-bit bites kulcsból 2 56 = 7.2 x 10 16 darab van ezzel látszl tszólag ellenáll a teljes kipróbálásnak ám m komoly erőfesz feszítéssel ssel a brute-force módon feltörhet rhető 1997 Internet (ditributed.net) 96 nap 1998 speciális hardwer (Deep Crark gép p /EFF/) 56 óra 1999 (együtt: Deep Crack gép p + 100000 PC) 22 óra! persze ehhez képesnek k kell lenni a nyílt szöveg felismerésére re is és s ma már m r mindenképpen a DES-nek alternatíváit kell keresnünk, nk, pl. AES, 3DES
A Deep Crack gép Speciális hardwer a DES brute-force módú feltörésére re Már r 1977-ben Diffie és Hellman tervezett papíron egy ilyen gépet, g ami akkor 20 millió $-ba került volna 1998-ban az Electronic Frontier Foundation épített is egy ilyet kevesebb mint 250.000 $-ból$ Ez a Deep Crack Machine http:// ://en.wikipedia.org/wiki/deep_crack a tervet nyilvánoss nosságra is hozták ma már m pár új j autó áráért készíthető olyan berendezés, ami a DES-t 1 napon belül feltöri, avagy olcsóbban: 2006: 8980 Euro,, 9 nap, COPACOBANA (Cost( Cost-Optimized Parallel COde Breaker) http:// ://www.copacobana.org/
Támadások a DES ellen II elég g sok ismert, de a gyakorlatban kivitelezhetetlenek pl. rengetek ismert vagy választott nyíltsz ltszöveg kell hozzájuk, pl. differenciális is kriptoanalízis 2 47 DES művelet, m 2 47 választott nyílt szöveggel lineáris kriptoanalízis 2 39-2 41 egyéb b támadt madások 41 DES művelet, m 2 43 ismert nyílt szöveggel időméréses támadt madás s (timing( attack) konkrét t implementáci ciót t elemez, az alapján, hogy a titkosítás s ideje függ f a bemenettől és s a használt kulcstól ha a kulcs néhány n ny bitje már m r meghatározott a maradék k teljes kipróbálással kereshető
A kétszeres k DES és s feltörése a DES igazán n gyenge pontja az 56 bites kulcsméret ezt megpróbálhatjuk orvosolni, úgy, hogy a DES titkosítást st egymás s után többször r alkalmazzuk, különböző kulcsokkal két egymásut sutáni DES-t végezni kevés,, mert középen találkoz lkozó (meet in the middle) támadással feltörhet rhető: néhány ny ismert nyílt szöveg veg-titkosszöveg pár p r birtokában ban a nyíltsz ltszöveget minden DES kulccsal titkosítva tva a párjp rját, minden DES kulccsal megfejtve táblázatot vezetve az értékekről az egyezéseket találhatunk lhatunk melyeket a többi t párra p ellenőrizve 2 57 lépésben feltörhetj táblázat a mérete m az idő rovására ra csökkenthet kkenthető! rhetjük k a 112 bites kulcsot
Háromszoros DES (Triple DES vagy TDES) Így marad a DES 3-szor 3 egymás s után n törtt rténő alkalmazása E K1 (E K2 (E K3 (x))) titkosítás s helyett, azonban szerencsésebb sebb az E K1 (D K2 (E K3 (x))) forma mert ekkor K1=K2=K3 alkalmazásával a módszer m kompatibilis marad a DES-sel ha mindhárom kulcs különbk nböző akkor 3TDES ha K1=K3 K2, K2, akkor 2TDES mivel a titkosítás és s megfejtés s algoritmusa csak a kulcs kezelésben tér t r el ez nem befolyásolja a biztonságot
Háromszoros DES (Triple DES vagy TDES) így a 3TDES kulcsa K1K2K3 168 bit paritásbitekkel 192 bit E K1K2K3 (x)= E K1 (D K2 (E K3 (x))) D K1K2K3 (x)= D K3 (E K2 (D K1 (x))) így a 2TDES kulcsmérete K1K2 112 bit paritásbitekkel 128 bit E K1K2 (x)= E K1 (D K2 (E K1 (x))) D K1K2 (x)= D K1 (E K2 (D K1 (x)))
A TDES biztonsága a középen k találkoz lkozó feltörés s miatt a 3TDES effektív v biztonsága amúgy is csak 112 bit a 2TDES-t t biztonságát t ismert támadt madások miatt pedig csak 80 bit-re teszik ez ma még m g elegendőnek nek tűnikt de sajnos a sebessége a DES-ének 3-szorosa az az AES pedig kb. 6-szor 6 gyorsabb, nagyobb blokkmérettel és s persze jóval j nagyobb biztonsági ráhagyr hagyással rendelkezik így a TDES is lassan hátérbe h szorul kivéve ve talán n az elektronikus fizetés s terület letén, ahol számos szabványba beépített tették (elsősorban sorban hardveres megvalósításokban) sokban)
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.1. fejezet) William Stallings: Cryptography and Network Security,, 4th Edition, Prentice Hall, 2006. (Chapter 3) Lawrie Brown előad adás s fólif liái i (Chapter( 3)