|
Jak PGP pracujePGP je kombinovan² ╣ifrovacφ systΘm. Navenek se jevφ jako program s ve°ejn²m ╣ifrovacφm klφΦem, pln∞ vyu╛φvajφcφ asymetrickΘho ╣ifrovßnφ. To se v╣ak ve skuteΦnosti pou╛φvß pouze pro zak≤dovßnφ klφΦe symetrickΘ ╣ifry, kterou je pak za╣ifrovßna samotnß zprßva. Digitßlnφm podpisem je kontrolnφ souΦet zprßvy (angl. hash), kter² je za╣ifrovßn asymetrickou ╣ifrou.Ve verzφch 2.x a p°i pou╛itφ RSA klφΦe ve verzφch 5.x jsou pou╛ity tyto algoritmy: RSA jako asymetrickß ╣ifra, IDEA jako symetrickß ╣ifra a MD5 pro kontrolnφ souΦty podpisu (hash). Pou╛ijete-li nov² typ klφΦe DH/DSS, bude se ╣ifrovat asymetrick²m algoritmem Diffie-Hellman (ElGamalova varianta) a jako symetrickou ╣ifru lze vybrat ze t°φ variant: IDEA (128 efektivnφch bit∙ klφΦe), TripleDES (168 bit∙) nebo CAST (128 bit∙). P°i podepisovßnφ se pou╛φvß asymetrickφ ╣ifra DSS a SHA-1 kontrolnφ souΦty (hash). SymetrickΘ ╣ifrovßnφSymetrickΘ ╣ifrovßnφ je metoda, p°i kterΘ je otev°en² text za╣ifrovßn s pomocφ jistΘho klφΦe a m∙╛e b²t obnoven jen se znalostφ tohoto klφΦe. SymetrickΘ ╣ifrovacφ algoritmy se vyvφjejφ doslova tisφce let. V∞t╣ina modernφch algoritm∙ je zalo╛ena na matematickΘ teorii Φφsel. P°i symetrickΘm ╣ifrovßnφ si musφ autor a p°φjemce n∞jak²m bezpeΦn²m zp∙sobem vym∞nit klφΦ. SamotnΘ symetrickΘ ╣ifrovßnφ nem∙╛e nikdy problΘm p°edßnφ klφΦe vy°e╣it.Rozhodujφcφm kritΘriem sφly symetrickΘ ╣ifry je dΘlka klφΦe. Zprßva toti╛ musφ odolat tzv. ·toku hrubou silou, kter² p°edpoklßdß prostΘ vyzkou╣enφ v╣ech mo╛n²ch klφΦ∙. DΘlka se uvßdφ v poΦtu bit∙ binßrnφho Φφsla. Mß-li tedy ╣φfra sφlu 4 bity, je 2^4=16 mo╛n²ch klφΦ∙. Je z°ejmΘ, ╛e tato sφla neobstojφ. P°esto╛e p°idßnφm jedinΘho bitu se poΦet klφΦ∙ (a tedy ╣ifrovacφ sφla) zdvojnßsobφ, jsou 40tibitovΘ klφΦe pou╛φvanΘ nap°. v prohlφ╛eΦφch firem Netscape a Microsoft urΦen²ch pro v²voz z USA dnes pom∞rn∞ snadno rozlu╣titelnΘ. Americk² bankvonφ standard, ╣ifru DES s 56 bity, je dnes ji╛ rozbφt hrubou silou s vynalo╛enφm jen velmi mal²ch prost°edk∙. Dnes nejΦast∞ji pou╛φvanΘ 128mibitovΘ klφΦe zaruΦujφ odolnost proti ·tok∙m hrubou silou minimßln∞ na n∞kolik desφtek let dop°edu. AsymetrickΘ ╣ifrovßnφTeprve v 70. letech 20. stoletφ byl navr╛en prvnφ asymetrick² ╣ifrovacφ algoritmus. Jeho princip je jednoduch²: zprßva se za╣ifruje jednφm klφΦem, roz╣ifrovat se v╣ak musφ jin²m klφΦem. Navφc ze znalosti prvnφho klφΦe nelze zjistit druh². Prvnφ klφΦ m∙╛e b²t tedy dßn ve znßmost komukoli (tzv. ve°ejn² klφΦ nebo ve°ejnß Φßst klφΦe), zatφmco druh² si uchovßvß vlastnφk v tajnosti (sokrom² klφΦ nebo soukromß Φßst klφΦe). Mezi nejznßm∞j╣φ asymetrickΘ ╣ifry pat°φ RSA, Diffie-Hellman a DSS.DΘlka klφΦe asymetrickΘ ╣ifry mß trochu jin² v²znam. AsymetrickΘ ╣ifry jsou v∞t╣inou zalo╛eny na n∞jak²ch specißlnφch Φφslech (nap°. prvoΦφslech). P°i ·toku hrubou silou tedy staΦφ zkoumat jen tato specißlnφ Φφsla. Dnes se b∞╛n∞ pracuje s dΘlkou klφΦe 1024 bit∙, av╣ak pro dlouhodob∞j╣φ pou╛itφ je lΘpe zvolit 2048 bit∙ nebo vφce. Jak pracuje RSAAlgoritmus je zalo╛en na jednoduchΘ my╣lence, ╛e m∙╛eme pom∞rn∞ snadno vynßsobit dv∞ velkß Φφsla, je v╣ak Φasov∞ velice nßroΦnΘ rozlo╛it takov² souΦin na prvoΦinitele.Nalezneme dv∞ velkß prvoΦφsla p a q. Jejich souΦin oznaΦφme n:=p*q. My╣lenka je postavena na malΘ Fermatov∞ v∞t∞, podle kterΘ vyjde m^(f(n)+1) mod n=m pro libovolnΘ Φφslo m v intervalu 1,2,...,n-1, kde funkce f(n) dßvß poΦet Φφsel mezi 1,2,...,n-1 nesoud∞ln²ch s n (tzv. Eulerova funkce). Indukcφ se pak dß dokßzat, ╛e takΘ m^(k*f(n)+1) mod n=m pro libovolnΘ p°irozenΘ Φφslo k, proto╛e m^(k*f(n)+1) mod n=m^f(n)*m^((k-1)*f(n)+1) mod n a to je podle indukΦnφho p°edpokladu m^f(n)*m mod n=m^(f(n)+1) mod n=m. Proto╛e v na╣em p°φpad∞ f(n)=f(p*q)=(p-1)*(q-1), najdeme dvojici Φφsel e, d takov²ch, ╛e e*d=1 mod (p-1)*(q-1). Dvojice (e,n) pak bude tvo°it ve°ejn² klφΦ, zatφmco (d,n) je soukromß Φßst klφΦe. Za╣ifrovßnφ zprßvy m (maximßlnφ dΘlky n) provedeme operacφ c:=m^e mod n, Φφm╛ dostaneme za╣ifrovanou zprßvu c. Roz╣ifrovßnφ je operace m:=c^d mod n. K ov∞°enφ sprßvnosti algoritmu si staΦφ uv∞domit, ╛e e*d=k*f(n)+1 pro n∞jakΘ Φφslo k, a tedy m^(e*d) mod n=m^(k*f(n)+1) mod n=m. P°φklad: Vezmeme za p, q prvoΦφsla 5, 11. Dostaneme n=5*11=55 a f(n)=4*10=40. Za ╣ifrovacφ klφΦ m∙╛eme volit Φφsla mezi 1-39 nesoud∞lnß s f(n)=40. Zvolφme tedy nap°. e=17 a najdeme k n∞mu multiplikativnφ inverzi modulo 40: d=33, e*d=561=14*40+1. Nech╗ nynφ zprßva (m∙╛e b²t mezi 1-54) je m=14, zak≤dujeme ji na 14^17 mod 55=30 491 346 729 331 195 904 mod 55=9. Dek≤dovßnφ pak prob∞hne podobn∞: 9^33 mod 55=309 031 543 826 326 123 611 920 641 803 529 mod 55=14. Ve°ejnou Φßst klφΦe znajφ v╣ichni. Pokud by tedy ╣lo rozlo╛it n snadno na prvoΦinitele, zφskalo by se tak p, q, z Φeho╛ by ╣el pak ji╛ odvodit soukrom² klφΦ d. Tento ·kol je v╣ak pro dostateΦn∞ velkß Φφsla prakticky neprovediteln². Je znßmo, ╛e klφΦ velikosti 384 bit∙ byl rozlu╣t∞n b∞hem n∞kolika m∞sφc∙ neustßlΘ prßce n∞kolika desφtek a╛ stovek spolupracujφcφch poΦφtaΦ∙. B∞╛n∞ pou╛φvanΘ velikosti klφΦe 1024 a╛ 2048 bit∙ jsou dnes zatφm bezpeΦnΘ. Princip ╣ifry PGPJak je vid∞t z p°edchozφho p°φkladu, RSA pracuje p°i pom∞rn∞ malΘm zßkladu s vysok²mi Φφsly. ⌐ifrovßnφ velk²ch zprßv s pomocφ RSA by bylo Φasov∞ ohromn∞ nßroΦnΘ. St∞jn∞ je tomu i u jin²ch asymetrick²ch algoritm∙. PGP tedy k≤duje text symetrick²m algoritmem, jeho╛ implementace je mnohem rychlej╣φ. PGP nejprve vygeneruje nßhodn² klφΦ pro symetrickou ╣ifru, tento klφΦ zak≤duje do zprßvy s pomocφ ve°ejnΘho RSA nebo DH klφΦe p°φjemce, a celou zprßvu pak zak≤duje symetrickou ╣ifrou. P°φjemce nejprve s pomocφ svΘho soukromΘho RSA nebo DH klφΦe zjistφ klφΦ pro symetrickou ╣ifru, s jeho╛ pomocφ pak rozk≤duje samotnou zprßvu.ElektronickΘ podpisyPGP °e╣φ takΘ problΘm ov∞°enφ obsahu a identifikace autora zprßvy tzv. elektronick²mi podpisy. Nejprve je nutnΘ zvolit n∞jak² vzor, kter² umo╛nφ ov∞°it, ╛e zprßva nebyla zm∞n∞na potΘ co ji autor sestavil. K tomu slou╛φ algoritmus MD5 nebo SHA-1 pro vytvo°enφ kontrolnφho souΦtu zprßvy. Tento kontrolnφ souΦet, kter² by p°i jakΘkoli zm∞n∞ zprßvy byl poru╣en, se pak p°idß ke zprßv∞, za╣ifrovan² autorov²m soukrom²m klφΦem. P°φjemce pak s pomocφ autorova ve°ejnΘho klφΦe rozk≤duje kontrolnφ souΦet zprßvy a ov∞°φ, jestli zprßva nebyla pozm∞n∞na (Φi podvr╛ena).Sprßva klφΦ∙D∙le╛itou souΦßstφ PGP je sprßva klφΦ∙. U╛ivatel musφ mφt alespo≥ jeden pßr soukrom² klφΦ-ve°ejn² klφΦ. Soukromß Φßst z∙stßvß na disku poΦφtaΦe a je zabezpeΦena heslem. Anglick² nßzev passphrase (namφsto obvyklΘho password) naznaΦuje, ╛e heslo mß b²t dlouhΘ a tedy nesnadno uhßdnutelnΘ. Je dobrΘ pou╛φt dlouhΘ souv∞tφ nebo i n∞kolik v∞t.M∞li byste si takΘ zachovat kopii Va╣eho soukromΘho klφΦe, proto╛e jeho ztrßtou p°ijdete o mo╛nost p°eΦφst zprßvy Vßm urΦenΘ. Tuto kopii ulo╛te na bezpeΦnΘm mφst∞ (je ale takΘ chrßn∞na stejn²m heslem). P°i komunikaci s jin²mi osobami budete pot°ebovat jejich ve°ejnΘ klφΦe. Takov² klφΦ mß n∞kolik atribut∙:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1999, SkyNet a.s., Distributor produkt∙ Network Associates, Inc. mailto:webmaster@pgp.cz |