Modern szimmetrikus kulcsú rejtjelezők kriptoanalízise - kimerítő kulcskeresés: határa ma 64 bit számítási teljesítmény költsége feleződik 18 havonta 25 éven belül 80 bit - differenciális kriptoanalízis: iteratív blokk rejtjelezők ellen választott nyílt szövegű támadás - lineáris kriptoanalízis: ismert nyílt-rejtett párok alapú támadás - gyenge kulcsok kihasználása - algebrai támadás: csoportstruktúra DES Challenge III: sikeres kulcskeresés 22 óra 15 perc Electronic Frontier Foundation s `Deep Crack + distributed.net. Identifier: DES-Challenge-III Cipher: DES Start: January 18, 1999 9:00 AM PST Prize: $10,000 IV: da 4b be f1 6b 6e 98 3d Plaintext: See you in Rome (second AES Conference, March 22-23, 1999) Ciphertext: bd 0d de 91 99 60 b8 8a 47 9c b1 5c 23 7b 81 18 99 05 45 bc de 82 01 ab 53 4d 6f 1c b4 30 63 3c ee cd 96 2e 07 c6 e6 95 99 9c 96 46 5a 95 70 02 02 70 98 bd 41 c2 88 a9 f0 2f 8b e5 48 20 d2 a8 a0 6b bf 93 de 89 f6 e2 52 fd 8a 25 eb d0 7d 96 83 ee a4 2d c8 8d 1b 71 1
Szimmetrikus kulcsú blokk rejtjelezők üzemmódjai 1. ECB (Electronic Code Book) mód 2. CBC (Cipher Block Chaining) mód 3. CFB (Cipher FeedBack) mód 4. OFB (Output FeedBack) mód ECB (Electronic Code Book) mód y i = E k (x i ) előnye: párhuzamosan több nyílt szöveg blokk rejtése problémák: - nyílt szövegek sorozatának ismétlődései (minták) megjelennek a rejtett szövegek sorozatában - rejtett szövegek sorozatán aktív támadás lehetősége (törlés, beillesztés, ismétlés) 2
CBC (Cipher Block Chaining) mód y i = E k (x i y i-1 ), x i = D k (y i ) y i-1 - nyílt szövegek sorozatában lévő mintázat rejtésre kerül - rejtett szövegek sorozatán aktív támadás lehetősége lecsökken - kezdővektor (IV= y i-1 ) integritása fontos (első nyílt szöveg blokk sérülékeny) - blokkot törölhető a nyílt szöveg blokksorozat elejéről és végéről - ha a kezdeti vektort módosítjuk azonos kulccsal azonos szövegek észrevétlen rejtjelezhetők - hibaterjedés hatás: kommunikációs csatornabeli additív bithiba két nyílt blokkot hamisít Hf: Észrevétlenül törölhető marad első és utolsó rejtett blokk? Hf: Tekintsük a CBC következő módosítását: y i = E k (x i x i-1 y i-1 ), x i = D k (y i ) y i-1 x i-1 1. Hogyan módosul a hibaterjedés hatás? 2. Milyen új aktív támadásra nyílik lehetőség? 3
CFB (Cipher FeedBack) mód y i = E k (y i-1 ) x i, x i = E k (y i-1 ) y i (CBC: y i = E k (x i y i-1 ), x i = D k (y i ) y i-1 ) - nyílt szövegek sorozatában mintázat rejtett - blokkot törölhető a nyílt szöveg blokksorozat elejéről és végéről - utolsó rejtett blokk módosítható - ha a kezdeti vektort módosítjuk azonos kulccsal azonos szövegek észrevétlen rejtjelezhetők alkalmazás: karakterenkénti rejtés aszinkron terminál kimenetén 4
OFB (Output FeedBack) mód - kulcsfolyamatos rejtjelezés - teljes blokknál rövidebb visszacsatolása nem biztonságos (lásd alább) - nincs hibaterjedés - nyílt szöveg könnyen manipulálható a rejtett szöveg manipulálásával - ha a kezdeti vektort módosítjuk azonos kulccsal azonos szövegek észrevétlen rejtjelezhetők 5
OFB analízis 1. teljes blokkmérettel visszacsatolás esete u i = E k (u i-1 ): U U, U =2 n permutáció Modell-1: E k véletlenszerűen választott a (2 n )! számú permutáció közül Tétel: Az összes permutációt tekintve minden lehetséges (1,2,..., 2 n ) ciklushosszú ciklusból azonos számú van. Következmény: Modell-1 + véletlen kezdővektor esetén az OFB kulcsfolyam periódusának várható értéke az 1,2,..., 2 n ciklushosszak számtani átlaga 2 n-1 + 1/2 ( [2 n (2 n +1)/2]/2 n ) Pl. n=2, (1+2+3+4)/4=2+1/2=2,5. 2. szűkítés esete Modell-2: F k U U, U =2 n véletlen függvény Születésnapi paradoxon átlagos ciklushossz U 0.5 =2 n/2 Pl. DES, n=64, átlagos ciklushossz 2 32 6
Problémák, megoldások F1. DES rejtjelező kódolás esetén, ha c = E (m), akkor c = E (m), ahol v a v blokk bitenkénti negáltja. Támadhatóbb emiatt a DES? k k Megoldás: Legyen k az ismeretlen kulcs. (m,c 1 ), m, c ) nyílt szöveg-rejtett szöveg, azaz c ( 2 = E ( ) (1) 1 k m c = E ( ) c = E ( ) (2). 2 k m 2 m k A kulcsok terét keressük végig, ahol k* az aktuálisan tesztelt kulcs: Teszt: E k *( m) = c1 (1') or E k *( m) = c2 (2')? Ha nem, akkor egy kódolási művelettel két lehetséges kulcsot is teszteltünk, a k * és a k * kulcsot! (Ui. ha k *=k akkor (1)(1') igazz, ha k * =k (azaz k*=k ) akkor (2)(2') igaz) Ezzel a végigkeresendő kulcsteret megfeleztük. A kulcstér keresés ideje a kimerítő kereséshez képest a felére csökkenthető. 7
F2: Tegyük fel, hogy DES (ECB) rejtjelezést használtunk 64 bites üzenet blokkok rejtjelezésére, amelyek 8 bites karakterekből állnak, s a 8. bit páros paritás. Egy kimerítő kulcskereséses algoritmus csak rejtett szövegek megfigyelésére alapozva keresi a kulcsot, a nyílt szövegekről nincs egyéb információja. Javasoljon algoritmust, s vizsgálja annak hatékonyságát? Megoldás: Amikor az algoritmus egy k kulcsot tesztel, m rejtjeles blokkot dekódol, s ellenőrzi a paritás-helyességet. Ha helyesnek találja megáll, s a tesztelt kulcsot helyesnek fogadja el. P(egy téves kulccsal helyes paritásúra dekódolunk egy rejtett szöveg blokkot) = 2-8 P(m rejtjeles blokk mindegyikét helyes paritásúra dekódoljuk egy téves kulcs mellett) = 2-8m Ha legutoljára kerülne csak vizsgálatra az igazi kulcs (legrosszabb eset), annak valószínűsége, hogy már nem jut el eddig a vizsgálatig, legfeljebb < 2 56 2-8m. Így pl. m=8 esetén, > 1-2 -8 a sikervalószínűség. 8
F3: Mekkora a kétkulcsos háromszoros DES kódolás (EDE) középen találkozásos támadás erőforrásigénye választott nyílt szövegű támadás mellett! x w' w z=0 E D E y k1 k2 k1 Megoldás: 1. Az első kódoló z kimenetét rögzítsük zérus blokkra: x=d(0,k) dekódolás az összes különböző k kulccsal és tároljuk [x,k] párokat. (Q halmaz 2 56 párt tartalmaz) 2. w'=d(0,k') dekódolás az összes különböző k' kulccsal és tároljuk [w',k'] párokat. (Q' halmaz 2 56 párt tartalmaz) 3. Vegyünk egy [x,k] párt Q-ból. x -re kérjük az y rejtett szöveget (választott nyílt szöveg). w= D(y,k) dekódolást végzünk. 4. Ha létezik olyan [w',k'] Q', hogy w=w, akkor sejtésünk: k1=k, k2=k'. Ellenkező esetben új [x,k] Q mellett megismételjük a 3 és 4 lépéseket. 3 2 56 nagyságrendű rejtjelezés művelet, 2 56+1 nagyságrendű 64+56 bites elemekből álló memóriaigény. 9
F4: A középen találkozás támadás kétszeres DES kódolás elleni erőforrásigényét szeretné valaki megnövelni olyan módon, hogy az alábbi háromszoros kódolást alkalmazza y = Ek ( E ( E ( x))) 2 k1 k. 1 Sikerült-e a célját elérni? 10
F5: Az RSA kódolás esetén a CFB illetve az OFB blokk rejtjelzés módok alkalmazhatók-e? Nem. Az RSA nyilvános kulcsú, s a CFB illetve OFB mód esetén mind az adási, mind a vételi oldalon (!) csak kódolást végzünk, s így a nyilvános kódoló kulcs miatt a támadó által is elvégezhető műveletek. F6: Egy játék RSA algoritmus esetén p1=23, p2=11 prímeket választottuk. Adja meg a lehető legkisebb kódoló kulcsot, s az ehhez tartozó dekódoló kulcsot! Kódolja az x=5 üzenetet! ------------------------------------------------------------------------------------------------------- 11