Második fejezet

Biztonságos kommunikáció

Szimmetrikus kulcsú titkosítás

A szimmetrikus kulcsú (más néven konvencionális) rejtjelezés modellezése során „A”-val, és „B”-vel (Alice és Bob) jelöljük a két számítógépet, melyek között lezajlik a képzeletbéli adatcserék sora. Továbbá „x”-szel fogjuk jelöljük az átküldendő üzenetet. A rejtjelezés az x nyílt üzenetből az y = E(kAB,x) rejtett üzenetet állítja elő, ahol „E” egy kAB paraméterű rejtjelező (kódoló) átalakítás (transzformáció). Szimmetrikus kulcsú titkosítás vátlataA kAB paramétert a rejtjelezés kulcsának nevezzük, mely csal Alice és Bob ismer. Amellett, hogy kAB tetszőleges rögzített, előre meghatározott érték lehet,E mindig egy kölcsönösen egyértelmű eredményt fog adni. A kódolás inverze a „D” dekódoló transzformáció, mely működését a következő képen lehetne felírni: x = D(kAB,y). Bob, itt ugyanazt a kettőjük által ismert kulcsot használva (kAB) dekódolja a rejtjelezett üzenetet.A dekódolás is egy egyértelmű végeredményt fog adni.

A szimmetrikus titkosítási eljárások egyik legfontosabb jellemvonása, hogy a kódolt információ olvasásához szükség van arra a titkosító kulcsra, amivel a forrást kódolták. Ebből adódik, hogy Bob sem tudja elolvasni Alice üzenetét, míg nem ismeri Alice titkosítás során használt kulcsát. Ez azt vonja maga után, hogy a küldő félnek el kell juttatnia valamilyen biztonságos csatornán a kulcsát a címzettjének. Ezt a „kulcsegyeztetést” akár telefonon, vagy postai úton is lehet végezni.

Diffie-Hellman

W. Diffie és M. E. Hellman alkotta meg a nyílt kulcsú (publikus kulcsú) titkosítás alapjait.

Whitfield DiffieWhitfield Diffie

Az 1944-ben született amerikai származású kriptológus a Bostoni Műszaki Egyetemen szerezte meg a diplomáját. 11 év múlva Diffie és Hellman kiadta a New Directions in Cryptography - Új direktívák a kriptográfiában-t. Ez egy radikálisan új, az úgynevezett kulcsmegosztáson alapuló kriptográfia bevezetőjeként jelent meg. Később ez Diffie-Hellman kulcscsere néven vált ismerté. Az írásból a kriptográfiának egy új, fejlődésben lévő szintje, az úgynevezett aszimmetrikus kulcsú kriptográfia leírása körvonalazódott.

Diffie a Northern Telecomnál dolgozott, mint biztonsági főnök, fejlesztő (megtervezte a PDSO biztonsági rendszer kulcsmegosztását X.25 hálózatokhoz), majd a Sum Microsystems-hez ment át, mint kiváló mérnök. Az itteni munkája során elsődleges kutatási területe a kriptográfia nyilvános aspektusainak vizsgálata volt. Későbbi a Swájci Műszaki Egyetem tudományos doktori címben részesíti.

Martin Edward HellmanMartin Edward Hellman

Hellman egy évvel később született Diffie-nél, 1945-ben. BSc diplomáját a New York Egyetemen szerezte, majd később a mesterképzést a Standford Egyetemen végezte el 1967-ben. Villamosmérnökként szerzi professzori címét.

Az IBM’s Watson Research Center-nél dolgozik 21 évet, majd segédprofesszor a Massachusettsi Műszaki Egyetem-en. Két év múlva Standford-i egyetemen dolgozik, majd Professor Emeritus (nyugalmazott professzor)címet kap. Ezután visszavonult a komolyabb egyetemi munkáktól és a jelentősebb kutatásoktól.

Aszimmetrikus kulcsú titkosítás

