Ropogós

Nincsenek friss tartalmak.

» A teljes listához

Új hozzászólások

» 2017.02.16. 15:38:22, Noel @ Nem minden privacy tipp "tuti"

» 2016.11.13. 13:14:07, Illés bence jános @ Hogyan válasszunk erős jelszót?

» 2016.09.24. 07:22:07, Bola Online @ Alkalmazott kriptográfia – TrueCrypt

» 2015.12.25. 21:18:36, MobilKém @ Lehallgatható kikapcsolt állapotban a mobiltelefon?

» 2015.11.26. 21:38:36, [anonymous] @ Titokban összesúg a tévé és az okostelefon

Aszimmetrikus kriptográfia

| | 2008.07.21. 18:35:05  Földes Ádám Máté  

Vissza

Ez a bejegyzés egy hosszabbra tervezett, kriptográfiai témájú sorozat negyedik darabja. A bejegyzésekben nem bocsátkozom komoly elméleti fejtegetésekbe – csak a privátszféra védelme iránt érdeklődő laikus vagy szakmabeli számára potenciálisan érdekes dolgokat szeretném kifejteni. A sorozat előző darabja itt olvasható: http://pet-portal.eu/blog/read/72/2008-05-26-Az-egyszeri-kitoltes-algoritmusa-es-az-etkezo-kriptografusok-protokollja.php

Az eddigiekben szimmetrikus kriptográfiáról volt szó, pár példával – ma is használt rendszerek vázlatos ismertetésével – fűszerezve. Emlékezzünk: a szimmetrikus kriptográfiában a nyílt szöveget titkos szöveggé transzformáló kulcs azonos a fordított irányú transzformációt elvégzővel. Az aszimmetrikus (vagy más néven nyilvános kulcsú ) kriptográfiában más a helyzet.

Azt a kulcsot, amely a titkosításhoz használatos, nyilvános kulcsnak hívjuk, míg azt, amely a visszafejtéshez szükséges, titkos vagy privát kulcsnak (lásd az ábrát). Ez utóbbi kulcs megnevezésénél egyes „iskolák” szigorúan ragaszkodnak a „privát kulcs” megnevezéshez, és a „titkos” titulust a szimmetrikus kriptográfiában használt egyetlen kulcsnak osztják ki (ezért szokás a szimmetrikus kriptográfiát titkos kulcsú kriptográfiának is nevezni). Szó se róla, egy kriptográfiával általánosan foglalkozó írásműben hasznos lehet a többértelműség ilyetén feloldása. Mindazonáltal ebben a bejegyzésben csak nyilvános kulcsú kriptográfiáról lesz szó, így a visszafejtéshez szükséges kulcs mindkét megnevezését használom majd.

Az aszimmetrikus kriptográfia működése

Figyeljük meg, milyen beszédes neveket adtak az aszimmetrikus kriptográfia úttörői a két kulcsnak – a név árulkodik a kulcs természetéről. A nyilvános kulcsot a birtokosa megoszthatja az egész világgal, és (ideális esetben) biztos lehet benne, hogy a közzétett kulccsal kódolt üzeneteket csak a nála levő privát kulcs transzformálja vissza nyílt szöveggé, valamint abban is, hogy a nyilvános kulcsból nem lehet kikövetkeztetni a hozzá tartozó titkos kulcsot. Már ennek az egyszerű ténynek önmagában hatalmas jelentősége van: feltételezve, hogy a nyilvános kulcs tényleg nyilvános (vagyis bárki egyszerűen megtudhatja egy tetszőleges személy nyilvános kulcsát), nem kell többé a két kommunikáló félnek „csatornán kívül” kulcsot egyeztetnie az üzenetváltás megkezdése előtt. A kulcscsere csak annyiból áll, hogy a két fél kikeresi a másik nyilvános kulcsát mondjuk egy nyilvános adatbázisból. A kommunikáció során az egyik fél a nyílt szöveget a nyilvános kulccsal titkos szöveggé transzformálja, majd átviszi az esetleg lehallgatható csatornán. A másik fél megkapván az üzenetet a privát kulcsot használva visszatranszformálja a titkos szöveget nyílt szöveggé. (Megjegyzésként egy kis matematikai fejtegetés. Tegyük fel, hogy van n kommunikáló személy, és mindenki szeretne mindenkivel kulcsot cserélni. Aszimmetrikus kriptográfiánál mindenkihez egyetlen nyilvános kulcs tartozik, vagyis az összes kulcs száma n. Szimmetrikus kriptográfiánál minden kommunikáló párhoz külön kulcsot kell egyeztetni, vagyis a kulcsok száma n*(n-1)/2. Az aszimmetrikus kriptográfia tehát nagy n esetén nagyságrendileg n-szer kevesebb kulcscserét igényel mint a szimmetrikus. Ez sokfelhasználós rendszereknél nagyon nagy különbség.)

