Ovo je stara izmjena dokumenta!
Kriptografija je znanstvena disciplina koja se bavi proučavanjem metoda koje se koriste za slanje poruka, tj. informacija u obliku koji je razumljiv samo onima kojima su te poruke namijenjene. Naziv dolazi od grčkih riječi kriptós što znači skriven i gráfo što znači pisati. Razvoj kriptografije potaknut je činjenicom da se prijenos informacija često odvija putem nesigurnih komunikacijskih kanala (slika 1).
Slika 1: Nesigurni komunikacijski kanal
Zbog toga je potrebno na neki način zaštititi informacije koje se prenose tako da nitko osim osoba kojima su te informacije namijenjene ne može doći do njih. Kriptografija se upotrebljava u mnogim segmentima ljudskog života kao što su autentifikacija, enkripcija email-ova, enkripcija WhatsApp poruka, itd.
Kriptografija kao i svaka znanstvena disciplina radi jednostavnosti komunikacije koristi stručne pojmove. Definirajmo osnovne pojmove u kriptografiji koji će se koristiti u sljedećim poglavljima.
Pošiljatelj je osoba koja šalje poruku, a primatelj je osoba koja tu poruku prima. Cilj kriptografije je omogućiti izmjenu poruka između pošiljatelja i primatelja koja se odvija na način da neka treća osoba, koju nazivamo protivnik, ne može pročitati njihove poruke.
Otvoreni tekst naziv je koji se odnosi na poruku koja se šalje, a šifrat je naziv koji se odnosi na oblik u kojem je ta poruka zapisana, tj. oblik u kojem će primatelj dobiti tu poruku. Šifriranje je postupak preobrazbe otvorenog teksta u šifrat. Šifriranje provodi pošiljatelj pomoću unaprijed definiranog ključa.
Izmjena informacija između pošiljatelja i primatelja (slika 2) odvija se komunikacijskim kanalom. Protivnik može doći do šifrata, ali ne može ga dešifrirati i doći do otvorenog teksta zato što nema ključ kojim je otvoreni tekst šifriran.
Slika 2: Izmjena poruka između pošiljatelja i primatelja
Kriptografski algoritam je matematička funkcija koja se koristi za šifriranje i dešifriranje. Obično su to dvije funkcije od kojih jedna preslikava elemente otvorenog teksta u elemente šifrata, a druga preslikava elemente šifrata u otvoreni tekst.
Kriptosustav je uređena petorka (P, C, K, E, D) za koju vrijedi:
Kriptosustavi su uobičajeno klasificirani s obzirom na tri kriterija:
Kriptografija javnog ključa naziva se i asimetrična kriptografija, a naziv se temelji na činjenici da takav sustav koristi par ključeva koji se sastoji od javnog i privatnog ključa. Sigurnost asimetrične kriptografije temelji se na očuvanju privatnog ključa tajnim. Otvoreni tekst se šifrira s javnim ključem, a šifrat se dešifrira s privatnim ključem. Slika 3 prikazuje jednostavni kriptosustav s javnim ključem koji je pohranjen u neku javnu datoteku koja je svima dostupna.
Slika 3: Jednostavni kriptosustav s javnim ključem
Koristeći javni ključ bilo tko može šifrirati otvoreni tekst, ali šifrat može dešifrirati samo osoba kojoj je dostupan privatni ključ. Privatni ključ za dešifriranje mora biti takav da ga protivnik ne može izračunati u razumnom vremenu ako mu je dostupan javni ključ za šifriranje. Ako bilo tko može doći do javnog ključa i predstaviti se kao pošiljatelj, postavlja se pitanje je li poslani šifrat vjerodostojan i autentičan. To pitanje može se riješiti na način da pošiljatelj generira neki slučajan broj a kojeg doda svojoj poruci koju šalje primatelju. Zatim primatelj generira neki slučajni broj b koji zbroji s a te taj zbroj šifrira s javnim ključem i pošalje ga pošiljatelju. Pošiljatelj dešifriranjem dobivenog šifrata privatnim ključem dolazi do zbroja a+b. Oduzimanjem svog slučajnog broja a od dobivenog zbroja dobiva primateljev slučajni broj b. Svakoj sljedećoj poruci pošiljatelj dodaje b, a primatelj provjerava je li poslani b jednak njegovom slučajnom broju b.
Glavne prednosti kriptosustava s javnim ključem su da nema potrebe za sigurnim komunikacijskim kanalom za razmjenu javnih ključeva, javni i privatni ključ mogu se koristiti određeni period vremena dok se kod simetričnih sustava novi ključevi moraju redovito generirati te postoji mogućnost potpisa poruke što omogućava da pošiljatelj ne može tvrditi da nije poslao neku poruku ako se na njoj nalazi njegov potpis. Glavni nedostaci kriptosustava s javnim ključem su da je značajno sporiji od kriptosustava s tajnim ključem te da su ključevi asimetričnih sustava značajno veći od ključeva simetričnih sustava. U praksi se kriptosustavi s javnim ključem koriste za šifriranje ključeva, a ne za šifriranje poruka.
U ovom poglavlju bit će opisani najpoznatiji kriptosustavi koji koriste metodu javnog ključa.
RSA kriptosustav funkcionira na temelju generiranja velikih prostih brojeva. Algoritam za generiranje javnog i privatnog ključa za RSA kriptosustav glasi:
Algoritam za RSA šifriranje otvorenog teksta javnim ključem glasi:
Algoritam za RSA dešifriranje šifrata privatnim ključem glasi:
Radi boljeg razumijevanja načina funkcioniranja RSA kriptosustava u tablici 1 je prikazano nekoliko primjera generiranja ključeva, šifriranja i dešifriranja u RSA kriptosustavu. Radi jednostavnosti i preglednosti p i q su mali prosti brojevi. Kao što se može vidjeti, poruke x jednake su vrijednosti kao i dešifrirani šifrat dK.
p | q | n | φ(n) | e | d | x | eK | dK |
3 | 5 | 15 | 8 | 3 | 3 | 2 | 8 | 2 |
5 | 11 | 55 | 40 | 3 | 27 | 2 | 8 | 2 |
11 | 17 | 187 | 160 | 3 | 107 | 2 | 8 | 2 |
Tablica 1: Primjer šifriranja u RSA kriptosustavu
Rabinov kriptosustav također koristi generiranje velikih prostih brojeva. Algoritam za generiranje javnog i privatnog ključa za Rabinov kriptosustav glasi:
Algoritam za Rabinovo šifriranje otvorenog teksta javnim ključem glasi:
Algoritam za Rabinovo dešifriranje šifrata privatnim ključem glasi:
Na poveznici https://asecuritysite.com/encryption/rabin2 moguće je isprobati šifriranje različitih poruka. Slika 4 prikazuje primjer šifriranja poruke „otorinolaringologija“ na navedenoj stranici.
Slika 4: Primjer šifriranja poruke Rabinovim algoritmom na asecuritysite.com
[1] https://hr.wikipedia.org/wiki/Kriptografija
[2] https://medium.com/@prashanthreddyt1234/real-life-applications-of-cryptography-162ddf2e917d
[3] https://hr.wikipedia.org/wiki/Kriptografija_javnog_klju%C4%8Da
[4] http://www.mathos.unios.hr/~mdjumic/uploads/diplomski/ADA09.pdf
[5] https://repozitorij.mathos.hr/islandora/object/mathos%3A251/datastream/PDF/view
[6] https://web.math.pmf.unizg.hr/~duje/kript/idejajavni.html