A szimmetrikus kulcsú titkosításhoz képest annyi a különbség, hogy a kódoló és a dekódoló kulcs nem azonos, sőt a dekódoló kulcsot a kódoló kulcsból kiszámítani "nehéz" feladat. Egy aszimmetrikus kulcsú rendszerben minden rendszerbeli B résztvevőhöz tartozik egy kulcspár. Ez áll egy kp,B kódoló kulcsból és a ks,B dekódoló kulcsból, ahol a kódoló kulcs nyilvános (ezért nevezik ezt a rejtjelezési módszert nyilvános kulcsú rejtjelezésnek is), míg a dekódoló kulcs titkos, azt csak B ismeri. Olyan rendszerekben, ahol egynél több résztvevő van, a nyilvános kulcsokat egy kulcstárban helyezik el, amelyet mindenki olvashat. Ha Alice szeretne egy x üzenetet titkosítottan küldeni Bob-nak, akkor kiolvassa a nyilvános kulcsok tárából a kp,B kódoló kulcsot, majd az y=E(kp,B,x) alapján kódolt üzenetet küldi el Bob-nak. Bob ebből a rejtett y üzenetből x = D(ks,B,y) dekódolással nyeri ki az x üzenetet. Asszimetrikus kulcsú titkosítás vátlataA kódolás a nyilvános kulcs ismeretében egyszerű feladat (hisz megtalálható a központi kulcstárban), míg a dekódolás a rejtett kulcs hiányában gyakorlatilag nem végrehajtható, "nehéz" feladat. "Nehéz" feladatra példa egy nagy összetett szám prímtényezőkre bontása.

Az aszimmetrikus kulcsú rejtjelezés előnye tehát, hogy a titkos kommunikáció megvalósításához nincsen szükség egy közös titkos kulcs előzetes megbeszélésére a küldő és a vevő között; elegendő a rejteni kívánt üzenetet a vevő nyilvános kódoló kulcsával rejtjelezni. Viszont ez egy újabb problémát vet fel. A küldőnek meg kell győződni arról, hogy a használni kívánt nyilvános kulcs valóban az üzenet címzettjének a nyilvános kulcsa.

Előfordulhat, hogy egy rossz szándékú harmadik fél el akarja lopni az „A” által küldendő információt. Ő akkor tud hozzáférni az üzenet tartalmához, ha Alice a harmadik fél publikus kulcsával titkosítja az üzenetét. Ilyen nem fordul elő, ha megfelelően van ellenőrizve a fogadó kiléte. Így a nyilvános kulcsú kriptográfia oly módon egyszerűsíti a kulcscsere-problémát, hogy titkos csatorna helyett hiteles csatorna létezését követeli meg a vevő és a küldő között, melyen a vevő eljuttathatja nyilvános kulcsát a küldőnek.

Egy ilyen hiteles csatorna kiépítésére tökéletes eszközként szolgál a Diffie-Hellman kulcscserélő protokoll.

A Diffie - Hellman nyilvános kulcscserélő algoritmus

Az algoritmus készítői nevéről kapta a nevét, mely azóta az X9.42-es szabványszámra is hallgat. Nyilvános kulcscserélésEz a nagyszerű eljárás abban hordozza az erejét, hogy míg az eddigi titkosítások során kellett egy előre ismert publikus kulcs a nyílt üzenettitkosításhoz, és emellett szükség volt ennek a párjára (privát kulcs), mellyel olvasni lehetett a rejtjelezett üzenetet, ebben az esetben nincs semmilyen előre megbeszélt információra szükség.

A működés matematikája a következő. Alice rendelkezik egy száz számjegy nagyságrendű g prímszámmal, egy közel száz számjegyű n számmal, és egy privát kulccsal, X-szel. Ez a privát kulcs egy tetszőleges számérték lehet (általában 1024 bit hosszú), tehát felfoghatjuk egy véletlen számnak is, mivel ezt Alice határozza meg. Az n egész számnak és a g egész számnak relatív prímeknek kell lenniük, a nehezebb visszafejthetőség érdekében. Ezek segítségével kiszámol Alice egy publikus értéket a pA=gX (mod n) kifejezés szerint, amit majd el fog küldeni Bob-nak. Ezután Alice elküldi a titkosítás alapjául szolgáló két nagy számot és az imént kiszámolt értéket. Ezt a kommunikációt nem kell titkosítani, mert semmilyen titkos adatot nem tartalmaz, bárki lehallgathatja, nem fogja tudni a biztonságos kapcsolat felépülése után felhasználni ezeket az információkat. Bob, miután megkapta Alice-tól a három paramétert (n, g, pA), generálja ő is a saját publikus értékét pB=gY (mod n), majd visszaküldi Alice-nak. Ezután mind a két fél kiszámolja a közös kulcsukat, mely mind a két oldalon egyező végeredményt kell, hogy hozzon. Ennek segítségével fogják majd dekódolni a küldött üzenetet. A számítás a következő:

