Kriptografija javnog ključa

Kriptografija javnog ključa (PKI – Public Key Infrastructure) temelji se na paru komplementarnih ključeva koji obavljaju operacije enkripcije ili dekripcije, te je stoga poznata i kao asimetrična kriptografija. Jedan ključ u paru naziva se “javnim”, a drugi “tajnim” ključem. Javni ključ slobodno se distribuira dok se tajni ključ čuva.

Enkripcija i dekripcija obavljaju se asimetričnim algoritmima koji su općenito definirani tako da koriste par ključeva od kojih se bilo koji može koristiti za kriptiranje. Ako je jedan ključ iz para upotrijebljen za kriptiranje poruke, onda se isključivo drugi ključ iz para može upotrijebiti za dekriptiranje. Uobičajeno je, međutim, da se kriptiranje obavlja javnim ključem, a dekriptiranje tajnim ključem. Na taj način, svatko može kriptirati poruku korištenjem javnog ključa, ali poruku može dekriptirati i pročitati samo vlasnik tajnog ključa.


Slika 1: Enkripcija i dekripcija

Javni ključevi stoga moraju biti javno dostupni. Dodatno, korisnici javnih ključeva moraju biti sigurni da taj ključ uistinu pripada onome tko to tvrdi. U tu svrhu postoje specijalizirana tijela, povjerljive agencije (tzv. certificate authorities) koje izdaju certifikate. Povjerljiva agencija certifikatom jamči da javni ključ zaista pripada određenoj osobi.

Svojstvo asimetričnih algoritama da je jednim ključem moguće obaviti enkripciju, a isključivo drugim ključem iz istog para uspješnu dekripciju iskorišteno je pri definiranju digitalnog potpisa. Uloga digitalnog potpisa je višestruka:

- autenticira pošiljatelja
- čuva integritet poruke
- osigurava neporecivost

Digitalno potpisati poruku znači kreirati tekstualnu reprezentaciju poruke (sažetak) i kriptirati je tajnim ključem. Sažetak poruke kreira se primjenom neke od hash funkcija na izvornu poruku. Postoji više hash funkcija (MD5, SHA-1, SHA-256) no svima su zajedničke tri važne osobine:

za svaki ulazni niz bilo koje duljine daju izlazni niz iste, fiksne duljine ne postoje dva različita ulazna niza za koje hash funkcije daju iste izlazne nizove izrazito je teško (u praksi neizvedivo) iz izlaznog niza dobiti ulazni niz.


Slika 2: Digitalno potpisivanje

Kreirani digitalni potpis prilaže se izvornoj poruci. Samo potpisnik, vlasnik tajnog ključa, može kreirati takav digitalni potpis. S druge strane, svatko uz posjedovanje javnog ključa potpisnika može provjeriti valjanost digitalnog potpisa. Dovoljno je usporediti dva sažetka: prvi koji se dobije dekriptiranjem digitalnog potpisa i drugi koji se dobije primjenom hash funkcije na izvornu poruku. Ako se ta dva sažetka poklapaju, digitalni potpis je valjan.


Slika 3: Provjera sažetka primljene poruke