Dr. Kovács János Informatika Tanszék Bevezetés az Információtechnológiába MÉRNÖK- ÉS GAZDASÁGINFORMATIKA ALAPSZAK 2016 5. KÓDOLÁS 2. KRIPTOLÓGIA
A TITKOSÍTÁS szerepe, módszerek, 2
Hálózatbiztonság alapelvei q Hozzáférés védelem : a rendszer használatának korlátozása az erre felhatalmazott személyekre ill. programokra. q Adat titkosság : megakadályozza az adatok jogosulatlan fél általi értelmezhetőségét. q Adatsértetlenség : az aktív fenyegetéseke elhárítása. q Hitelesítés : garantálja azt, hogy a partnerek valóban azok, akiknek állítják magukat, és meg van a jogosultságuk üzenetek küldésére, illetve vételére. q Letagadási lehetőségek kizárása : megakadályozza a küldőt, és az üzenet vevőjét, hogy később tagadja, miszerint tudomással bír egy adott üzenetről. 3
Biztonsági mechanizmusok q rejtjelezés, qhozzáférés ellenőrzési mechanizmusok, qhitelesség ellenőrzési mechanizmusok, qdigitális aláírási mechanizmusok, qadatsértetlenség mechanizmusok, qforgalom irányítás ellenőrzési mechanizmusok, qforgalom helykitöltési mechanizmusok, qközjegyzői hitelesítési mechanizmusok. 4
A rejtjelezés q rejtjelezés, qhozzáférés ellenőrzési mechanizmusok, qhitelesség ellenőrzési mechanizmusok, qdigitális aláírási mechanizmusok, qadatsértetlenség mechanizmusok, qforgalom irányítás ellenőrzési mechanizmusok, qforgalom helykitöltési mechanizmusok, qközjegyzői hitelesítési mechanizmusok. 5
Kriptológia, kriptográfia és kriptoanalízis q Kriptológia: a rejtjelezés tudománya q kriptogáfia q kriptoanalízis q Kriptográfia ð "grafo" (írni) módszerek (algoritmusok) kidolgozása, amelyek biztosítják az üzenetek q titkosságát, q védettségét, illetve q hitelességét. Cél: a visszafejtés belátható időn belül ne történhessen meg. q Kriptoanalízis kriptográfiai algoritmusok vizsgálatával foglalkozik. Célja általában q az algoritmus "feltörése", az üzenet illetéktelen megfejtése, vagy q az algoritmus kijátszása/manipulálása, illetve q annak bizonyítása, hogy egy algoritmus egy bizonyos támadás ellen védett. 6
Kriptográfia módszerei qbehelyettesítéses kódolás a küldendő üzenet ábécéjének minden betűje egy másik betűvel (karakterrel) kerül helyettesítésre, de a helyén marad qátrendezéses kódolás (permutáció) a küldeni kívánt üzenet betűit (karaktereit) keverik össze valamilyen előre egyeztetett algoritmus szerint. qez valójában nem kriptográfia: szteganográfia szteganosz = fedett ne vegye észre az illetéktelen fél az üzenetet. 7
A kriptomodell x E y y D x k 1 y = Ek 1(x) támadó k 2 x = Dk2(y) Ha k 1 =k 2 ð szimmetrikus/titkos kulcsú k 1 ¹k 2 ð aszimmetrikus k 2 támadó: a kulcson kívül mindent ismer 8
Üzenet feltörése qalgoritmikus támadás qpasszív lehallgatás, megfejtés qaktív törlés, megváltoztatás, megszemélyesítés, stb. qa támadás sikeres, ha kellő gyorsasággal törte fel az üzenetet qrejtjelezés: passzív támadás qkriptoprotokollok: aktív támadás felderítése 9
Az algoritmus biztonsága Feltétel nélkül biztonságos: qha tetszőleges számítási kapacitás mellett sem törhető fel. Feltételes biztonság: qamíg a támadó erőforrása egy meghatározott korlát alatt marad. 10
Feltétel nélküli biztonság q OTP one time pad egyszer használatos kulcsú rejtjelező q Gilbert Vernam, 1917 (Caesar, Vigenére) q X és K az üzenet és a kulcs (független) valószínűségi változók q x és k aktuális üzenet és kulcs q Y=(XÅK) q X,Y,K bináris, N bites vektorok, K egyenletes eloszlású az N bites vektorok halmazán Def: Tökéletes titkosításról beszélünk, ha az X és Y valószínűségi változók statisztikailag függetlenek I(X,Y)=0 Tétel: az OTP tökéletesen titkosító algoritmus q Shannon, 1949-ben bizonyította be 11
A one-time pad tökéletessége qtegyük fel, hogy a támadó megfigyeli az Y rejtett üzenetet. qmivel minden kulcs egyformán valószínű, ezért minden nyílt szöveg egyforma valószínűséggel lehetséges. qclaude Shannon [1949]: qi(x; Y) = H(X) - H(X Y) = 0 qa tökéletesség szükséges feltétele: H(K) H(X) qtehát: a kulcs mérete nem lehet kisebb, mint a (tömörített) nyílt szöveg mérete. 12
Modern kriptográfia qaz one-time pad tökéletes, de hatalmas kulcsmérete miatt nem praktikus qa gyakorlatban nincs szükség elméletileg feltörhetetlen rejtjelezőre, elegendő, ha a rejtjelező praktikusan feltörhetetlen (nagyon hosszú ideig tart feltörni) qa két legismertebb megoldás: qdes (Data Encryption Standard) qrsa (Rivest-Shamir-Adleman) 13
A kriptoprotokollok qjól definiált, szigorúan szabályozott lépések sorozata, qegyértelműek, qalgoritmusokból állnak komplexebb biztonsági igényeket képes kielégíteni. qismertek és elfogadottak (szabvány). qaz alkalmazó két vagy több fél biztonságban tudhatja kommunikációját. qa titkosító algoritmus (csak) része a protokollnak. 14
A kriptorendszer egy (P, C, K, E, D) ötös, amely a következő tulajdonságokkal rendelkezik: 1. P,C,K véges halmazok. q q q P nyíltszöveg-tér, C rejtettszöveg-tér, K kulcstér, P elemei = nyílt szöveg, C elemei = rejtett szöveg üzenet: a nyílt szöveg szimbólumaiból álló szó 2. E = {E k k Î K} a rejtjelezéshez használt E k :P C függvényeknek a családja, 3. D={D k k Î K} a visszafejtéshez használt D k :C P függvények családja 4. Mindegyik e Î K kulcshoz van egy d Î K kulcs, melyekre minden p Î P nyílt szöveg esetén: D d (E e (p))=p 15
Kriptorendszer modellje Küldő (E k ) kódolás titkosítás Nyílt szöveg "számok" Kriptoszöveg Fogadó dekódolás visszafejtés (D k ) Nyílt szöveg "számok" Kriptoszöveg Kommunikációs csatorna M - üzenet 1. E k =D k E k (M) D k (E k (M))=M szimmetrikus kulcsú titkosítás. 2. E k =D k f(m) C; f -1 (C) M aszimmetrikus kulcsú titkosítás. 3. Hibrid rendszer Nehéz matematikai probléma 16
A kriptorendszerek generációi I. A kezdetektől a XVI-XVII. sz.fordulójáig. Egy- és dupla ABCs rendszerek. Helyettesítés és (ritkán) permutáció. II. De Vigenere rendszerek. Komplex transzformációk, több ABC-s rendszerek. III. Többszörös kulcsos helyettesítés. Nonblokk rendszerek. Elektromechanikus gépek, rotoros gépek, igen nagy (milliós) kulcs-ismétlődési ciklus. Rádiós kommunikáció. Enigma. IV. Nagy számítási kapacitást igényelő, iteratív rendszerek. (Pl. DES) Komputertechnika, hálózati kommunikáció, kommerciális alkalmazások. V. Kvantumkriptográfia ez még csak kísérleti stádium 17
Shannon javaslata: helyettesítő-keverő titkosító q El kell rejteni a nyílt szöveg statisztikai jellemzőit: qs substitution és qp permutation dobozok kombinálása qcél: A titkos szövegnek a kulcstól és a nyílt szövegtől minél bonyolultabb, de könnyen megadható függése qgyakorlati megvalósítás qdiffúzió: a nagyméretű titkos részben elosztja a stat. struktúrát qkonfúzió: a titkos szöveg és a kulcs kapcsolatát bonyolítja 18
Blokktitkosító folyamtitkosító qblokktitkosító: qaz üzenetet fix hosszúságú blokkokra osztják qa megfejtés is blokkonként történik qelterjedtebb qfolyamtitkosító: qaz üzenetet bájtonként titkosítják qa megfejtés folyamatos, nem kell a blokkot "bevárni" 19
A DES (Data Encryption Standard) qszimmetrikus, azaz titkos kulcsos rendszer. q64 bites blokk-titkosító, algoritmusa a DEA q8x(7+1) bites kulcsot használ, amiből 56 bit független: 56 bites kulcs qelődje a LUCIFER (IBM 1971 128 bites kulcs) q1977-ben szabványosították, utoljára 98-ban q IBM 20
DES algoritmus q a P nyílt szöveg bal, ill. jobb oldali félblokkja L és R q Shannon-féle keverő transzformáción alapul q Az f keverő transzformáció 16 darab elemi operátor szorzata q Az f egy nemlineáris, kulcsvezérelt leképezés, S-dobozokkal és P- dobozokkal q Az invertálhatóság f-re nézve nem követelmény q 4 bit bemenetű, 2 bittel vezérelt q S-doboz: helyettesítést, q P-doboz: permutációt végez q K i K kulcsból előállított iterációs kulcsok q 18 lépéses algoritmus q 1. lépés (előtorzító permutáció) inverze az utolsó (18.) lépés q Az f leképezés invertálható, a kriptoszöveg ugyanazzal a kulcssorozattal visszafejthető 21
DES algoritmus 22
DES algoritmus 23
A DES biztonsága Gyengesége: a kulcsméret 56 bites kulcs: 2 56 =7.2x10 16 db q feltörés q Hosszú ideig ellenállt a "brute force" támadási kísérleteknek q 1990-ben a differenciál kriptoanalízis fejtési eljárás eredményesnek bizonyult (Eli Biham, Adi Shamir) q 1993-ban olyan speciális számítógép, amely 3 és fél óra alatt próbálgatással megfejtette a DES kulcsokat, ennek a gépnek a költsége 1 millió dollár volt q 1998 Deep Crack Machine ~ 250 e$ 56 óra, 1999 22 óra q Ma: pár ezer $, a költségek egyre csökkennek q megoldás q kulcsméret növelése, ezzel feltörés idő- és költségigénye jelentősen nő q algoritmus többszörözése 24
A tirple-des algoritmus q A rövid kulcs problémája: többszörös titkosítás q 3 különböző kulcsra van szükség (2 nem elég!) q Titkosítás: C = EK3 ( DK2 ( EK1 ( P ) ) ) q Visszafejtés: P=DK1 ( EK2 ( DK3 ( C ) ) ) DES DES -1 DES Nyílt szöveg K 1 K 2 K 3 Kriptoszöveg DES -1 DES DES -1 25
A TDES alkalmazhatósága qa 2x-i algoritmus az un. "középen találkozó" (meet in the middle) támadással feltörhető (80 bites biztonság) qe miatt a 3x-os DES 168 bites kulcs valójában 112 bitesnek felel meg qgyakorlatban ma még elég a biztonság, de nagyon lassú kb. 3x lassabb a DES-nél qvan jobb: AES qnagyobb blokkméret, qkb. 6x sebesség, qnagyobb biztonság 26
AES Advanced Encryption Standard 1997, igény egy új rendszerre q Elvárások: 1. szimmetrikus kulcsú, blokkos algoritmust kell megvalósítani, 2. 128-as blokkokat kell használnia, 3. 128 192 256 bites kulcsmérettel kell dolgoznia, 4. gyorsabb legyen, mint a 3DES és nyújtson jobb védelmet, 5. a számítógép erőforrásait hatékonyan használja, 6. legyen eléggé flexibilis, alkalmazkodjon jól a különböző platformok lehetőségeihez 7. 20-30 év aktív használat. q Győztes, 2000: q Rijndael (Vincent Rijmen és Joan Daemen) q 2001: FIPS 197 szabvány q 2003: minősített adatokra is engedélyezett qfeltörése? q brute-force 2 127 titkosítási művelet q XSL-támadás még nem bizonyított 27
A szimmetrikus kulcsú titkosítások legnagyobb problémája: A (titkos) kulcs partnerek közötti cseréje 28
A nyilvános kulcsú titkosítás qrsa (Rivest-Shamir-Adleman, 1976.) eljárás q A módszer a nyilvános kulcsú blokktitkosítók csoportjába tartozik. qa nyilvános kulcs: úgy lehet titkosan kezelt adatokat cserélni, hogy nincs szükség előzetes titkos kulcscserére. q Az ilyen rendszerek két kulccsal rendelkeznek. qegy nyilvános kulccsal a kódoláshoz, és qegy titkossal a dekódoláshoz. qa felhasználók maguk generálhatják a kulcspárt, amelyikből a nyilvánost közzéteszik a titkosat maguk őrzik. qa nyilvános kulcsokat (mint a telefonszámokat) egy mindenki számára hozzáférhető kulcstárban jelentetik meg. 29
RSA algoritmus működése q Kulcsgenerálás q Tárolás, nyilvántartás q Visszafejtés qa (K P ) nyilvános kulcsát mindenki elküldi egy bárki számára hozzáférhető nyilvántartásba. qa (K S ) titkos kulcsot jól védett helyen tárolja. qha Alice Bobnak küld üzenetet, kikeresi Bob nyilvános kulcsát. A blokkokra vágott üzenet darabjain a titkosítást egyenként hajtja végre. Visszafejtés a számsorozat tagjain külön-külön történik. qa B, A ( K p B) B (K s B) 30
Az RSA problémája qa módszerben a problémát a kulcsválasztás okozza. qkellően nagy prímszámokat kell választani. qkellően nagynak ma a legalább 100 jegyű prímszám számít. qezeket adott esetben jó sok pénzért lehet megvásárolni. qa. Shamirtól származik az az eljárás, amely minden előzetes kulcscsere nélküli titkos üzenetváltást tesz lehetővé. (Még nyilvános kulcs közzétételére sincs szükség!) 31
Shamir kulcscsere nélküli eljárása 1. A egy lelakatolható ládába helyezi el az üzenetet, és a ládát lelakatolja saját kulcsával, majd elküldi B-nek. 2. B nem is próbálkozik a fejtéssel, hiszen nem ismeri A kulcsát. Ráteszi a saját lakatját, és visszaküldi A-nak. 3. A leveszi saját lakatját, és a ládát, amelyen már csak B lakatja van eljuttatja B-nek, aki ezután azt már könnyedén kinyithatja. q A módszer egyetlen követelménye, hogy a kódoló transzformáció-pár kommutatív (felcserélhető) legyen. q Csak látszólag tökéletes megoldás! q A postás, a 2. lépésben a saját lakatját teheti a ládára, és miután a 3. lépésben A leveszi saját lakatját, a postás (behatoló) kinyithatja a ládát. 32
Matematikai alapok q prímszámok relatív prím q faktorizáció prímtényezők szorzata e1 e2 a = p1 p2... qeuler-féle f(n) függvény Zn* elemszáma Z = {[ a] Î Z : lnko( a, n) = 1} n qln ko meghatározása euklideszi algoritmus n n p e r r 33
Kulcskészítés qkiválaszt 2 db véletlenszerű prímszámot: (p,q), qkiszámítja a modulust: n=p*q qkiválaszt egy kis páratlan e egész számot, amelyik F(n)-hez relatív prím. F(n)=(p-1)*(q-1), 1<eF(n) qkiszámítja d-t, az e muliplikatív inverzének értékét e*d=1 mod F(n) és 0 d 1 qközli nyilvános RSA kulcsát, P=(e,n) párt. qtitokban tartja titkos RSA kulcsát, az S=(d,n) párt. qbiztonsága: faktorizáció nehézsége minél nagyobb prímszámok 34
A nyilvános kulcs problémája qérvényes-e (még) a kulcs? qazé-e a kulcs, akiről azt hisszük? qkulcsszétosztási technikák: qnyilvános kihirdetés qnyilvános katalógus qnyilvános kulcsszolgáltató qnyilvános kulcstanúsítvány qbizalmi háló qkulcsaláírási összejövetel qkulcsszerverek, kulcshitelesítő szervezetek 35
RSA alkalmazása qaz algoritmus lassú qhosszú szövegek titkosítása és megfejtése sok idő qinkább: a titkos kulcsok titkosítása. qpki technológiák 36
Kriptográfiai hash függvények qtetszőleges hosszúságú adatot fix hosszúságúra sűrítenek. qa H:{0,1}* {0,1} n hash fv. tetszőleges hosszúságú ősképtérbeli bináris sorozatot n hosszúságú bináris sorozatba képez. qalkalmazás: Egy ősképtérbeli M elemet M üzenetnek, a H(M) képtérbeli elemet lenyomatnak (hash értéknek) nevezünk. qfajtáii qegyirányú ősképellenálló OWHF (one way hash function) qütközésmentes CRHF (collision resistanthash function) nehéz olyan M, M', M¹M' üzenetpárt találni, H(M')=H(M) 37
38 Iterált kriptográfiai hash függvény 1. üzenetblokk 2. üzenetblokk t. ü.blokk padding üzenet f f f lenyomat q Merkle, f:{0,1} 2n {0,1} n iterációs függvény q üzenet: MÎ{0,1}*, M={M 1, M 2, M t } n bites blokkok q H i =f(m i, H i-1 ); i=1, 2,, t; H 0 = nyilvános, kezdeti érték q lenyomat: H(M,H 0 )=H t
Hash függvények a gyakorlatban qmd5 (1991): az egyik legelterjedtebb hash fv. q128 bites értéket ad qfunkciója: ellenőrző összeg pl. letöltésnél qma már nem kellően biztonságos qsha (1993/1995 SHA-1) Secure Hash Algorithm qfips 180, -1, -2 szabvány qsha- az algoritmus, SHS a szabvány q160 bit qbiztonsága már szintén kérdéses SHA-2: hosszabb 256, 384 és 512 - változatok qwhirlpool AES alapú, Eu-i qúj, hw-igénye nagy, biztonsága jobb, mint az SHA 39
Üzenethitelesítő algoritmusok qkulcs segítségével az üzenetből képeznek hitelesítő kódot (MAC - Message Authentication Code) qhmac hash fv-alapú qcmac titkosító alapú 40
Kriptográfia alkalmazása Biztonságos üzenetküldés követelménye 1. nyugtázott üzenetküldés 2. sértetlen üzenttovábbítás 3. hiteles üzenettovábbítás 4. bizalmas üzenettovábbítás 5. távoli azonosítás 6. letagadhatatlanság 41
A biztonságos megoldás összefoglalása Követelmény Elm. Gyak megoldás Biztonságosan nyugtázott/ rosszindulat Biztonságosan nyugtázott/ természetes nincs nincs Bizánci probléma, minden protokoll kijátszható nincs van valószínűségi alapon Sértetlen üzent továbbítás nincs van Hibakezelő kódolás 42 Hiteles üzenet-továbbítás nincs van a sértetlenség része érvényes üzenetek eltitkolása Bizalmas üzenettovábbítás van van Shannon-féle tökéletes titkosító Shanonn-tétel Távoli azonosítás nincs van 0. lépés problémája nyilvános kulcsú infrastruktúra Letagadhatatlanság nincs van hitelesség része nyilvános kulcsú rejtjelezés
Köszönöm a figyelmüket! Vége az 5. résznek. 43