A szimmetrikus kulcsos algoritmusok legnagyobb problémája a kulcs biztonságos cseréje két fél között. Ha a kulcsot nem titkosÃtott csatornán továbbÃtjuk, akkor fennáll a veszélye, hogy a kulcsot valaki lemásolhatja és illetéktelenül férhet hozzá az adatokhoz.
Ezt a problémát oldja meg az 1976-ban a Whitfield Diffie és Martin Hellman által kidolgozott Diffie–Hellman kulcscsere algoritmus, ami a nyilvános kulcsú kriptográfia úttörÅ‘jének számÃt. Martin Hellman 2002-ben javasolta, hogy nevezzék át az algoritmust Diffie–Hellman–Merkle-re, mivel az algoritmusuk a Ralph Merkle által kidolgozott nyilvános kulcsú kriptográfián alapul.
A nyilvános kulcsú kriptográfia vagy más néven az aszimmetrikus kriptográfia olyan kriptográfiai rendszer, amely kulcspárokat használ. Mindegyik pár egy egyedi nyilvános kulcsból (amelyet mások is ismerhetnek) és egy egyedi privát kulcsból (amelyet a tulajdonoson kÃvül nem ismerhet) áll. Az ilyen kulcspárok létrehozása a kriptográfiai algoritmusoktól függ, amelyek matematikai problémákon alapulnak, amelyeket egyirányú függvényeknek neveznek. A hatékony biztonság megköveteli, hogy a privát kulcsot titkosan tartsák, mÃg a nyilvános kulcs nyÃltan terjeszthetÅ‘ a biztonság veszélyeztetése nélkül.
Az algoritmus működésének megértéséhez szükségünk lesz két kommunikálni kÃvánó félre. Ezeket publikus kulcsos kriptográfiai leÃrásokban Alice-nek és Bob-nak szokás nevezni, de bármilyen névvel működne a dolog, mivel csak szemléltetésrÅ‘l van szó. Viszont az Alice és Bob karakterek 1978 óta használtak ilyen leÃrásokban, Ãgy én is ennél maradok.
A leÃrás során a matematikai dolgokba nagyon nem merülök el, csak annyira amennyire szükséges. Nézzük tehát meg a kulcscsere folyamatát:
- Alice és Bob első körben publikusan megállapodik egy
pésgértékrÅ‘l. Példáulp= 23 ésg= 5.gesetén fontos, hogy a választottpszám primitÃv gyöke1 legyen, illetvepszám prÃm kell, hogy legyen. 23 esetén az 5 megfelel ennek a kritériumnak. - Ezt követÅ‘en Alice választ egy titkos egész számot. Ezt nevezzük
a-nak és legyen például az értéke 7. Ezt követÅ‘en Alice elküldi Bob-nak azAszámot, amit a következÅ‘képpen kapunk meg:A=gamodp. BehelyettesÃtve a példa értékeinketA= 57 mod 23 kifejezést kapjuk, ami azt eredményezi, hogyA = 17. - Bob is válszt egy titkos egész számot. Ez legyen
bés legyen az általa választott érték például 10. Ezt követÅ‘en Bob elküldi Alice-nak aBszámot, amit hasonlóan kapunk meg:B=gbmodp. Szintén behelyettesÃünk (B= 510 mod 23), majd elvégezve a műveleteket megkapjuk, hogyB = 9. - Ezt követÅ‘en Alice kiszámolja
sértéket, amit a következő módon kap meg:s=Bamodp(s= 97 mod 23 = 4) - Bob is kiszámolja
sértékét, amit Å‘ Ãgy tud megtenni:s=Abmodp(s= 1710 mod 23 = 4)
Az 5. lépés után s = 4 eredmény jött ki mind a két oldalon. A rendszer biztonságát az adja, hogy a és b értékeinek meghatározása ga mod p és és gb mod b ismeretében hatékonyan nem lehetséges. A példában egy kis prÃm számot alkalmaztunk, ami a lehetÅ‘ségek számát 23-ra redukálta. A gyakorlati kulcscsere esetén azonban p értéke 600 számjegy körüli szokott lenni. A rendszer biztonságosságához g értékének nem kell nagynak lennie egyáltalán.
Biztonság
A nyÃlt kulcsos kriptográfia alapvetÅ‘en akkor tekinthetÅ‘ biztonságosnak, ha egy kulcspár egyik tagja sincs felhasználva egy másik kulcspár részeként. Ha a választott privát kulcsunkhoz több eltérÅ‘ publikus kulcs is tartozik, akkor a privát kulcs kitalálása a szinte lehetetlen kategóriából egybÅ‘l a triviális kategóriába esik.
A Diffie–Hellman csere algoritmus önmagában nem biztosÃtja a kommunikáló felek hitelesÃtését. Ez azt jelenti, hogy Man in the middle támadás ellen nem védett. Mallory (a középsÅ‘ támadást végrehajtó aktÃv támadó) két különbözÅ‘ kulcscserét hozhat létre, az egyiket Alice-szel, a másikat Bobbal, ami gyakorlatilag Alice-nek álcázza magát Bobnak, és fordÃtva, lehetÅ‘vé téve számára, hogy visszafejtse, majd újra titkosÃtsa a közöttük átadott üzeneteket.
Egy ilyen támadás esetén Mallorynak a kommunikációban végig középen kell lennie és aktÃvan dekódolni és újra titkosÃtani az üzeneteket, amikor Alice és Bob kommunikál. Ha ez az aktÃv folyamat megszakad, akkor Alice és Bob számára nyilvánvalóvá válik, hogy hogy az összes privát beszélgetésüket lehallgatta és dekódolta valaki a csatornán.
Éppen ezért a hitelesÃtést meg kell oldani a felek között például digitális aláÃrás ellenÅ‘rzéssel vagy egy olyan kulcscserével, ami azonosÃtást is tartalmaz. Ilyen például az STS protokoll, ami lényegében a digitális aláÃrást és a Diffie–Hellman algoritmust ötvözi.
-
Ha n>1 természetes szám, akkor g primitÃv gyök modulo n, ha a g, g2,…,gφ(n) hatványok különbözÅ‘ maradékot adnak n-nel osztva, azaz g rendje modulo n pontosan φ(n). Itt φ(n) az Euler-féle φ-függvény. Más szóval, g hatványai a redukált maradékrendszert adják modulo n. Ha például n=5, akkor g=2 megfelel: hatványai rendre 2,4,3,1 modulo 5. Ekkor, ha gk ≡ a (mod n), akkor k-t g alapú indexnek vagy diszkrét logaritmusnak nevezik. Más szavakkal, g a modulo n maradékosztályok multiplikatÃv csoportjának generátora. – https://hu.wikipedia.org/wiki/Primit%C3%ADv_gy%C3%B6k↩