Aszimmetrikus kriptográfiai algoritmusból is sokféle van, azonban legtöbbjük két matematikai problémán (vagy ezek egyikén) alapul: a nagy összetett számok prímtényezőkre bontásán (más szóval faktorizálásán) illetve a diszkrét logaritmuson . A legszélesebb körben használt RSA algoritmus az első probléma nehézségét használja ki: egy nagyon nagy (több ezer bit hosszú, vagyis több száz számjegyű) szám és egy hatványkitevő alkotják a nyilvános kulcsot, míg a szám két prímtényezője segítségével a titkos kulcsként használt visszafejtő hatványkitevőre lehet következtetni. (Sajnos az algoritmus teljeskörű ismertetéséhez szükséges matematikai háttér tárgyalása nem fér bele a Portál kereteibe.) Dióhéjban tehát nyilvános egy nagy N szám és egy nyilvános e hatványkitevő, míg titkos az N számnak a két prímtényezője és a segítségükkel kikövetkeztető d titkos hatványkitevő. Az üzenet forrása egyetlen számmal reprezentálja a nyílt szöveget, majd e-edik hatványra emeli, végül pedig képzi az eredmény N-nel osztva kapott maradékát. Az így kapott végeredmény a titkos szöveg. Az üzenetet megkapó a d-edik hatványra emeli a titkos szöveget, majd képzi az N-nel osztva kapott maradékot, és így pont visszakapja a nyílt szöveget. (Két megjegyzés. Egyrészt a hatványozás eredményének kiszámítására sokkal célszerűbb módszereket használnak az itt ismertetettnél. Az eredmény természetesen ugyanaz, viszont az idő- és memóriaigényben jelentkező különbség drámai. Másrészt felmerül a kérdés: miért nem számíthatjuk ki úgy a prímtényezőket N-ből, hogy szisztematikusan elosztjuk 2-től kezdve minden egész számmal N-t, és nézzük, van-e maradék? A válasz egyszerű: nagyon sokáig tartana. Megfelelően hosszú kulcs esetén akár évmilliókig is...)

 

Az RSA egy másik fontos alkalmazási területéről még nem beszéltünk: a digitális aláírásról. A módszer lényege, hogy fordítva járunk el: előbb a titkos kulcsot használjuk az üzeneten (illetve a gyakorlatban annak kivonatán – erről majd egy későbbi bejegyzésben), majd az így nyert ún. aláírást elküldjük az eredeti üzenettel együtt (opcionálisan aztán ezt az egészet titkosíthatjuk is a küldés előtt, ha rendelkezünk a másik fél nyilvános kulcsával). Ezzel két legyet ütünk egy csapásra: egyrészt az aláírás csak az azt privát kulcsával elkészítő felhasználó nyilvános kulcsával transzformálódik vissza az eredeti szöveggé, tehát a forrás nem tagadhatja le az üzenet elküldését, másrészt arról is meggyőződhetünk, hogy az üzenet sértetlen.

