Kako deluje?
Recimo, da želim osebi x poslati sporočilo in
želim, da ga ne more prebrati nihče drug. Torej zakodiram sporočilo »samo«
za osebo x. Osebi x pošljem kriptografski ključ, da lahko odkodira sporočilo.
To je poenostavljen princip delovanja v kriptosistemu enega ključa.
V konvencionalnih kriptosistemih, kot je US Federal
Data Encryption Standard (DES), je po en ključ za enkripcijo in dekripcijo.
To pomeni, da mora biti ključ poslan preko varnih kanalov tako, da ga imata
obe strani, preden se zakodirano sporočilo pošlje preko nezaščitenih kanalov.
To je lahko zelo komplicirano. Pojavlja se vprašanje: »Če imamo varen kanal
za izmenjavo ključev, zakaj sploh rabimo kriptografijo?«
V kriptosistemu javnega ključa obstajata dva
komplementarna ključa: javno znan ključ in tajni oz. privatni ključ. Če
poznamo javni ključ, ne pomeni, da lahko odkrijemo tajni ključ tako, da
javni ključ objavimo in razpošljemo širom po komunikacijskem omrežju. Takšen
protokol omogoča privatnost brez potrebe po varnih kanalih.
Vsak lahko uporabi objavljen javni ključ za ekripcijo
sporočila tej osebi, vendar edino lastnik objavljenega javnega ključa lahko
s svojim korespodentnim tajnim ključem odkodira sporočilo, ker le on pozna
svoj tajni ključ. Niti oseba, ki je zakodirala sporočilo, le-tega ne more
več odkodirati.
Avtentičnost sporočila je omogočena. Pošiljateljev
tajni ključ se lahko uporabi pri kodiranju sporočila za signaturo oz. podpis.
Ta način kreira digitalno signaturo sporočila, ki jo sprejemnik ali kdorkoli
drug preveri oz. odkodira z uporabo pošiljateljevega javnega ključa. To
dokazuje, da je pošiljatelj resnični pošiljatelj oz. noben drug ni poslal
to sporočilo, ker le pošiljatelj pozna svoj tajni ključ. Nemogoče je ponarediti
podpisano sporočilo in pošiljatelj ne more zanikati svojo signaturo.
Ta dva procesa je možno kombinirati za omogočanje
privatnosti in avtentičnosti tako, da se najprej podpiše sporočilo z uporabo
pošiljateljevega tajnega ključa, potem pa zakodira sporočilo s prejemnikovim
javnim ključem. Prejemnik dela obratno: najprej odkodira sporočilo s svojim
privatnim ključem, potem pa preveri signaturo s pošiljateljevim javnim
ključem. Prejemnikov software postopek avtomatizira.
Ker je enkripcijski algoritem javnega ključa
počasnejši od konvencionalne enkripcije enega ključa, je enkripcija pohitrena
z uporabo algoritma visoko kvalitetne, hitre, konvencionalne enkripcije
enega ključa. Originalni »goli« tekst se imenuje »plaintext«. V nevidnem
procesu za konvencionalno kodiranje plaitext datoteke za uporabnika se
uporablja začasni random ključ, ki je kreiran samo za eno uporabo. Potem
se prejemnikov javni ključ uporabi za kodiranje tega začasnega random konvencionalnega
ključa. Ta konvencionalni enkratuporabni javni ključ se pošlje skupaj z
zakodiranim tekstom (cipertext) prejemniku. Prejemnik uporabi svoj tajni
ključ za obnovo začasnega ključa in s tem začasnim ključem zažene hiter
konvencionalni algoritem enega ključa za dekodiranje velikega cipertext
sporočila.
Javni ključi so shranjeni v individualnih »certifikatih
ključev«, ki vsebujejo ID lastnika ključa, datum kreiranja para ključev
ter dejanski javni ključ. Certifikat javnega ključa vsebuje javni ključ,
certifikat tajnega ključa vsebuje tajni ključ. Vsak tajni ključ je tudi
zakodiran z lastnim geslom za primer kraje. Datoteka ključev oz. »key ring«
vsebuje enega ali več certifikatov. Datoteka javnih ključev vsebuje certifikate
javnih ključev, analogno za datoteko tajnih ključev.
Ključi so trajno povezani s ključevim ID, kar
je »kratica« javnega ključa oz. zadnji pomembni 64 biti velikega javnega
ključa. Na zaslonu vidimo samo spodnjih 32 bitov ključevega ID. Torej dva
ključa lahko imata enak uporabniški ID, ampak ne moreta imeti enak ključev
ID.
PGP uporablja »message digest« za kreiranje signatur.
To je 128-bitna kriptografsko močna enousmerjena hash funkcija sporočila,
ki se uporablja za preverjanje morebitnih sprememb v sporočilu. Nemogoče
je računsko priti do drugega sporočila, ki bi imelo enako hash vrednost.
Message digest se kodira s tajnim ključem za formiranje signature.
Dokumenti so podpisani tako, da se na začetek
postavi signaturni certifikat, ki vsebuje ID ključa, uporabljenega za podpis,
hash tajnega ključa podpisovalca dokumenta ter datum kreiranja signature.
Prejemnikov software avtomatično poišče pošiljateljev javni ključ in uporabniški
ID v prejemnikovi datoteki javnih ključev.
Začetek kode zakodirane datoteke vsebuje ID javnega
ključa, uporabljenega za kodiranje. Ta začetna koda pomaga prejemniku,
da poišče tajni ključ, potreben za dekodiranje sporočila. To avtomatično
naredi prejemnikov software - poišče ga v datoteki tajnih ključev.
Ta dva principa oz. dve datoteki ključev sta
osnovni metodi za shranjevanje in upravljanje javnih in tajnih ključev.
Iskanje je avtomatično ali z uporabniškim ID ali s ključevim ID.
Nekatere notranje značilnosti
PGP-ja
PGP uporablja kriptografski generator naključnih
števil za generiranje začasnega konvencionalnega ključa. Datoteka se imenuje
»randseed.bin« in se ustvari pri kreiranju javnega/tajnega ključa z merjenjem
časovnega razmaka med pritiski tipk tipkovnice. Ta generator, pri vsaki
uporabi ključa, preišče datoteko »randseed.bin« in naključne vrednosti
iz datoteke zmeša s časom dneva kreiranja. Uporablja klasični kodirni algoritem
za generiranje števil.
Omenjena datoteka bi vsaj malo morala biti zaščitena,
zaradi zmanjšanja napadov na uporabljane ključe. Vlomilec se bo namučil
prej no dobil nekaj koristnega iz datoteke, ker se datoteka avtomatično
kriptografsko zaščiti pred in po uporabi. Za vsak slučaj jo je potrebno
zaščititi, da ne pride v napačne roke.
Če ne verjamete bilo kakšnemu algoritemskemu
generatorju naključnih števil, potem se spomnite, da ste že verjeli in
uporabljali konvencionalno kodiranje za zaščito sporočil. Če je dovolj
je močna za to, potem je tudi dovolj močna za kreiranje naključnih števil
za začasne, enouporabne ključe. PGP še vedno uporablja naključna števila
fizičnega izvora (v glavnem čas med udarci po tipkovnici) za generiranje
večuporabnega para javni/tajni ključ.
-
PGP-ev konvencionalni enkripcijski
algoritem
PGP uporablja enoključni kodirni algoritem, imenovan
IDEA. IDEA ima 64-bitne bloke za plaintext in ciphertext. Uporablja ključ
velik 128 bitov. Zasnovana je na konceptu »mešanja operacij različnih algeberskih
skupin«. PGP jo uporablja za 64-bitne CFB-je.
IPER/IDEA je nastala v ETH, Cirih. Razvijalca
sta James L. Massay in Xuejia Lai. Prvič je objavljena 1990 pod imenom
IPES (Improved Proposed Encryption Standard), kasneje sta avtorja spremenila
ime v IDEA (International Data Encryption Algorithm). IDEA je bolj odporna
na napade kot drugi kodirni algoritmi, npr.: DES, FEAL, REDOC-II, LOKI,
Snefru in Khafre. Odporna je na kriptoanalitične napade Biham in Shamir-ja,
akademskih kriptoanalitičnih skupin iz Belgije, Anglije in Nemčije ter
mnogih vojaških služb širom Evrope.
Ljudje, ki razbijajo kodirne algoritme, trdijo,
da je enako težko razbiti 128-bitni ključ IDEA kot 3100-bitni ključ RSA-ja.
To je dober rezultat, ker se ponavadi uporablja 1024-bitni RSA ključ. S
to velikostjo ključa in predpostavko, da je IDEA brez skritih slabosti,
je nevarnost v algoritmu javnega ključa, ne v konvencionalni kriptografiji.
Ni praktično uporabljati čisti RSA algoritem z velikimi ključi za kodiranje
in dekodiranje dolgih sporočil. 1024-bitni RSA ključ bi dekodiral sporočilo
4000 krat počasnejše kot IDEA. Privlačnost kriptografijejavnega ključa
ni v njenimoči v odnosu na klasično kriptografijo, ampak v pomoči pri upravljanju
s ključi.
Kodirani podatki se ne morejo stisniti (zapakirati),
zaradi tega PGP zapakira podatke pred kodiranjem. Pakiranje podatkov skrajša
modemski čas prenosa, zmanjša zasedenost diska ter poveča moč zakodiranosti.
Številne kriptoanalize izkoriščajo redundanco plaintexta za razbijanje
kodiranja. Podatkovna kompresija to redundanco zmanjšuje.
Uporabnik lahko uporabi PKZIP za kompresijo plaintexta,
ker PKZIP ali kompatibilen freeware ZIP lahko skupaj zapakira razdeljene
datoteke. PGP ne kompresira že kompresirano datoteko.
Noveše verzije PGP-ja uporabljajo ZIP kompresijsko
rutino, čigavi avtorji so Jean-Loup Gailly, Mark Adler in Richard B. Wales.
Zip je izbran ker ima dostopno C izvorno kodo, zelo dobro kompresijsko
vrednost in zaradi hitrosti.
Na mnogih FTP straneh je dostopen freeware kompresijski
program HPACK od Peter Gutmann-a, ki zakodira stisnjeno datoteko uporabljajoči
PGP podatkovni format in datoteko ključev.
-
Izvleček sporočila in digitalna
signatura
Za kreiranje digitalne signature, PGP kodira s tajnim
ključem, ampak s tajnim ključem ne kodira celotno sporočilo, ker bi predolgo
trajalo. Namesto tega PGP kodira s tajnim ključem samo izvleček sporočila.
Izvleček sporočila je 128-bitno jedro »destiliranega«
sporočila, v konceptu podobno checksumi, nekaj kot prstni odtis sporočila.
Predstavlja sporočilo v smislu, če bi bilo sporočilo spremenjeno na bilo
kakšen način, tudi bi se spremenil izvleček sporočila. To omogoča detekcijo
sprememb sporočila. Izračuna se z uporabo kriptografsko močne, enousmerjene
hash funkcije. Praktično je nemogoče najti drugo sporočilo, ki bi podalo
enak izvleček. Torej, uporaba izvlečka sporočila je dosti uporabnejša kot
checksum, ker je zelo enostavno najti dva sporočila za enako cheksumo.
Izvleček sporočila ni enousmerjena funkcija, torej iz izvlečka lahko dobimo
prvotno sporočilo.
Za zagotovitev avtentičnosti sporočila se izvleček
sporočila zakodira (podpisati) s tajnim ključem pošiljatelja.
Pošiljatelj izračuna izvleček iz sporočila. S
pošiljateljevim tajnim ključem se izvleček zakodira ter z elektronsko časovno
znamko se formira digitalna signatura ali signaturni certifikat. Pošiljatelj
pošlje digitalno signaturo skupaj s sporočilom. Prejemnik prejme sporočilo
in digitalno signaturo ter obnovi prvotni izvleček sporočila iz digitalne
signature tako, da dekodira signaturo s pošiljateljevim javnim ključem.
Prejemnik izračuna novi izvleček sporočila iz sporočila ter ga primerja
s tistim iz digitalne signature. Če se ujemata, potem je sporočilo avtentično.
Ni možno narediti lažno sporočilo, ki bi podalo
enak izvleček sporočila kot prvotno sporočilo; tudi ni možno kreirati lažno
signaturo brez poznavanja tajnega ključa tako, da digitalna signatura dokazuje
avtentičnost sporočila in onemogoči pošiljatelju nepriznavanje lastne signature.
Druge prednosti so: signatura je male velikosti,
zanemarljive v primerjanju z velikostjo sporočila; omogoča avtomatično
software-sko preverjanje avtentičnosti sporočila; lahko se shrani ločeno
od sporočila, tudi v javnih arhivah, ker noben ne more priti do vsebine
sporočila iz samega izvlečka.
NAZAJ
NAPREJ