KRIPTOGRAFIJA – ZNANSTVENA DISCIPLINA SKRIVANJA PODATAKA

Nema sigurnog rješenja

Sigurno znate da kriptografija nema veze s planetom Kriptonom niti s kriptama već da je riječ o šifriranju, odnosno skrivanju podataka. A znate li kakve vrste kriptiranja postoje? Čemu služe i što su tajni i javni ključevi? Kada se primjenjuje? Kako radi i koliko je zaista sigurno?

PIŠE ZLATKO LONČAR


Autor mr. sc. Zlatko Lončar, dipl. inf. zaposlen je u HEP-ODS d.o.o., Elektra Požega u Odjelu za poslovnu informatiku. Magistrirao je na poslijediplomskom znanstvenom studiju Informacijskih znanosti Fakulteta organizacije i informatike u Varaždinu, gdje je prethodno diplomirao. Informatikom se intenzivno bavi više od 20 godina, a područja od posebnog interesa su mu projektiranje informacijskih sustava, baze podataka, interna revizija IS-a, sigurnost IS-a, elektronički kanali za distribuciju informacija te projektiranje i programiranje za web.

KRIPTOGRAFIJA (izvedenica iz grčkog pridjeva kriptós “skriven” i glagola gráfo “pisati”), ponekad zvana i kriptologija, je znanstvena disciplina koja se bavi proučavanjem metoda za slanje poruka u takvom obliku da ih može pročitati samo onaj kome su namijenjene. Taj proces pretvaranja izvorne poruke u poruku čitljivu samo primatelju zovemo šifriranje, kriptiranje ili zaštitno kodiranje.
Zaštitno kodiranje nikako ne treba miješati s pojmom sigurnosnog kodiranja. Pod sigurnosnim kodiranjem podrazumijevamo nastojanje projektanta da poruka isporučena primatelju bude jednaka izvornoj poruci, odnosno da se greške pri isporuci svedu na minimum. Međutim, zaštitnim se kodiranjem nastoji da poruka poslana određenom primatelju bude čitljiva i razumljiva samo njemu te da bilo tko drugi, ako slučajno ili namjerno dođe do takve poruke ne može pročitati njen sadržaj, odnosno da ga ne može razumjeti (tablica 1).

Prepoznavanje problema
Koji problem želimo riješiti? Pretpostavimo da dvoje ljudi želi razmjenjivati važne informacije u obliku poruka (bez obzira na kanal koji pritom koriste) tako da ih nitko drugi ne može pročitati, odnosno da ih ne može razumjeti u slučaju da dođe do njih.
Jedno od rješenja bi bilo da to dvoje ljudi govori jezik koji samo oni znaju. To ne mora biti pravi jezik, dovoljno je da dogovore nekakva pravila koja će primjenjivati pri pisanju (kriptiranju) i čitanju (dekriptiranju) poruka. Za početak pravila mogu biti jednostavna. Naprimjer, mogu se dogovoriti da će umjesto petnaestog slova abecede pisati peto, umjesto dvadesetosmog šesto itd. Dakako, što su pravila složenija to će poruka biti bolje zaštićena.
Bez obzira na kompleksnost pravila se uvijek svode na funkcije - jednu ili više njih. Ako se takvom funkcijom kriptiraju podaci onda ona mora biti bijektivna, tj. mora postojati inverzna funkcija koja služi za dekripciju, odnosno dešifriranje. Naprimjer, ako je pri pisanju poruke dvadesetosmo slovo abecede zamijenjeno šestim, onda pri čitanju moramo šesto slovo zamijeniti dvadesetosmim kako bismo došli do izvorne poruke.
Pošiljatelj poruke primjenjuje dogovorenu funkciju na skup podataka i dobiva kriptirane podatke koje šalje primatelju. S druge strane, primatelj na dobiveni kriptirani tekst primjenjuje inverziju dogovorene funkcije što rezultira početnim, originalnim skupom podataka.



Slika 1. Sustav kriptiranja tajnim ključem (simetrično)



Slika 1. Sustav kriptiranja tajnim ključem (simetrično)

Sustav kriptiranja tajnim ključem (simetrično kriptiranje)
Prethodno opisani način kriptiranja nazivamo kriptiranje tajnim ključem ili simetrično kriptiranje. Tajni ključ je upravo ona funkcija koja služi za kriptiranje, a njen inverz za dekriptiranje. Grafički prikaz sustava kriptiranja tajnim ključem - slika 1.
Sve dok je moguće razmijeniti taj ključ u tajnosti ovakav način kriptiranja je sasvim dobar. Ako se k tomu pošiljatelj i primatelj mogu i fizički sresti da razmijene tajni ključ, onda ovaj sustav gotovo da i nema nedostataka. Međutim, u najvećem broju slučajeva kad treba kriptirati podatke komunikacija se odvija elektronskim putem, a osobe koje komuniciraju nalaze se na velikim udaljenostima. Mnogi se nikad nisu ni sreli pa se u takvoj situaciji nameće problem kako razmijeniti tajni ključ jer za to treba pronaći nekakav sigurni kanal, a to je najveći nedostatak sustava kriptiranja s tajnim ključevima.

Sigurnosno kodiranje Zaštitno kodiranje
nastojanje da isporučena poruka bude identična poslanoj, tj. da greška bude što je moguće manja nastojanje da poruka bude sasvim nerazumljiva bilo kome drugome osim onome kome je namijenjena