Ez mind szép, de arról még nem esett szó, hogy hol találkozunk a mindennapjainkban aszimmetrikus kriptográfiával. Egyik alkalmazási terület a PGP és a hasonló e-mail titkosítási módszerek. Ezek segítségével még küldés előtt titkosíthatóak illetve aláírhatóak a levelek. A módszer hátránya, hogy a címzett e-mail címe mindig titkosítatlanul közlekedik a világhálón, csak a levél tartalma marad rejtve. Egy másik alkalmazási terület a TLS , mellyel például akkor találkozunk, amikor bankunk weboldalát böngésszük, és egy kis lakatocska jelzi a címsorban a biztonságos kapcsolatot. A TLS használatához csak a szervernek kell nyilvános kulccsal rendelkeznie, a kliensnek nem. Felmerül a kérdés: hogyan lehet akkor a szerverről titkosított adatot küldeni a kliensnek? A válasz az, hogy az aszimmetrikus kriptográfia csak az ún. kézfogás során kap szerepet. Ekkor a két fél egyeztet egy ún. viszonykulcsot, melyet a kapcsolat fennállásának ideje alatt használnak szimmetrikus kriptográfiához. Ez két okból is jó: egyrészt a kliensnek nem kell kulcspár, másrészt a teljesítmény oldalán is komoly a nyereség. Ez utóbbi magyarázata az, hogy a – mai – nyilvános kulcsú kriptográfiában a szimmetrikus kriptográfiáéval egyenértékű biztonság eléréséhez sokkal hosszabb kulcsokat kell használni (emlékezzünk: RSA-nál többszáz számjegyből álló számokat), így az aszimmetrikus kriptográfia nagyságrendekkel lassabb és nagyobb számításigényű a titkos kulcsúhoz képest. Ezért a ma létező rendszerek döntő többségében (banki weblap, megfelelően konfigurált WiFi vagy VPN, okos kártya, stb.) az aszimmetrikus kriptográfia a kapcsolatfelvételkor kap szerepet hiszen sok felhasználóra is jól skálázható, vagyis a felhasználótábor növekedtével nem nő csillagászatira a kulcsok száma míg a szimmetrikus kriptográfia a már felépült kapcsolaton keresztül történő kommunikációban, mert viszonylag gyors, és az aszimmetrikus kriptográfia segítségével lehetséges a kapcsolatfelvételkor véletlenszerű viszonykulcsot egyeztetni hozzá ).

Címkék: biztonság, kriptográfia

Permalink: https://pet-portal.eu/blog/read/84/2008-07-21-Aszimmetrikus-kriptografia.php

Forrás: http://en.wikipedia.org/wiki/Public-key_cryptography

Ajánló

Vissza


Hozzászólások

Összesen 0 hozzászólás látható.

Nincsenek hozzászólások.


Új hozzászólás beküldése

Bárki hozzászólhat, nem regisztrált beküldő esetén egyik adat megadása sem kötelező - a hozzászólás akár névtelen is lehet.

Név:
E-mail:
Blog:
Megerősítési kód (Új kép generálása a megerősítési kódról)

A BBCode egy egyszerű jelölő nyelv, amellyel a hozzászólásokat lehet formázni. Érvényes parancsok:

bold: [b]Maecenas at nisl.[/b]
italics: [i]Maecenas at nisl.[/i]
underline: [u]Maecenas at nisl.[/u]
url: [url]http://www.mysite.com[/url], [url=http://www.mysite.com]Maecenas at nisl.[/url]
image: [img]http://www.mysite.com/mypic.png[/img]
quote: [quote]Maecenas at nisl.[/quote]
code: [code]Maecenas at nisl.[/code]
size: [size=12]Maecenas at nisl.[/size]
color: [color=#FF0000]Maecenas at nisl.[/color]

Hozzászólok!





© International PET Portal, 2010 | Impresszum | Felhasználási feltételek | Adatvédelmi Nyilatkozat