KAKO DELUJE PGP?

Kodiranje pomeni napisano besedilo pomešati na tako zapleten nacin, da ga nihce ne more prebrati.

Obicajen sistem kriptografije, kot npr. US Federal Data Encryption Standard (DES), uporablja en kljuc, ki ga morata poznati pošiljatelj in prejemnik elektronske pošte. To pomeni, da mora biti na zacetku kljuc oddan po zanesljivem kanalu, preden se zacne pošiljanje sporocil po nezavarovanih kanalih. To pa je lahko tudi zelo neprirocno. Ce ze obstajajo zanesljivi kanali za izmenjavo kljucev, zakaj bi potem sploh potrebovali kriptografijo?

V uporabniških sistemih kriptografije ima vsakdo dva komplementarna kljuca: javnosti znanega in skrivnega. Ta protokol omogoča zasebnost brez potrebe po zanesljivih kanalih, kot jih zahteva obicajen sistem kriptografije.

Vsakdo lahko uporablja sprejemnikov kljuc za kodiranje sporocila zanj, in sprejemnik uporablja svoj lastni skrivni kljuc za dekodiranje tega sporocila. Nihce drug kot sprejemnik lahko to sporocilo dekodira, ker nima nihce drug dostopa do skrivnega kljuca. Tudi oseba, ki je sporocilo napisala, ga vec ne more dekodirati.

Sporocilo je vedno avtenticno. Pošiljateljev skrivni kljuc se uporablja za kodiranje sporočila, s tem ga "podpiše". To kreira digitalen podpis sporocila, katerega lahko sprejemnik (ali pa kdo drug) preveri z uporabo pošiljateljevega kljuca. To potrjuje, da je pošiljatelj res avtor sporocila, kajti le on ima v lasti skriti kljuc, ki omogoca podpisovanje. Ponareditev podpisanega sporocila je nemogoca.

Ta dva procesa sta kombinirana za omogocanje zasebnosti in avtenticnosti s podpisom sporocila s skritim kljucem in kodiranjem podpisanega sporočila z javnim kljucem. Prejemnik v obratnem vrstnem redu najprej dekodira sporocilo s skritim kljucem in nato preveri podpis z javnim kljucem. To avtomaticno stori sprejemnikov program.

Ker je javni kodirni algoritem veliko pocasnejši od obicajnega kodiranja z enim kljucem, kodiranje lazje izvedemo z uporabo visoko kvalitetnega in hitrega algoritma obicajnega kodiranja. Originalen nekodiran tekst se imenuje v anglešcini "plaintext" (navaden tekst). V procesu, nevidnemu za uporabnika, se stalni slucajen kljuc, kreira samo za eno uporabo, uporablja za obicajno kodiranje datoteke navadnega teksta. Prejemnikov javni kljuc se uporablja za kodiranje stalnega nakljucnega obicajnega kljuca. Slucajen stalni kljuc se pošlje skupaj s kodiranim tekstom prejemniku. In on uporablja svoj skrivni kljuc za nadomestitev stalnega nakljucnega kljuca. In ta kljuc uporabi za zagon hitrega obicajnega algoritma z enim kljucem za dekodiranje sporocila.

Vse o javnih kljucih je v individualnem kljucnem certifikatu (angl. key certificate), ki vsebuje ime njegovega lastnika, cas, kdaj je bil par kljucev generiran in dejansko gradivo o kljucih (angl. key material). Javni kljucni certifikat vsebuje vsebino gradivo javnega kljuca in skrivni kljucni certifikat vsebuje gradiva skrivnega ključa. Vsak kljuc je kodiran z lastnim geslom za primer kraje. Kljucna datoteka vsebuje enega ali vec kljucnih certifikatov. Javne kljucne datoteke vsebujejo javne kljucne certifikate in skrivne kljucne datoteke vsebujejo skrivne kljucne certifikate.

Kljuci so tudi notranje loceni s kljucno identifikacijo (angl. key ID), ki je kratica javnega kljuca najmanj pomembnih 64 bitov dolgega javnega kljuca. Ob prikazu kljucne identifikacije je prikazanih samo najnizjih 32 bitov. Veliko ključev bi si sicer lahko delilo isto kljucno identifikacijo, vendar pa se to zaradi prakticnih razlogov ne dogaja.

PGP uporablja izvlecke sporočil (angl. message digest) za formiranje podpisov. Izvlecek sporocila je 128 bitna mocna enosmerna kriptografska "hash" koda sporocila. Je analogna CRC koda odkrivanja napak (angl. CRC error cheching code). Z njo je v celoti predstavljeno sporocilo in se uporablja za spreminjanje sporocila. Izvlecek sporocila prispe do prejemnika s skrivnim kljucem za formiranje podpisa.

Dokumenti so podpisani s predpono certifikata podpisa, ki vsebuje identifikacijo kljuca, ki je bil uporabljen za podpisovanje, izvlecek sporocila, podpisanega s skrivnim kljucem in cas, kdaj je bil podpis narejen. Identifikacijo kljuca uporablja prejemnik, da lahko najde pošiljateljev javni kljuc in preveri podpis. Prejemnikov program avtomaticno poišce pošiljateljev javni kljuc in uporabnikovo identifikacijo v prejemnikovi datoteki javnega kljuca.

Kodirane datoteke vsebujejo predpono identifikacijskega kljuca, ki sluzi za njihovo kodiranje. Prejemnik uporablja to identifikacijo kljuca, da najde skrivni kljuc, da dekodira sporocilo. Prejemnikov program avtomaticno poišce skrivni kljuc v prejemnikovi datoteki skrivnega ključa.

Ta dva tipa kljucnih datotek sta osnovni metodi za hranjenje in upravljanje javnih in skrivnih kljucev. Namesto, da bi hranili individualne kljuce v posamicnih kljucnih datotekah, so zbrani v kljucnih datotekah, da omogocajo avtomaticno iskanje kljucev po identifikaciji kljuca ali uporabnikovi identifikaciji. Vsak uporabnik ima svoj par kljucnih datotek. Individualni javni kljuc je stalno shranjen v posamicni datoteki dovolj dolgo, da ga prejemnik doda svoji kljucni datoteki.

Kodirano sporocilo lahko pošljemo z elektronsko pošto (Radix-64 Format). PGP podpira Radix-64 format za kodirana sporocila, podoben je Internet MIME formatu. Predstavlja binarne podatke in uporablja tiskane ASCII podobe. Zato so podatki lahko pretakajo po 7-bitnih kanalih ali z elektronsko pošto.

Radix-64 format poveca kodirano sporocilo iz 3 na 8 bitov v 4 tiskane ASCII podobe. Zato se dolzina datoteke poveca za priblizno 33%.

Ce zelimo sporocilo kodirati v Radix-64 formatu, potem izvedemo nasledji ukaz:
pgp -esa message.txt her_userid

Dekodiranje pa izvedemo z ukazom:
pgp message

Ce ste podpisali tekst ze pred kodiranjem, ga bo PGP skrcil, ko bo podpisan. To je primerna pot za shranjevanje podpisanih datotek v arhivskih aplikacijah. Ce pošljete kodirani tekst z elektronsko pošto, ga PGP ne skrci.

Nazaj