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.