Zamislimo slučaj kad trebamo kriptirano komunicirati s nekoliko stotina ili tisuća osoba. Recimo, banka ima klijente s kojima želi elektronski komunicirati na siguran način (naprimjer internet-bankarstvo). Čak i uz uvjet da možemo s njima u tajnosti razmijeniti tajne ključeve jako bismo si zakomplicirati komunikaciju jer bismo morali za svakoga od njih upotrijebiti drugi tajni ključ. U protivnom, kada bi svi imali isti tajni ključ svi bi bančini klijenti mogli čitati sve poruke, bez obzira kojem klijentu su namijenjene, odnosno koji ih je poslao. A to nikako ne želimo. Upravo u tome se ogleda drugi nedostatak simetričnog kriptiranja.

Iako su razrađeni mnogi teorijski i praktični sustavi, još se ne može reći da postoji jedno rješenje koje rješava sve probleme zaštite podataka

Ideja za rješenje tih problema jest izbjeći razmjenu tajnog ključa uvođenjem još jednog ključa u sustav. Tada jedan od dva ključa služi samo za kriptiranje, a drugi samo za dekriptiranje. Ključ koji služi samo za kriptiranje može biti dostupan svima. Čak štoviše, mora biti dostupan svima koji žele slati kriptirane poruke jer bez njega ih ne mogu kriptirati. Taj ključ zovemo javni ključ.
Drugi ključ služi samo za dekriptiranje i ne treba ga slati svakome jer ga ima samo osoba kojoj su upućene kriptirane poruke. Njega zovemo tajni ključ.

Sustav kriptiranja s javnim ključem (asimetrično kriptiranje)
Ako razmotrimo sliku 2 koja prikazuje sustav kriptiranja s javnim ključem (asimetrično kriptiranje) i usporedimo ga sa sustavom kriptiranja s tajnim ključem, uočit ćemo da kod sustava s javnim ključem nije potreban sigurni kanal što je bio najveći nedostatak sustava s tajnim ključem.


Sigurnosno kodiranje treba osigurati da poruka isporučena primatelju bude jednaka izvornoj poruci

Ako Ivica želi poslati kriptiranu poruku Marici mora imati njezin javni ključ. Mogao ga je dobiti direktno od nje jer ona želi da joj šalje kriptirane poruke ili je jednostavno objavila svoj javni ključ (naprimjer na Internet-stranici) i svatko tko želi može doći do njega. Dakle, Ivica ima Maričin javni ključ i kad joj napiše poruku kriptira je pomoću tog njenog javnog ključa i pošalje bez potrebe za sigurnim kanalom. S druge strane, kad Marica primi kriptiranu poruku i upotrijebi tajni ključ koji ima samo ona, njime dekriptira poruku. Rezultat je poruka čiji je sadržaj identičan izvornoj poruci koju je napisao Ivica.
Ako pak Marica želi Ivici odgovoriti kriptiranom porukom mora imati Ivičin javni ključ kojim će kriptirati poruku prije slanja standardnim komunikacijskim kanalom. Takvu će poruku na odredištu Ivica dekriptirati svojim tajnim ključem. Kako bi ovakvo zaštitno kodiranje bilo održivo i imalo smisla nužno je da onaj tko ima javni ključ ne može pomoću njega izračunati i kreirati tajni, barem ne u nekom razumnom vremenu.

Zaštitnim se kodiranjem nastoji da poruka poslana određenom primatelju bude čitljiva i razumljiva samo njemu

Prednost postaje mana
Nedostatak simetričnog kriptiranja s tajnim ključem jest sigurni kanal kojim se on prenosi između sudionika komunikacije. Taj problem uspješno rješava asimetrično kriptiranje s dva ključa - tajnim i javnim.
Najveća prednost RSA kriptiranja koje predstavlja asimetrično kriptiranje jest što se primjenom velikih prostih brojeva onemogućuje u razumnom roku izračunavanje tajnog ključa. Međutim, baš iz te činjenice proizlazi i njegov najveći nedostatak. Zbog primjene velikih brojeva jako je spor pa se brzina kriptiranja i dekriptiranja kreće između samo 103 i 105 bit/sek. Zato RSA kriptiranje nije pogodno za rad s većim količinama informacija.

Ideja hibridnog kriptiranja
Zbog problema s RSA algoritmom male brzine kriptiranja taj se sustav praktički ne koristi kao samostalan kriptosustav pri kriptiranju većih količina informacija. Ideja hibridnog kriptiranja jest spajanje prednosti simetričnog kriptiranja tajnim ključem s prednostima asimetričnog kriptiranja javnim ključem. Tako se zadržava brzina algoritma što je prednost simetričnog kriptiranja i visoki stupanj zaštite koju pruža asimetrični algoritam.
Spajanjem ta dva sustava dolazi se do hibridnog kriptiranja. U tom slučaju asimetrično kriptiranje služi za kriptiranje tajnog ključa kod simetričnog sustava. Tako više nije potreban sigurni kanal, a zadržava se brzina kriptiranja i dekriptiranja.

Dakle...
Nakon niz godina tijekom kojih su raz-rađeni teorijski i praktični sustavi koji bi trebali riješiti problem zaštite podataka još ne možemo reći da postoji jedno rješenje koje rješava sve takve probleme. Postoje odlični široko prihvaćeni proizvodi koji daju odlične rezultate, ali nikako ne možemo tvrditi da su uporabom tih alata naši podaci zaštićeni. Treba imati na umu da razvoj nije stao, dapače, tehnologija napreduje brže nego ikad, donosi nam nove ideje, metode, algoritme i proizvode, ali istodobno veće mogućnosti i onima koji žele narušiti zaštitu naših podataka.