|
|
|
|
|
|
|
|
|
|
|
|
|
Friss fórum:
|
|
A hét kérdése:
Jelentkezz be a heti kérdéshez!
|
|
Legolvasottabbak:
|
|
|
Nyilvános kulcsú titkosítás |
|
|
|
2004.09.12. yoda |
|
| Az alapötlet: veszek két nagyon nagy prímszámot, és azokat összeszorzom. Az eredményt elnevezem lakatnak, kulcsnak pedig a két osztót. Bárki könnyen leellenőrizheti, hogy a kulcsom valóban nyitja a lakatot (persze innentől neki is lesz kulcsa). Egy másik ember lakatját felbontani két prímszám szorzatára elvileg lehetséges, gyakorlatilag évmilliókba telhet.
| |
|
Hirdetés
| |
| A titkosított adatcsere úgy folyhat két fél között, hogy megegyeznek egy kódoló (C) és egy dekódoló (D) függvényben, melyre igaz, hogy ha egy üzenetet kódolok, majd dekódolok, megkapom magát az üzenetet ( D(C(x))=x ).
Hívjuk x-nek a közlendő információ, és a kódolt üzenet - C(x) - "megy át a dróton". Egy harmadik személy, ha nem ismeri a dekódoló D függvényt, nem fogja megtudni az üzenetet a kódolt üzenetből.
A nyilvános kulcsú titkosítás lényege, hogy olyan D és C párost kell találni, hogy D ismeretében ne lehessen kitalálni C-t, és fordítva. Ekkor mindenki közzéteheti a saját C függvényét, D mégis titok marad. Ha valaki ennek a félnek üzenetet akar küldeni, azt elkódolja a nyilvános C-vel, és biztos lehet benne, hogy csak a címzett tudja elolvasni, mert csak ő ismeri a D függvényt, amivel az üzenet dekódolható.
Ha C(D(x))=D(C(x)), akkor a rendszert használhatjuk úgy, hogy a feladót is biztonsággal azonosítsuk: a küldő az üzenetet előbb elkódolja a saját D függvényével, majd a fogadó C függvényével. A fogadó megkapja az üzenetet, amit csak ő tud visszafejteni, először a saját D függvényét, majd a küldő C függvényét alkalmazva. Ilyenkor biztos lehet, hogy a feltüntetett küldő a valódi küldő, mert ismerte a feltüntetett küldő D függvényét.
A gyakorlati megvalósítás központjai hitelesítő szervezetek, akiknél nyilvános kulcsot lehet regisztrálni. Ezekben a szervezetekben mindegyik félnek meg kell bíznia. Ők tárolják el mindenki személyes C-jét, és ezt bárki megkérdezheti tőlük, mint egy telefonkönyvből.
Hogy hogyan történik a hitelesítés az RSA kulcsok alapján? Hogy tudja egy bank eldönteni, hogy én vagyok-e a bankszámla tulajdonosa? Megkérdezheti a bankszámla tulajdonosának a C függvényét. Majd kitalál egy tetszőleges x számot. Elküldi nekem C(x)-et. Ha ebből elő tudom állítani x-et, akkor tudom a tulajdonos D függvényét - ami elég bizonyíték. Ám ezt a szemléletes módszert nem használják, mert ha a bank ügyes, rá tud venni arra, hogy egy üzenetet, ami nekem szólt, dekódoltasson velem.
Az RSA titkosítást nagyon hosszú idő feltörni (56 bitest egy szuperszámítógép 2 év alatt tört meg - ám a kódolásban az 1024 bites az elterjedt), ám maga a kommunikáció is számításigényes. Tehát ahol nem végzetesen fontos a biztonság, ott RSA adatfolyammal csak egy titkos kulcsot beszélnek meg, és azzal a titkosítással folyik az igazi kommunikáció.
Érdekességképpen az RSA titkosítás (bizonyos szintű matektudás szükséges hozzá):
Tehát a C és D függvények jók adatok kódolására / dekódolására.
Ha közzéteszem e-t és n-t, bárki végre tudja hajtani C-t. D végrehajtásához viszont d ismerete is kellene. d előállításához n prímtényezői kellenek, amit én tudok, mások pedig gyakorlatban nem tudják kiszámolni. Tehát a módszer jó nyilvános kulcsú titkosításra.
A függvények csak akkor adnak egyértelmű eredményt, ha x és n relatív prímek. Ezért az elkódolandó x-et ki kell egészíteni néhány megfelelően megválasztott számjeggyel, amit a dekódolás után eldobnak. | |
|
Kapcsolódó cikkek
|
|
- Aerogel - az űr pora ellen
- UFO mentette meg az emberiséget?
- Gyufarejtvény XXIX.
|
|
|