Nyilvános kulcsú rejtjelezés

A Wikipédiából, a szabad enciklopédiából
(Nyílt kulcsú titkosítás szócikkből átirányítva)

A nyílt/nyilvános kulcsú rejtjelezés vagy titkosítás, más néven aszimmetrikus kulcsú titkosítás egy olyan kriptográfiai eljárás neve, ahol a felhasználó egy kulcspárral – egy nyilvános és egy titkos kulccsal rendelkezik. A titkos kulcs titokban tartandó, míg a nyilvános kulcs széles körben terjeszthető. A kulcsok matematikailag összefüggnek, ám a titkos kulcsot gyakorlatilag nem lehet meghatározni a nyilvános kulcs ismeretében. Egy, a nyilvános kulccsal kódolt üzenetet csak a kulcspár másik darabjával, a titkos kulccsal lehet visszafejteni.

1975-ben Diffie és Hellman egy forradalmian új titkosítási eljárást hoztak nyilvánosságra. Ebben a titkosításban a titkosító (T) és a megfejtő (M) kulcsok – melyek egy-egy függvényt takarnak s egymás inverzei – közül T-t nyilvánosságra hozzuk, M-et pedig titokban tartjuk, ráadásul minden félnek saját T és M „függvényei” vannak.

Az eljárás biztonsága[szerkesztés | forrásszöveg szerkesztése]

Bár Diffie és Hellman eljárása képtelen ötletnek hangzik, hiszen ha az egyik irányban ismeri valaki az eljárást, akkor a másik irányban is meg tudja adni azt, mégis látni fogjuk hogy ez nem minden esetben van így. Elvonatkoztatva a matematikától, vegyük ezt a példát:

Elméletben egy angol–magyar szótár – a T függvény – használható magyar–angol szótárként. Ha mondjuk az ablak szó jelentését akarjuk megtalálni, elég csak sorra nézni az angol–magyar szótárunk (ábécérendben szereplő) angol szavait, amíg a magyar jelentések között fel nem bukkan az ablak kifejezés. Mivel ez a window-nál fog csak bekövetkezni, rájöhetünk, hogy egy magyar–angol szótár – az M függvény – is kéne a legközelebbi „fordításhoz”.

Ezek után nem elképzelhetetlen, hogy a T kulcs nyilvános ismerete mellett is az M kulcs egyedül az illetékes személy titka maradjon.

A nyilvános kulcsú titkosítás módszere[szerkesztés | forrásszöveg szerkesztése]

Minden szereplő elkészít magának egy T,M kulcspárt, melyek egymás inverzei. A T kulcsot nyilvánosságra hozza, az M kulcsot viszont titokban tartja. Legyen A kulcspárja \ T_A,M_A, a B kulcspárja pedig \ T_B,M_B. Ekkor A az \ u üzenet helyett a \ v = T_B(M_A(u)) értéket küldi el B-nek, aki ezt a következőképpen fejti meg: \ u = T_A(M_B(v)). Lássuk hogyan működik (valóban helyesen) ez az eljárás

\ T_A(M_B(v)) = T_A(M_B(T_B(M_A(u)))) = az inverz függvények miatt
\ = T_A(M_A(u)) = u.

Magyarázat: A a \ v kiszámításához szükséges \ M_A függvényt ismeri, a nyilvános \ T_B függvényt pedig tudja, mivel az nyilvánosan ismert. B-nél hasonló a helyzet \ M_B-vel és \ T_A-val.

A titkosítás alapkövetelményei[szerkesztés | forrásszöveg szerkesztése]

A nyilvános kulcsú titkosításban is teljesül a titkosítás két alapkövetelménye, miszerint A üzenetét csak B érti meg, illetve, hogy egy tetszőleges harmadik C fél nem küldhet hamis üzenetet A nevében B-nek, hiszen csak A ismeri a kódoláshoz szükséges \ M_A-t.

Emellett nincs szükség előzetes kulcsegyeztetésre, és mindenki használhatja ugyanezeket a kulcsait másokkal történő levelezésben is. Végül A és B között sem merülhet fel vita az üzenetről, mert a hamisíthatatlan elektronikus aláírásként működő \ M_A akár bíróság előtt is bizonyíthatja az üzenet valódiságát.

A titkosító kulcsok[szerkesztés | forrásszöveg szerkesztése]

Diffie és Hellman rendszerének megvalósításához tehát olyan T,M kulcspárokra van szükség, melyeknél T ismeretében M visszafejtése nagyon bonyolult, ideális esetben lehetetlen. 1976-ban Rivest, Shamir és Adleman a nyílt kulcsú titkosítás elvéhez fejlesztette ki az azóta is népszerű, s elterjedt RSA titkosítási módszert, illetve Philip R. Zimmermann a PGP eljárást.

Forrás[szerkesztés | forrásszöveg szerkesztése]