A: kAB=pBX (mod n) B: kBA=pAY (mod n )

Ekkor kettőjük közös kulcsa kAB = kBA = gXY (mod n) érték lesz. Innentől kezdve ennek a közös kulcsnak a segítségével szimmetrikus titkosítással tudják a rejtjelezett kommunikációt folytatni.

A Diffie-Hellman kulcscsere a következő matematikai összefüggésen alapul:

[gY(mod n)]X = [gX(mod n)]Y = gXY (mod n)

Vegyünk egy példát erre (a következő esetben a számolás egyszerűsége kedvéért kis számokat és rövid egyéni kulcsot fogunk használni). A száz számjegy nagyságú prímszám helyett, mi 3-at használunk, az ő relatív prím párja „n” ebben az esetben 47 lesz. Alice privát kulcsa legyen például 8. Összegezve:

g=3 n=47 X=8

Ezekből a paraméterekből Alice kiszámolja a saját nyilvános értékét.

pA=gX (mod n) = 38 (mod 47) = 28

Ezután elküldi Alice Bob-nak a három paramétert, g-t, n-et, és pA-t.

A másik oldalon Bob a saját nyilvános értékének generálásához 10-et fog használni privát kulcsként, így a következő adatokkkal fog dolgozni:

g=3 n=47 Y=10

Bob is kiszámolja a saját nyilvános értékét, majd visszaküldi Alice-nak azt (csak a saját publikus értékét fogja visszaküldeni, hisz már az A oldalon ismert a g és az n értéke)

pB=gY (mod n) = 310 (mod 47) = 17

Miután mind a két oldalon ismerik a másik fél publikus értékét, így kiszámolják a közös kulcsukat, melyet majd a kommunikáció során fognak felhasználni.

Publikus és privát kulcs

A: kAB=pBX (mod n) = 178 (mod 47) = 4

B: kBA=pAY (mod n ) = 2810 (mod 47) = 4

Értelemszerűen, ez a kulcs csak a kapcsolat ideje alatt érvényes, így annak bontása után nem tud semmit kezdeni vele egy esetleges harmadik fél.

Különböző módozatok

Prímszámok

A Diffie-Hellman kulcscserélő algoritmus biztonságát a folyamat során használt (ez esetben az A oldalon előre meghatározott, vagy generált g) prímszám és a vele összefüggésben lévő relatív-prímszám (n) milyensége is döntően befolyásolja. A különböző, ezen a protokollon alapuló kulcscserélő algoritmusok abban különböznek egymástól, hogy milyen kikötéseket írnak elő g és n egész számra. Például g csak olyan prímszám lehet, melyből kivonva egyet, majd ezt osztva kettővel prímszámot ad eredményül.

Nagy jelentősége van az egész számítás alapjául szolgáló prímszám (g) és a hozzá tartozó másik egész szám n időnként frissítésére, váltására. Ez megnöveli a rendszer biztonságát, és így nehezebben tudnak betörni a kapcsolatba.

Több résztvevő esetén

A Diffie-Hellman kulcscsere algoritmus használata több, legálisan a láncban tartózkodó résztvevő esetére Steiner, Tsudik és Waidner a következő módszert fejlesztette ki. Több résztvevő esetében a résztvevők (1, 2, 3, 4) egy láncot alkotnak, majd az első tag indít egy üzenetet, melyet a résztvevők kiegészítés után láncszerűen továbbküldenek. Kulcscserélés több résztvevő eseténEz igazából csak az egyik oldala a Diffie-Hellman üzenetnek, mert majd az utolsó egység küldi a másikat. A kiegészítések az ábrán láthatóak. Ez a folyamat a legutolsó elemig folytatódik. Ez viszont már képes lesz a közös „titok” létrehozására (αr1r2r3r4), így minden egyes résztvevőnek eljuttatja a számára hiányzó információkat. A titok csak a megfelelő végpontok számára lesz ismert.

Ezen eljárás fő problémája, hogy a lánc utolsó eleme kitüntetett szereppel rendelkezik, mivel ő továbbítja minden egyes résztvevőnek a hiányzó információt a közös titok előállításához. Ez több okból sem kedvező. Az egyik ok, hogy viszonylag nagy mennyiségű adat átvitelére van szükség és könnyebben fog célpontot is képezni a betörések során, egy-egy támadás alkalmával.

Valid HTML 4.01 TransitionalValid CSS!