Internet: šifriranje in javni ključi
Živjo, moje ime je Mia Gil-Epner in sem študent računalništva na Berkeley-ju
in delam na ministrstvu za obrambo, kjer poskušam varovati podatke.
Internet je odprt in javen sistem. Vsi pošiljamo in prejemamo informacije prek skupnih žic
in povezav. A čeprav gre za odprt sistem, si vseeno izmenjujemo veliko zasebnih
podatkov. Na primer številke kreditnih kartic, bančnih podatkov, gesla in e-pošto.
Torej, kako vse te zasebne stvari obvarujemo? Podatke katere koli vrste, je mogoče obdržati
v tajnosti s šifriranjem, kodiranjem ali spreminjanjem sporočila, da se skrije
izvirno besedilo. Dekripcija je postopek dešifriranja tega sporočila, da postane berljivo.
To je preprosta ideja in ljudje to počnejo že stoletja. Eden prvih znanih načinov
šifriranja je bila Cezarjeva šifra, poimenovana po Juliju Cezarju, rimskemu generalu,
ki je šifriral svoje vojaške ukaze, da bi zagotovil, da če sporočilo prestrežejo
sovražniki, ga ne bodo mogli prebrati. Cezarjeva šifra je algoritem, ki v izvirnem sporočilu
nadomesti vsako črko z črko, ki se nahaja določeno število korakov navzdol po abecedi.
Če je številka nekaj, kar vedo le pošiljatelj in prejemnik, se imenuje ključ.
Bralcu omogoča odklepanje skrivnega sporočila. Če je na primer vaše izvirno
sporočilo "HELLO", potem z uporabo Cezarjeve šifre s ključem 5, bi bilo šifrirano sporočilo
takšno... Za dešifriranje sporočila bi prejemnik preprosto uporabil ključ za
obračanje postopka. Vendar obstaja velika težava s Cezarjevo šifro, in sicer kdorkoli
lahko zlahka razbije šifro, tako da preizkusi vsak možen ključ, v angleški becedi
pa je samo 26 črk, kar pomeni, da bi moral za dešifriranje sporočila testirati le
največ 26 ključev. Preizkusiti 26 ključev ni težko, to bi vzelo največ eno uro ali dve.
Torej, otežimo postopek. Namesto, da bi vsako črko premaknili za enako število,
prestavimo vsako črko za drugačno število. V tem primeru, desetmestni ključ prikazuje
za koliko položajev bo posamezna črka spremenjena za šifriranje daljšega sporočila.
Tak ključ bi bilo zelo težko uganiti. Z 10 mestnim šifriranjem bi dobili 10 milijard
možnih rešitev. Očitno je, da je to več, kot bi lahko kdaj rešil človek, trajalo bi
stoletja. Toda danes, povprečni računalnik bi potreboval le nekaj sekund, da bi preizkusil vseh 10 milijard možnosti.
Torej, v sodobnem svetu, kjer so slabi fantje obroženi z računalniki namesto s pisali,
kako lahko varno šifrirate sporočila, da jih je zelo težko razbiti? "Zelo težko" pomeni,
da je preveč možnosti, da bi računalnik izračunal v razumnem času.
Današnje varne komunikacije so šifrirane z 256-bitnimi ključi. To pomeni, da bi moral
računalnik zlonamerne osebe, ki prestreže vaše sporočilo, preizkusiti toliko možnih opcij...
dokler ne odkrije ključ in dešifrira sporočilo. Tudi, če bi imeli 100.000 super računalnikov
in bi vsak od njih vsako sekundo preizkusil milijon milijard ključev, bi terjalo milijarde
in milijarde let za vsako opcijo, da bi uspešno dešifrirali samo eno 256-bitno sporočilo.
Je res, da računalniški čipi vsako leto postanejo dvakrat hitrejši in polovico manjši.
Če se bo ta hitrost eksponentnega napredka nadaljevala, bodo današnji nemogoči
problemi rešljivi le za nekaj sto let in 256 bitov ne bo zadoščalo.
Pravzaprav smo že morali povečati standardno dolžino ključa, da smo lahko sledili napredku
računalnikov. Dobra novica je, da uporaba daljšega ključa ne otežuje šifriranje sporočil,
vendar eksponentno poveča število ugibanj, ki bi jih potrebovali, da bi razbili šifro.
Ko imata pošiljatelj in prejemnik isti ključ za šifriranje in dešifriranje sporočila, temu
rečemo simetrično šifriranje. S simetričnim šifriranjem, tako kot Cezarjeva šifra, se
morata o tajnem ključu vnaprej dogovoriti dve osebi. To je odlično za ljudi, a
internet je odprt in javen, zato je nemogoče, da se 2 računalnika zasebno "srečata", da
se dogovorita o tajnem ključu. Namesto tega, računalniki uporabljajo asimetrične ključe,
javni ključ, ki ga je mogoče deliti z vsakim, in zasebni ključ, ki se ga ne deli.
Javni ključ se uporablja za šifriranje podatkov in kdor koli ga lahko uporabi za ustvarjanje
tajnega sporočila, katerega lahko dešifrira samo računalnik, ki ima dostop do zasebnega ključa.
To deluje na principu matematike, ampak v to se zdaj ne bomo spuščali. Predstavljajte si to,
kot osebni nabiralnik, kjer lahko vsakdo odloži pošto, vendar za to potrebuje ključ. Lahko
ustvarite veliko kopij takega ključa in enega pošljete prijatelju ali pa ga javno objavite.
Vaš prijatelj ali celo neznanec lahko z javnim ključem dostopa do nabiralnika in odloži
sporočilo v njem. Toda samo vi lahko odprete nabiralnik s svojim zasebnim ključem in tako
dostopate do vseh prejetih tajnih sporočil. Varno sporočilo lahko pošljete nazaj prijatelju
z uporabo javnega ključa njegovega nabiralnika. Na ta način, si lahko ljudje izmenjujejo
varna sporočila, ne da bi se kdaj morali dogovoriti za zasebni ključ. Kriptografija
z javnimi ključi, je temelj vseh varnih sporočil na odprtem internetu, vključno z varnostnimi protokoli, znanimi
kot SSL in TLS, ki nas varujeta, ko brskamo po spletu. Tudi vaš računalnik to uporablja,
to lahko vidite v naslovni vrstici brskalnika v obliki majhne ključavnice ali HTTPS oznake.
To pomeni, da vaš računalnik uporablja javno šifriranje ključev za varno izmenjavo podatkov
s spletnim mestom, na katerem se nahajate. S širjenjem interneta, se bo prenašalo vedno
več zasebnih podatkov, potreba po zaščiti teh podatkov bo še bolj pomembna.
In ker računalniki postajajo vse hitrejši, bomo morali razviti nove načine, kako
šifriranje bolj otežiti, da jih računalniki ne bodo mogli razbiti. To je moje delo, ki se nenehno spreminja.