Az internet: titkosítás, nyilvános kulcsok
Sziasztok! Mia Gil-Epner vagyok, számteket tanulok Berkeley-ben, a Kaliforniai
Egyetemen, és a Védelmi Minisztériumnak dolgozom, ahol próbáljom biztonságban
megőrizni az információt.Az internet nyílt és nyilvános rendszer. Mind megosztott
vezetéken és csatlakozáson küldjük és kapjuk az infót. És bár nyílt a rendszer,
sok személyes adatot is cserélünk. Pl. bankkártya számot, bankadatot, jelszót.
Hogy marad titok ez a sok személyes dolog? Bármilyen adatot titokban lehet tartani a
titkosításnak nevezett folyamattal, az üzenet megváltoztatásával, ami elrejti
az eredetit. Dekódolásnak nevezzük az eredeti olvashatóvá tételét. A gondolat
egyszerű, és az ember évszázadok óta gyakorolja. Az egyik első titkosítási mód
a Julius Caesar-ról elnevezett cézár- rejtjel volt, aki a katonai parancsokat
titkosította, hogy az ellenség ne értse. A cézár-rejtjel olyan algoritmus, ahol az
eredeti üzenet betűit bizonyos számú lépéssel eltolt betű helyettesíti.
Ha az eltolás száma olyan, amit csak küldő és a fogadó ismer, akkor ezt
nevezzük a megoldókulcsnak. Lehetővé teszi a címzett számára a rejtett üzenet
megfejtését. Ha például az eredeti üzenet "HELLÓ", a cézár-rejtjel algoritmussal,
ha a kulcs 5, a titkosított üzenet ez lenne: "LHÖÖR". Az üzenet dekódolásához
a címzett a kulcs segítségével egyszerűen visszafordítja a folyamatot.
Egy nagy probléma van a cézár-rejtjellel, hogy bárki könnyen feltörheti a kódot
vagy megfejtheti a titkos üzenetet minden lehetséges kód kipróbálásával, és az angol
ábécében csak 26 betű van, ami azt jelenti, hogy legfeljebb 26 kulcsot kell
kipróbálnod. 26 lehetséges kódot kipróbálni nem túl nehéz, legfeljebb
egy vagy két óráig tart. Nehezítsük hát! Ahelyett, hogy minden betűn ugyanannyit
változtatunk, módosítsuk őket eltérően. Ebben a példában tízjegyű kulcs adja meg,
hány pozícióval kell eltolni az egyes betűket hosszabb üzenet titkosításához.
Ennek a kulcsnak az eltalálása tényleg nehéz lenne, mert tízjegyű kulccsal a
lehetséges kulcsok száma 10 milliárd. Ez nyilván több, mint amit egy ember meg tud
fejteni, évszázadokig tartana. Egy átlagos számítógép viszont néhány másodperc alatt
végigpróbál ennyi lehetőséget. Tehát a mai világban, ahol a rosszfiúk ceruza helyett
számítógéppel dolgoznak, lehet-e úgy titkosítani, hogy a kódot túl nehéz legyen
feltörni. Most a túl nehéz azt jelenti, túl sok a lehetőség ésszerű időn belül
kiszámítani.A mai biztonságos kommunikáció 256 bites kulcsot használ. A rosszfiúknak,
ennyi lehetséges változatot kellene kipróbálni, hogy meg tudják fejteni az
üzenetet. És ha 100.000 szuper computerük lenne, és mindegyik millió billió kulcsot
tudna kipróbálni másodpercenként, akkor is trillió trillió év lenne minden lehetőség
kipróbálása egyetlen, 256 bit titkosítású üzenet feltöréséhez. Persze a számítógép
chipek évente kétszer olyan gyorsak és feleakkorák lesznek. Ha a fejlődés üteme
ilyen exponenciális marad, a ma lehetetlen probléma néhány száz év alatt megoldhatóvá
válik, és 256 bit nem lesz elég. Már így is növelnünk kellett a standard kulcs
hosszt, hogy lépést tartsunk a gépek sebességével.
A jó hír az, hogy a hosszabb kulcs a titkosítást nem teszi nehezebbé, de
exponenciálisan növeli a próbálkozások számát, ami a kód feltöréséhez kell. Ha
a küldő és fogadó megosztja az üzenet kódolásához és dekódolásához szükséges
kulcsot, azt szimmetrikus titkosításnak nevezzük. A szimmetrikus titkosításnál
a titkos kulcsban előre meg kell állapodni két embernek személyesen. Az embereknek ez
remek, de az internet nyílt és nyilvános, két számítógép nem tud "egymás közt"
megegyezni titkos kódban. Ehelyett a gépek aszimmetrikus titkosító kulcsot használnak
egy nyilvánosat, ami megosztanak, és egy privátot, amit nem. A nyilvános kulccsal
titkosítják az adatokat, és bárki alkothat titkos üzenetet, de a dekódolás csak annak
a gépnek megy, aki hozzáfér a privát kulcshoz. Ez olyan matematika, amibe most
nem megyünk bele. Gondolj rá úgy, hogy van egy személyes levélszekrényed, ahová bárki
betehet levelet,, de egy kulcs kell hozzá. Ebből a kulcsból sokat másolsz, és küldesz
a barátodnak vagy nyilvánosan elérhetővé teszed. A barát vagy egy idegen is eléri
a küldő nyílást és dobhat neked üzenetet. De csak te tudod kinyitni a levélszekrényt
a privát kulcsoddal, hogy elérd a titkos üzeneteket, amiket kaptál. És biztonságos
üzenetet küldhetsz a barátodnak a nyílt kulccsal, az ő levélszekrényéhez. Így az
emberek biztonságos üzeneteket válthatnak anélkül, hogy meg kellene egyezniük egy
privát kulcsban. A nyilvános kulcsos titkosítás az alapja minden biztonságos
üzenetküldésnek a nyílt interneten. Az SSl és TLS elnevezésű biztonsági
protokollokkal, amelyek bennünket védenek, amikor a neten böngészünk. A te géped is
használja, amikor a kis lakatot látod, vagy a https betűket a böngésző
címsorában. Ez azt jelenti, hogy a géped használja a nyilvános kódoló kulcsot a
biztonságos adatcseréhez azon a honlapon, ahol vagy. Ahogy egyre több ember van a
neten, egyre több személyes adat átvitele történik, és még fontosabb lesz az adatok
biztonsága. És ahogy a gépek gyorsabbak, új módszereket kell találni, hogy a titkos
üzenetet túl nehéz legyen a számítógépnek feltörni. Ez a munkám, és mindig változik.