Kriptográfia Hetedik előadás Nyilvános kulcsú kriptográfia II. Kulcsgondozás és további nyilvános kulcsú rendszerek Dr. Németh N L. Zoltán SZTE, Számítástudom studomány Alapjai Tanszék 2008 ősz
Kulcsgondozás (Key Management) a nyilvános nos kulcsú titkosítás s segít t megoldani a kulcselosztás s problémáját Ennek két k t aspektusa van: I. a nyilvános nos kulcsok szétoszt tosztása sa azaz eljuttatása mindazokhoz, akik üzenetet küldhetnek a titkos kulcs birtokosának II. a nyilvános nos kulcsú titkosítás s használata titkos kulcsok cseréjére re hogy az így biztonságosan eljuttatott titkos kulccsal gyors szimmetrikus titkosítással ssal lehessen kommunikálni hibrid kriptorendszerek,, ld. később. k
A nyilvános nos kulcsok szétoszt tosztása sa (Distribution of Public Keys) A nyilvános nos kulcsú titkosítás, s, semmit sem ér, ha a küldk ldő nem győződik meg arról, hogy a nyilvános nos kulcs hiteles,, azaz valóban a címzettc mzetté. Mert egy támadt madó a címzett c nyilvános nos kulcsát t a saját nyilvános nos kulcsára hamisítva elolvashatja az üzenetet. Sőt, ha elfogja és s megfejti az üzenetet, utána még m g a címzett valódi kulcsával titkosítani tani is tudja, majd tovább bbítani a címzettnek. c Így még m észrevétlen is maradhat. De pont azért szeretnénk nk a nyilvános nos kulcsú rendszert használni, hogy ne kelljen a nyilvános nos kulcsot előre titokban kommunikálni. Hogyan oldható ez meg mégis? m Kemény dió.
A nyilvános nos kulcsok szétoszt tosztása sa (Distribution of Public Keys) Különböző technikák k vannak használatban, melyek az alábbi 4 csoportba sorolhatók: nyilvános nos kihirdetés (public announcement) nyilvános nos hozzáférésű katalógus (publicly available directory) nyilvános nos kulcsszolgáltat ltató (public-key authority) nyilvános nos kulcs tanúsítv tványok (public-key certificates)
1. Nyilvános kihirdetés a felhasználók k közhk zhírré teszik a nyilvános nos kulcsukat a várhatv rható feladóknak, vagy nagyobb közösségeknek pl. e-mailhez csatolva hírcsoportokra, levelezési listákra küldvek (személyes) weblapra feltéve, stb. a legnagyobb hátrh tránya, hogy könnyen hamisíthat tható: bárki könnyen k készk szíthet nyilvános nos-magán n kulcspárt, amit más m s nevében adhat ki amíg g a csalást st a címzett c észre nem veszi, és s a feladókat nem figyelmezteti, a támadt madó szabadon olvashatja a neki küldk ldött üzeneteket
2. Nyilvános hozzáférésű katalógus (Publicly Available Directory) nagyobb biztonság érhető el, a kulcsok nyilvános nos katalógusba törtt rténő regisztráci ciójával a katalógust működtetm dtető egyénben/szervezetben a résztvevőknek meg kell bíznib a katalógus gus: {név, nyilvános nos kulcs} bejegyzéseket tartalmaz a résztvevr sztvevők k személyesen v. titkosan regisztrálj lják kulcsaikat a katalógusba a katalógusban tárolt t kulcsot bármikor ki lehet cserélni a katalógust időnk nként nt közzk zzéteszik a katalógus elektronikusan is biztonságos kommunikáci cióval elérhet rhető hátrány: lehetséges hamisítás és s a katalógus feltörése
3. Nyilvános kulcsszolgáltat ltató (Public-Key Authority) a biztonságoss gosság g növelhetn velhető a kulcsok katalógusb gusból l törtt rténő kiadásának szigorúbb ellenőrz rzésével tulajdonságai ua.-ok mint a katalógus esetében a felhasználóknak ismerni kell a katalógus nyilvános nos kulcsát a kért k nyilvános nos kulcsok a katalógusb gusból biztonságos interaktív v kapcsolattal kérhetk rhetők k le de csak akkor szüks kséges valós s idejű hozzáférés s a katalógushoz, ha a kulcsok még m g nem állnak rendelkezésünkre, nkre, azaz (1)-(2) (2)-t és s (4)-(5) (5)-öt csak ekkor kell végrehajtani v
3. Nyilvános kulcs-csere csere kulcsszolgáltat ltatón n keresztül N 1 és N 2 nonce = véletlen bitsorozat, a kapcsolat egyedi azonosítója
4. Nyilvános kulcs tanúsítv tványok (Public-Key Certificates) a kulcsszolgáltat ltató használata szűk k kereszt- metszet lehet: elérhet rhetőség, feltörhet rhetőség a tanúsítv tvány biztosítja tja a kulcs-cser cserét t a kulcsszolgáltat ltató valós s idejű elérése nélkn lkül a tanúsítv tvány a felhasználói i azonosító és s a nyilvános nos kulcs összetartozását t igazolja általában segédinform dinformációkat is tartalmaz, mint érvényességi idő,, használati jogkör r stb. a tanúsítv tványt aláí áírja a nyilvános nos kulcs szolgáltat ltató vagy hitelesítés-szolg szolgáltató Certificate Authority (CA( CA) bárki ellenőrizheti, aki ismeri a szolgáltat ltató nyilvános nos kulcsát
4. Nyilvános kulcs tanúsítv tványok használata
II. A nyilvános nos kulcsú titkosítás használata titkos kulcsok cseréjére re az előző módszerekkel megszerzett nyilvános nos kulcsot felhasználhatjuk lhatjuk titkosításra sra vagy hitelesítésre sre de a nyilvános nos kulcsú algoritmusok lassúak ak ezért inkább a gyors szimmetrikus módszerekkel m akarjuk magát t az üzenetet titkosítani tani ehhez egy kapcsolatkulcsra (session key) van szüks kség ezt cserélik ki a felek egymás s közt k a nyilvános nos kulcsú titkosítás s használat latával
II. a nyilvános nos kulcsú titkosítás használata titkos kulcsok cseréjére re Több alternatívája van a kapcsolatkulcsban való megegyezésnek és így a biztonságos kapcsolat megteremtésének nek. Pl: 1) egyszerű titkos kulcs szétoszt tosztás 2) titkos kulcs szétoszt tosztás s nyilvános nos kulcsú kriptográfi fiával 3) hibrid kulcs szétoszt tosztás
1. Egyszerű titkos kulcs szétoszt tosztás (Simple Secret Key Distribution) Merkle javasolta 1979-ben 1. A generál l egy új j ideiglenes nyilv./mag./magán n kulcspárt 2. A elküldi ldi B-nek a nyilvános nos kulcsot és s az azonosítóját 3. B generál l egy új K kapcsolatkulcsot és s elküldi ldi A-nak a kapott nyilvános nos kulccsal titkosítva tva 4. A megfejti K-t t a magánkulccsal Biztonságos passzív v támadt madás (csak lehallgatás) ellen. Nem biztonságos aktív v támadt madás s ellen,, a támadó a nyilvános nos kulcsot a sajátj tjára cserélve megszemélyes lyesítheti A-tA és s hozzájuthat K-hoz.
1. Egyszerű titkos kulcs szétoszt tosztás s vázlatv
2. Titkos kulcs szétoszt tosztás nyilvános nos kulcsú kriptográfi fiával Ha már m PU A és PU B cseréje megtört rtént: N 1 és N 2 nonce = véletlen bitsorozat, a kapcsolat egyedi azonosítója
3. Hibrid kulcs szétoszt tosztás s (IBM) szüks kséges egy kulcselosztó központ (key distribution center: KDC) itt minden felhasználónak nak egy titkos (szimmetrikus) főkulcsa (master key) ) van a KDC szimmetrikus titkosítással ssal tovább bbítja a kapcsolatkulcsokat a felekhez nyilvános nos kulcsú titkosítás s csak a főkulcsok f szétoszt tosztásához, váltv ltásához szüks kséges előnyei: teljesítm tmény (a szimmetrikus titkosítás s gyorsabb) hátrafele kompatibilitás s (backward( compatibility) különösen egyetlen KDC és s széles felhasználói kör r esetén n hasznos
Diffie-Hellman kulcs-csere csere (Diffie-Hellman Key Exchange) az első publikált lt nyilvános nos kulcsú módszer Diffie és Hellman (1976), a nyilvános nos kulcsú rendszer ismertetésével megj: ma már m r tudjuk, hogy Williamson (UK CESG) 1970-ben ismerte ezt, de eredmény nyét t titokként kezelték egy praktikus eljárás s titkos kulcsok nyilvános nos cseréjére re számos kereskedelmi termékben használj lják
Diffie-Hellman kulcs-csere csere egy közös k s titkos érték k kialakítását t valósítja meg nem használhat lható tetszőleges üzenet titkosítására de jój egy közös k s kulcsban való megállapod llapodásra melyet csak a két k t fél f l ismer a végsv gső közös s titok függ f mindkét t résztvevr sztvevőtől (a a felek nyilvános nos és s titkos informáci cióiktól),,könny nnyű irány ny :: moduláris (v. véges v test feletti) hatványoz nyozás,,nehéz z irány ny : diszkrét t logaritmus számítása sa
Diffie-Hellman kulcs-csere csere vázlatv
Diffie-Hellman kulcs generálás a felhasználók k (többen is lehetnek, nem csak ketten) megegyeznek a globális lis paraméterekben: egy q nagy prímsz mszám a egész mely q primitív v gyöke azaz a hatványik nyiként nt minden 0<y<q egész előáll ll mod q minden felhasználó (pl.. A) elkész szíti a kulcsait: generál l egy titkos x A < q számot, a magánkulcs nkulcsát kiszámítja a nyilvános nos kulcsát: y A = a xa mod q a nyilvános nos kulcsát t mindenki közzk zzéteszi
Diffie-Hellman kulcs-csere csere az A és B közös s titka K AB lesz: K AB = a x A x B mod q x = y B A mod q (ahogy( B számítja ki) x = y A B mod q (ahogy( A számítja ki) K AB ezután n használhat lható titkos kulcsként szimmetrikus titkosításra sra A és B között a támadt madónak a titkos x A vagy x B értékek valamelyikének kiszámítására van szüks ksége, ami a diszkrét t logaritmus probléma megoldását t jelenti hátrány, hogy A és s B a következk vetkező kapcsolatban is ugyanazzal a kulccsal kommunikál, ha csak nem generálnak újra nyilvános/mag nos/magán n kulcspárt
Példa Diffie-Hellman kulcs-cser cserérere A és B közötti titok kialakítása sa: közös s paraméterek: q=353 és a=3 választott magánkulcsok nkulcsok: A választásasa x A =97, B választásasa x B =233 a nyilvános nos kulcsok kiszámítása sa: y A =3 97 mod 353 = 40 (A-é) y B =3 233 mod 353 = 248 (B-é) a közös k s titok kiszámítása sa: K AB K AB AB = y xa B mod 353 = 248 97 = 160 (A) AB = y xb A mod 353 = 40 233 = 160 (B)
Kulcs-csere csere protokollok (Key Exchange Protocols) minden pár p r minden kommunikáci ció előtt új nyilvános/mag nos/magán n kulcsot generálva egyezik meg a kapcsolatkulcsban a felhasználók k csak egyszer készk szítik el a kulcsaikat, melyeket egy közös k s katalógusban tesznek közzk zzé,, mellyel biztonságosan kommunikálnak sajnos mindkét t módszer m sérülékeny s az aktív v (me( men-in-the-middle) támadásra (HF!) a kulcsok hitelesítésére van szüks kség
Elliptikus görbg rbéken alapuló kriptográfia Elliptic Curve Cryptography a nyilvános nos kulcsú kriptográfia jórésze (RSA, D-D H) hatalmas prímsz mszámokra mokra vagy polinomokra épül ez jelentős s terhet jelent a kulcsok használat latában, cseréjében és s tárolt rolásában az elliptikus görbg rbék k erre kínálnak k alternatívát ugyanazt a biztonságot kisebb kulcsméret mellett nyújtj jtják új j módszerek, m még m g nem annyira kiforrott az elemzésük k (mint pl. az RSA-é)
Valós s ellipte lliptikusikus görbék egy kétvk tváltozós s egyenlet definiálja őket a számunkra érdekes harmadrendű elliptikus görbg rbék az alábbi alakúak: ak: y 2 = x 3 + ax + b ahol x,y,a,b valós s számok feltétel: tel: nincs többszt bbszörös s gyök, azaz 4a 3 + 27b 2 0 és s még m g egy speciális pont: O (végtelen távoli t pont) egy ilyen göbe g pontjain összeadást st definiálhatunk lhatunk: a P és s Q pont összege: P+Q legyen a PQ egyenes és s a görbe g R metszéspontj spontjának, nak, az x tengelyre vonatkozó tükörképe (Ez szintén n a görbg rbén n lesz, mert a görbe g az x tengelyre szimetrikus)
Összeadás s elliptikus görbg rbén
Összeadás s elliptikus görbg rbén P +Q számításának speciális esetei: P + O = O +P = P ha nincs metszéspont spont PQ egyenes függf ggőleges, ekkor P+Q := O, (vagyis Q = -P, az additív v inverz = a tükörkt rkép) ha P = Q, akkor 2P = P + P a P-beli P érintő és s a görbe g metszetének tükörkt rképe Beláthat tható,, hogy a görbe g pontjai az így definiált összeadásra sra nézve n Abel-csoportot alkotnak. Így pl.: (P + Q ) + (-Q)( = P /ezért kell tükrt krözni./ Szemléltet ltetése: CryptTool bemutató (Indiv. Procedures / legalsó menüpont)
Véges ellipte lliptikusikus görbék Az elliptie lliptikus görbék k kriptográfi fiája olyan görbg rbéket használ, melynek mind az együtthat tthatói, mind a változóinak értékei végesekv gesek. két általánosan használt családjuk: prím m görbg rbék E p (a,b) a Z p test felett egész értékeket használ modulo p (ahol p prím) feltétel, tel, hogy 4a 3 + 27b 2 0 = {(x,y) y 2 =x 3 +ax+b mod p} E p (a,b)= {(x,y) szoftver alkalmazásokban jobb bináris görbg rbék E 2 m(a,b) (a,b)a GF(2 m ) véges test felett bináris együtthat tthatójú polinomokat használ hardver alkalmazásokban jobb
Elliptikus görbg rbék k kriptográfi fiája (Elliptic Curve Cryptography) P+Q: ECC összeadás s = a hagyományos moduláris szorzás analógiája kp: ECC ismételt összeadás s = a hagyományos moduláris hatványoz nyozás s analógi giája a nehéz z irány ny a diszk zkrét log analógi giája: Q=kP kp, ahol Q és P a prím görbe pontjai Q-t t kiszámítani k és P ismeretében könnyk nnyű de k-t t meghatározni Q-ból és P-ből l nehéz ezt nevezzük elliptikus görbe g logaritmus problémának (elliptic curve logarithm problem) Példa: E 23 (9,17)
ECC Diffie-Hellman kulcs-csere csere a D-H-hoz hasonlóan an állapodhatunk meg egy közös k s titokban a felek előre választanak v egy alkalmas E p (a,b) görbét és s egy alappontot (base( point) G=(x 1,y 1 ) melynek rendje: n nagy (rend = a legkisebb n melyre ng=o =O) A és B magánkulcsot választ: v n A <n, n B <n a nyilv.. kulcsok: P A =n A G, P B =n B G a közös k s titok: K=n A P B, K=n B P A ez ugyanaz, mert K=n A n B G
ECC Titkosítás/megfejt s/megfejtés több alternatíva van, az alábbi a legegyszerűbb: alkalmas görbg rbét és G alappontot választunkv az üzenet M blokkját t a görbe g egy P m pontjával azonosítjuk a címzett c generál l egy magánkulcsot: n B <n és s kiszámítja a nyilvános nos kulcsát: P B =n B G P m titkosítása sa: C m ={kg kg, P m +kp B }, ahol k véletlen érték C m megfejtése se: P m +kp B n B (kg)) = P m +k(n B G) n B (kg)) = P m
Az ECC biztonsága a biztonsága az elliptikus görbe logaritmus probléma nehézs zségén n alapszik a ma ismert leggyorsabb eljárás s rár a Pollard rho algoritmus összehasonlítva a faktorizáci cióval jóval kisebb kulcsmért elégs gséges, ges, mint pl. az RSA esetén ugyanakkor egyező kulcsméret mellett a titkosítás s számításig sigénye, kb. megegyezik az RSA-éval ezért hasonló biztonság g szint megtartásával az ECC jelentős s számítási si előnnyel rendelkezik
A szüks kséges kulcsméretek összehasonlítása sa egyező biztonsági szintek mellett Szimmetrikus titkosítások (kulcs bitekben) 56 80 112 128 192 256 ECC-alapú (n mérete bitekben) 112 160 224 256 384 512 RSA/DSA (a modulus mérete bitekben) 512 1024 2048 3072 7680 15360
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# William Stallings: Cryptography and Network Security,, 4th Edition, Prentice Hall, 2006. (Chapter 10) Lawrie Brown előad adás s fólif liái i (Chapter( 10)