ArticleHead('Asymetrickß kryptografie v teorii a praxi', 'Michal Till', 'Michal.Till@Seznam.cz', '4.4.2002', '20:40:44', '╚lßnek');
Intro('(Kompilace starÜφch Φlßnk∙). Co je asymetrickß kryptografie? Jakß je jejφ historie, jakΘ byly prvnφ lagoritmy a jakß je praxe dnes? Dnes se v kompilaci nov²ch p°φsp∞vk∙ a starÜφch Φlßnk∙ podφvßme na tuto problematiku komplexn∞ a od zßklad∙. Povφme si o Merklyho sklßdaΦk²ch, batohovΘm algoritmu, hybridnφch systΘmech...');
SymetrickΘ Üifrovacφ algoritmy jsou v₧dy zalo₧eny na sdφlenΘm tajemstvφ. Kdo znß klφΦ, mß p°φstup k otev°enΘmu textu. Pokud Alice a Bob nesdφlφ klφΦ, nemohou spolu bezpeΦn∞ komunikovat. A prßv∞ bezpeΦnß distribuce Üifrovacφho klφΦe je hlavnφ a nutnß podmφnka pro ·sp∞ÜnΘ pou₧itφ asymetrickΘ kryptografie v praxi. Nenφ toti₧ mo₧nΘ klφΦ p°enßÜet tφm sam²m kanßlem jako nßsledujφcφ zprßvy, takov² postup je pro ob∞ strany naprosto nesmysln². Pokud tento kanßl pova₧ujeme za bezpeΦn² tak v∙bec nemusφme kryptografii pou₧φvat a pokud nikoli, tak je p°enos Üifrovacφho klφΦe naprosto zcestn².
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Tyto algoritmy ale nevznikly änarßzô a jejich v²voji p°edchßzφ n∞kolik zajφmav²ch systΘm∙, kterΘ ukazujφ zßkladnφ myÜlenky pozd∞ji objevenΘ asymetrickΘ kryptografie.
╪φkß se, ₧e Merklyho sklßdaΦky byly prvnφm pokusem o bezpeΦnou distribuci hesla, tedy o to, aby se dva subjekty nemusely bßt, ₧e se n∞kdo dozvφ Üifrovacφ klφΦ p°i jeho domluv∞ (tento po₧adavek je hnacφ motor vynßlezu as. k.). Zaklßdß se na nßsledujφcφm jednoduchΘm principu. Alice si vytvo°φ a uschovß (dlouh²) seznam potencionßlnφch klφΦ∙. Tyto klφΦe budeme naz²vat komunikaΦnφ. Dßle vezme generßtor (pseudo)nßhodn²ch Φφsel a vygeneruje stejn∞ poΦetnou mno₧inu klφΦ∙ doΦasn²ch. Ka₧d² komunikaΦnφ klφΦ zaÜifruje jednφm klφΦem doΦasn²m a v²sledn² äbalφkô odeÜle Bobovi Ten si vybere z balφku nßhodnou polo₧ku (jeden komunikaΦnφ klφΦ zaÜifrovan² doΦasn²m klφΦem) a deÜifruje ho hrubou silou (p°edpoklßdß se, ₧e Alice pou₧ila skuteΦn∞ dobr² Üifrovacφ algoritmus, tak₧e Bob m∙₧e pou₧φt pouze tento druh ·toku). Dostane heslo, tj. deÜifrovan² komunikaΦnφ klφΦ, kter²m heslem zaÜifruje dohodnutou zprßvu (nemusφ b²t tajnß) a poÜle ji Alici. Ta sice nevφ jakΘ heslo si Bob vybral, ale m∙₧e se odkßzat na p∙vodnφ nezaÜifrovan² seznam jφ vymyÜlen²ch komunikaΦnφch hesel a vÜechny je vyzkouÜet, Φφm₧ si prßv∞ dohodli heslo. P°φpadn² ·toΦnφk by musel deÜifrovat hesla vÜechna. P°esto₧e je tato metoda zajφmavß, je jasnΘ, ₧e je v praxi nepou₧itelnß, a to hned z n∞kolika d∙vod∙. P°edn∞ Φas nutn² k zφskßnφ dohodnutΘho klφΦe (p°i odposlechu spojenφ) roste pouze lineßrn∞ s poΦtem Alicφ odeslan²ch klφΦ∙. P°i exponencißlnφm r∙stu v²konu poΦφtaΦ∙ (1,7x za rok) by to znamenalo stejn² r∙st velikosti p°enßÜenΘho souboru, pokud bychom cht∞li zachovat stejnou bezpeΦnost. Vzhledem ke zmi≥ovanΘ linearit∞ takΘ cel² systΘm zhavaruje p°i pou₧itφ distribuovan²ch v²poΦt∙.
Kryptografie s ve°ejn²m klφΦem (neboli asymetrickß) je zalo₧enß na odliÜnΘm principu ne₧ kryptografie s klφΦem tajn²m. Mφsto jednoho klφΦe mß ka₧dß komunikujφcφ strana klφΦe dva. Pomocφ jednoho z nich zprßvu m∙₧eme zaÜifrovat a on si jφ sßm m∙₧e deÜifrovat pouze pomocφ druhΘho. KlφΦi pomocφ kterΘho se Üifruje (ten dßme ve°ejn∞ k dispozici, abychom mohli p°ijφmat ÜifrovanΘ zprßvy) se °φkß ve°ejn² klφΦ (odtud nßzev, sprßvn∞ji by ale bylo äkryptografie s ve°ejn²m a soukrom²m klφΦemô) a klφΦi, pomocφ kterΘho si zprßvu p°φjemce deÜifrujeme (ten si pochopiteln∞ chrßnφme) se °φkß tajn² klφΦ (soukrom², privßtnφà). Pomocφ pokroΦilΘ matematiky lze k n∞kter²m ·Φel∙m pou₧φt oba klφΦe k opaΦn²m operacφm, Φeho₧ se vyu₧φvß nap°. u digitßlnφch podpis∙ (viz nφ₧e). Pro pochopenφ architektury systΘmu je tedy nejd∙le₧it∞jÜφ, ₧e nikdy se nem∙₧e Üifrovat a deÜifrovat tφm sam²m klφΦem, v₧dy musφme pro deÜifrovßnφ pou₧φt ten druh². Oba tyto klφΦe jsou spolu dle pou₧itΘho algoritmu matematicky spjaty, pochopiteln∞ ale ne natolik, aby se dal jeden z druhΘho odvodit.
Tzv. batohov² algoritmus (zalo₧en na batohovΘm problΘmu) je jeden z prvnφch pokus∙ jak se vyrovnat s popisovanou hlavnφ nev²hodou symetrickΘ kryptografie û s nutnostφ bezpeΦnΘho p°enosu Üifrovacφho klφΦe p°edtφm, ne₧ se vlastnφ Üifra pou₧ije. MatematickΘ schΘma, na kterΘm systΘm stojφ, pat°φ do kategorie tzv. NP-complete (non-polynomial, tedy kompletn∞ nepolynomißlnφch) problΘm∙. ╪eÜenφ takov²chto ·loh nenφ zatφm znßmΘ v polynomißlnφm, n²br₧ pouze v exponencißlnφm Φase. VÜechny takovΘto problΘmy jsou na sebe navzßjem p°evoditelnΘ. Pokrok v °eÜenφ jednoho z nich se tedy promφtne na vÜech ostatnφch.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Nutno ovÜem podotknout, ₧e algoritmus byl zßhy po svΘm zve°ejn∞nφ rozbit. Samotn² problΘm ale vy°eÜen nebyl. Navr₧enΘ kryptografickΘ schΘma toti₧ neodpovφdalo matematickΘmu problΘmu ·pln∞. Privßtnφ klφΦ, jak se po zkoumßnφ zjistilo, je mo₧nΘ mo₧nΘ vypoΦφtat z klφΦe ve°ejnΘho i bez °eÜenφ p°φsluÜnΘ obtφ₧nΘ ·lohy, tj. batohu v danΘ konfiguraci (viz dßle).
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
M∞jme k dispozici mno₧inu v∞cφ, ka₧dou o urΦitΘ kladnΘ hmotnosti. NaÜφm ·kolem je vybrat takovou podmno₧inu, aby jejφ celkovß "hmotnost" byla rovna n∞jakΘ hodnot∞ w. Jak se ·loha m∙₧e jevit na prvnφ pohled jednoduchß, ve skuteΦnosti Φas pot°ebn² k °eÜenφ nar∙stß exponencißln∞ s celkov²m poΦtem p°edm∞t∙. Na druhou stranu existujφ batohy, jejich₧ °eÜenφ je trivißlnφ. Je to v p°φpad∞, ₧e hmotnost ka₧dΘ polo₧ky nenφ ni₧Üφ, ne₧ hmotnost polo₧ek p°edchßzejφcφch dohromady. Tento batoh naz²vßme superrostoucφ (superincreasing).
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
P°i jeho °eÜenφ nejprve vezmeme nejt∞₧Üφ objekt. Pokud je jeho hmotnost menÜφ ne₧ celkovß po₧adovanß suma w, za°adφme jej do ôpou₧it²chö v∞cφ a od w jeho hmotnost odeΦteme. Pokud ne, nechßme jej b²t a pokraΦujeme dßle. Pokud jsme po prozkouÜenφ vÜech v∞cφ nedosßhli cht∞nΘ hmotnosti (tj. kdy₧ w se nerovnß 0), nemß ·loha s tφmto zadßnφm °eÜenφ.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Konverze z tajnΘho klφΦe, tj. ze superrostoucφho batohu, na klφΦ ve°ejn², tj. na normßlnφ obtφ₧n∞ °eÜiteln² batoh) bude probφhat nßsledujφcφm zp∙sobem. Zvolφme modulo m, co₧ bude Φφslo v∞tÜφ ne₧ celkov² souΦet hodnot ("hmotnost") w. Dßle zvolφme druhΘ Φφslo n tak, ₧e (n,m)=1, jin²mi slovy v a m odeΦteme jsou nesoud∞lnß. Vynßsobφme ka₧dou hodnotu prvku mno₧iny Φφslem n (mod m) a k zaÜifrovßnφ jednoho bitu pou₧ijeme 1, pokud jsme p°φsluÜn² objekt do batohu zahrnuli a 0 pokud ne.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
P°φjemce vynßsobφ hodnoty zaÜifrovanΘho textu z mod m, co₧ p°edstavuje inverzi n mod m a pou₧ije vznikl² superrostoucφ batoh k deÜifrovßnφ zprßvy. Pokud tedy platφ, ₧e a*z je kongruentnφ s 1 (mod m), snadno ukß₧eme, ₧e (a*n mod m)*z mod m = a. Tohoto vztahu budeme vyu₧φvat p°i vzßjemnΘm p°epoΦφtßvßnφ (tj. vlastn∞ Üifrovßnφ a deÜifrovßnφ) z normßlnφho batohu do superrostoucφho a naopak.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Uva₧me tedy batoh [3,4,9,19,38,77]. Zvolφme modul m, nap°φklad 155. Jako s m nesoud∞lnΘ n zvolφme t°eba 27. Nynφ vypoΦφtßme hodnoty obtφ₧n∞ °eÜitelnΘho batohu. 3*27 mod 155 = 81, 4*27 mod 155 = 108 apod, celkov∞ budeme Üifrovat s ve°ejn²m klφΦem [81,108,88,48,96,64].
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Budeme chtφt zaÜifrovat zprßvu 100110 001101 010001. Podφvßme-li se na prvnφ blok, nalezneme hodnoty 1 na prvnφm, ΦtvrtΘm a pßtΘm mφst∞. To odpovφdß Φφsl∙m 81, 48 a 96 ve ve°ejnΘm batohu, zaÜifrovan² text tedy bude 81+48+96=225. Obdobn∞ 001101 odpovφdß 88+48+64=200 a 010001 odpovφdß 108+64=172. V²sledn² zaÜifrovan² text je tedy [255,200,172]. Jak u₧ bylo °eΦeno, pro deÜifrovßnφ musφme znßt z pro kterΘ platφ n*z = = 1 (mod m) (= = zde p°edstavuje kongruenci). S pomocφ tohoto Φφsla jednoduÜe pro ka₧d² blok spoΦφtßme b*z (mod m). V naÜem p°φpad∞ z=23.
225*23 mod 155 = 60 = 3+19+38 = 100110, 200*23 mod 155 = 105 = 9+19+77 = 001101 a 172*23 mod 155 = 81 = 4+77 = 010001. Dostali jsme v²slednou hodnotu 100110 001101 010001, kterß odpovφdß p∙vodnφ zprßv∞.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Pozd∞ji bylo batohovΘ schΘma äobohacenoô o mo₧nost digißlnφho podpisu dokument∙, obdobn∞ jak je tomu mo₧nΘ jako nap°φklad u algoritmu RSA. O prolomenφ tohoto schΘmatu si m∙₧ete p°eΦφst nap°φklad na http://www.cs.wm.edu/~hallyn/public_key/break.html</a> (z tohoto webu byl p°evzat p°φklad). Pozd∞ji byl tento algoritmus zkouÜen jako iteraΦnφ. ╪φkß se, ₧e se Ralph Merkle vsadil o tisφc dolar∙, ₧e nikdo nerozluÜtφ zprßvu 40ti-nßsobn∞ zaÜifrovanou. Prohrßl.
</DIV></FONT></b></i>
<A Name="Title4"><FONT Size=3><DIV Class=Headline>Man in the middle attack</DIV></font>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
SchΘma, kterΘ jsme si zatφm nastφnili, bohu₧el poho°φ na n∞kter²ch situacφch, kterΘ by mohli v praxi reßln∞ nastat. Man-in-the-middle attack je jeden z nejznßm∞jÜφch problΘm∙ v informaΦnφ bezpeΦnosti, na kter² se p°i v²voji asymetrick²ch kryptografick²ch technik primßrn∞ bralo ohled. Poznejme tedy, v Φem je jeho sφla a pokusme si vysv∞tlit, jakß opat°enφ je mo₧nΘ ud∞lat.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Alice nejen₧e neumφ Üachy, ale ani je nikdy nehrßla a tedy neznß pravidla. P°esto ovÜem existuje zp∙sob, jak²m m∙₧e porazit ÜachovΘho velmistra. P°edstavte si, ₧e oslovφ nezßvisle na sob∞ Kasparova a Karpova, p°iΦem₧ ani jeden z nich nevφ o oslavenφ toho druhΘho. Posadφ je do dvou odd∞len²ch mφstnostφ a dß p°ed n∞ dv∞ (r∙znΘ) Üachovnice tak, aby jeden z nich m∞l bφlΘ a druh² ΦernΘ, tedy prßv∞ jeden z nich bude zaΦφnat. K tomu si sedne a poΦkß a₧ zahraje prvnφ tah. Zapamatuje si ho, odejde do druhΘ mφstnosti a zahßjφ partii odkoukan²m tahem. PoΦkß na odpov∞∩ a tu zahraje op∞t v prvnφ mφstnosti. Takto bude pokraΦovat dokud s jednφm z nich nevyhraje (s druh²m prohraje), nebo dokud ob∞ partie neskonΦφ remφzou.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
ProblΘm Üachist∙ z tohoto p°φkladu (tzv. Chess-grandmaster problem) je v tom, ₧e nemajφ ₧ßdn² d∙kaz, ₧e skuteΦn∞ hrajφ s Alicφ. Jak by takΘ mohli, kdy₧ ve skuteΦnosti hrajφ oba spolu a Alice je jenom jak²msi prost°ednφkem. Obdobn² problΘm se objevuje v modernφ kryptografii odjak₧iva: Alice a Bob spolu cht∞jφ bezpeΦn∞ komunikovat a jeliko₧ znajφ principy asymetrickΘho Üifrovßnφ tak v∞dφ, ₧e je to mo₧nΘ, ani₧ by si museli p°edem dohodnout symetrick² Üifrovacφ klφΦ. Uka₧me si, jak by v p°φpad∞ neznalosti popisovanΘho problΘmu postupovali.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
1. Alice poÜle Bobovi sv∙j ve°ejn² klφΦ.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
2. Bob poÜle Alici sv∙j ve°ejn² klφΦ. Tφm majφ navzßjem svoje klφΦe a m∙₧ou bezpeΦn∞ komunikovat.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
3. Jeden posφlß druhΘmu stejn²m kanßlem tajnΘ zaÜifrovanΘ zprßvy.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
P°φpadn² ·toΦnφk M (Mallory) uprost°ed obejde ob∞ strany velmi jednoduÜe:
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
1. Alice poÜle sv∙j ve°ejn² klφΦ.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
2. Mallory ho zachytφ a mφsto toho Bobovi odeÜle sv∙j ve°ejn² klφΦ.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
3. Bob poÜle sv∙j ve°ejn² klφΦ.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
4. Mallory ho zachytφ a mφsto toho Alici odeÜle sv∙j ve°ejn² klφΦ.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Nynφ, stejn∞ jako v p°φpadu dvou Üachist∙, ka₧dß ze stran komunikuje ve skuteΦnosti s jin²m subjektem, ne₧ si myslφ. Alice pova₧uje obdr₧en² klφΦ za Bob∙v, Bob za Alicin. Mφsto toho ale ob∞ majφ klφΦ Mallory. Jakßkoliv poslanß data Mallory zachytφ, deÜifruje sv²m tajn²m klφΦem, p°eΦte si to (pop°. zm∞nφ), zaÜifruje ve°ejn²m klφΦem druhΘ strany a odeÜle dßle. P°φjemce (Bob) nic nepoznß, dokonce ani v p°φpad∞, ₧e by zprßva byla Alicφ digitßln∞ podepsßna, nebo¥ Mallory to m∙₧e ud∞lat toti₧ stejn∞ tak.
P°esn∞ takovΘmuto druhu ·toku se °φkß Man-in-the-middle Attack, od toho takΘ M, Mallory. Interlock protokol je zajφmav² protokol, kter² tento nep°φjemn² ·tok dokß₧e osob∞ uprost°ed p°enosu ztφ₧it mo₧nost zm∞ny zprßvy. Cel² systΘm, vynalezen² Ronem Rivestem a Adi Shamirem, probφhß podle nßsledujφcφho schΘmatu.
1. Alice poÜle Bobovi sv∙j ve°ejn² klφΦ
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
2. Bob poÜle Alici sv∙j ve°ejn² klφΦ
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
3. Alice zaÜifruje svojφ zprßvu Bobov²m ve°ejn²m klφΦem a poÜle mu prvnφ polovinu
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
4. Bob zaÜifruje svojφ zprßvu Alicin²m ve°ejn²m klφΦem a poÜle jφ polovinu
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
5. Alice poÜle Bobovi druhou polovinu.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
6. Bob sestavφ zprßvy dohromady, deÜifruje je a poÜle Alici druhou Φßst svΘ zprßvy.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Nejd∙le₧it∞jÜφ vlastnost schΘmatu je, ₧e zprßvy nesmφ b²t Φitelnß, resp. deÜifrovatelnΘ, pokud nejsou k dispozici ob∞ poloviny. Jedna (jakßkoliv) polovina zprßvy sama o sob∞ nesmφ znamenat nic. Toho se m∙₧e dosßhnout nap°φklad tak, ₧e zaÜifrovanß zprßva se prost∞ rozd∞lφ na sudΘ a lichΘ bity a ty budou tvo°it dv∞ "poloviny". Pop°φpad∞ pokud je deÜifrovacφ proces zßvisl² na inicializaΦnφm vektoru, m∙₧e tento vektor b²t ve druhΘ polovin∞, ne₧ vlastnφ zprßva.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Pokud vßm nenφ jasnΘ, jak jsme tφm ztφ₧ili Mallory(mu) man-in-the-middle ·tok, pokuste se protokol podvrhnou (tj. zm∞nit p°enßÜenß data, prost² odposlech je samoz°ejm∞ stßle mo₧n²). P°φpadn² ·toΦnφk samoz°ejm∞ stßle m∙₧e podvrhnout ve°ejnΘ klφΦe obou stran ve krocφch 1 a 2. Jen₧e v kroku 3 mß v ruce pouze jednu polovinu zprßvy urΦenΘ pro Boba a s nφ nem∙₧e nic d∞lat. Pokud jφ nechce poslat, musφ vytvo°it zbrusu novou zprßvu a tu odeslat mφsto p∙vodnφ. V kroku 4 mß ·pln∞ stejn² problΘm se zprßvou pro Alici. Op∞t musφ vymyslet jinou, vlastnφ zprßvu. A₧ v kroku 5 a 6 odchytne druhΘ poloviny zprßv, bude u₧ pozd∞ na to, aby zfalÜoval poloviny prvnφ, proto₧e ty u₧ budou dßvno odeslßny. Nezbude mu nic jinΘho, ne₧ odeslat druhΘ poloviny sv²ch vymyÜlen²ch zprßv. Pokud by dokßzal p°edpovφdat jakΘ zprßvy budou Alice nebo Bob posφlat, m∙₧e protokol samoz°ejm∞ "p°echytraΦit". Ale udr₧ovat smysluplnou komunikaci mezi Alicφ a Bobem, kdy ob∞ strany dφky meziΦlßnku vlastn∞ mluvφ "jinou °eΦφ", je rozhodn∞ podstatn∞ obtφ₧n∞jÜφ, ne₧ jen tak sed∞t na drßt∞ a poslouchat.
Digitßlnφ podpisy jsou jednφm z hlavnφch p°φnos∙ asymetrickΘ kryptografie. Mimo vÜude tak proklamovanΘ posφlßnφ da≥ov²ch p°iznßnφ na ·°ady apod. se podφlejφ na obran∞ proti ·toku z jednoho z minul²ch odstavc∙, jeho₧ °eÜenφ jsem zatφm nechal otev°enΘ.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Digitßlnφ podpis je v praxi jen sekvence Φφsel za urΦit²m dokumentem. Oproti ruΦnφmu podpisu je ovÜem zvlßÜtnφ rozdφl v tom, ₧e ruΦnφ podpisy jednoho Φlov∞ka na dvou r∙zn²ch dokumentech jsou ne-li stejnΘ tak alespo≥ podobnΘ, vedle toho digitßlnφ podpisy jednoho Φlov∞ka pod dv∞ma r∙zn²mi dokumenty jsou naprosto odliÜnΘ. Vedle matematickΘho pozadφ digitßlnφ podpis∙ tomu tak je ze z°ejm²ch d∙vod∙. To, co m∙₧eme ud∞lat ve skuteΦnosti, nap°. okopφrovat n∞Φφ podpis na jak²koliv dokument, bychom mohli na poΦφtaΦi ud∞lat jeÜt∞ snßze, navφc by byl pad∞lek od originßlu naprosto k nerozeznßnφ.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
KlφΦov²m pojmem, nutn²m k porozum∞nφ filosofii digitßlnφch podpis∙ je tzv. bezpeΦn² v²tah zprßvy (angl. message diegest, hash). V²tah zprßvy (dßle jen v²tah Φi hash) je algoritmus, kter² z jakkoliv dlouhΘ posloupnosti znak∙ (Φφsel) vytvo°φ Φφslo s konstantnφ dΘlkou a to za stanoven²ch podmφnek. Pojem hashovßnφ se objevuje nap°φklad i v oblasti databßzφ. Jednß se o pou₧itφ podobn²ch technik, ovÜem s odliÜn²mi nßroky na vlastnosti.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Pro naÜe ·Φely po₧adujeme p°edevÜφm tzv. kryptografickou bezpeΦnost hashovacφho algoritmu, co₧ v praxi znamenß takzvanou jednocestnost vytvo°enΘ funkce. SpoΦφtat hash jakΘkoliv zprßvy musφ b²t velmi jednoduchΘ, ale vymyslet zprßvu tak, aby m∞la n∞jak² konkrΘtnφ hash musφ b²t obtφ₧nΘ. To je zßkladnφ rozdφl mezi hashi a kontrolnφmi souΦty. Nejznßm∞jÜφ v kryptografii pou₧φvanΘ algoritmy jsou MDx (Message Diegest 2, 4, 5), SHA (Secure Hash Algorithm) a RIPE-MD. BezpeΦnost hashovacφ funkce je p°φmo zßvislß na dΘlce v²stupnφho bloku, dßle pak obvykle plat₧, ₧e i malß zm∞na ve vstupu zp∙sobφ velkou zm∞nu ve v²stupu.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Vlastnφ digitßlnφ podpis funguje v obecnΘ rovin∞ velmi jednoduÜe. Pokud chce Alice podepsat n∞jak² dokument, vygeneruje z n∞j v²tah a zaÜifruje ho sv²m tajn²m klφΦem. Toto p°ilo₧φ k dokumentu, Φφm₧ ho prßv∞ podepsala. Na druhΘ stran∞ Bob separuje podpis od dokumentu, spoΦφtß v²tah z textu a deÜifruje podpis Alicin²m ve°ejn²m klφΦem. Tφm dostane dv∞ hodnoty. Pokud se rovnajφ, je podpis platn² (pou₧il jsem nejjednoduÜÜφ popis asymetrickΘho algoritmu RSA).
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
BezpeΦnost tΘto metody vypl²vß z v²Üe uveden²ch vlastnostφ. Kdyby kdokoliv cht∞l podpis zfalÜovat, musel by mφt jeho tajn² klφΦ. Nebo by takΘ mohl n∞Φφ podpis p°ilo₧it pod jin² dokument. Jen₧e to nejde, proto₧e by se pak neshodovaly v²tahy textu a deÜifrovanΘho podpisu. A nemo₧nost vymyÜlenφ dokumentu s dan²m hashem plyne p°φmo z v²Üe uvßd∞nΘ definice v²tah∙ ze zprßv. Jak je vid∞t, v kryptografii s ve°ejn²m klφΦem vÜe stojφ a padß s bezpeΦn²m uschovßnφm tajnΘho klφΦe.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Po digitßlnφm podpisu jsou po₧adovßny t°i hlavnφ vlastnosti, kterΘ jsou p°i uvedenΘm schΘmatu spln∞ny. Prvnφ z nich je autentiΦnost zprßvy, tj. p°φjemce musφ mφt mo₧nost odhalit jakoukoliv jejφ zm∞nu. Toho jsme docφlili pou₧itφm hashovacφ funkce : jakßkoliv zm∞na vstupu zp∙sobφ radikßlnφ (tj. ne·m∞rnou) zm∞nu v²stupu a p°i ov∞°ovßnφ bude podpis neplatn². Druhou po₧adovanou vlastnostφ je nepopiratelnost podpisu, kterou jsme takΘ splnili û jen a prßv∞ vlastnφk mß k tajnΘmu klφΦi (kter² je pro podpis pot°eba) p°φstup. Jak ale zajistit skuteΦnΘ propojenφ podpisu s konkrΘtnφ osobou Φi organizacφ? Mßme podobn² problΘm jako Alice a Bob v p°φpad∞ man-in-the-middle ·toku. Digitßlnφ podpis jednoznaΦn∞ spojφ dokument s dan²m klφΦem, kdo ale spojφ klφΦ s reßln²m subjektem? Pokud si spustφte n∞jak² Üifrovacφ program a zkusφte si vygenerovat pßr klφΦ∙, zeptß se vßs mimo jinΘ i na vaÜe jmΘno. Ka₧d² klφΦ toti₧ musφ b²t nositelem n∞jakΘ jmenovky (nejmΘn∞ jednΘ), aby se poznalo, Φφ ten klφΦ je. Zde je ale kßmen ·razu. Kdokoliv si m∙₧e vytvo°it klφΦe se jmenovkou t°eba Billa Clintona. M∙₧e s nφm Üifrovat, deÜifrovat, podepisovat, nebo ho t°eba vystavit na n∞jakΘm ve°ejnΘm serveru klφΦ∙ lidφ z celΘho sv∞ta. Bude to mφt ale jeden hßΦek: nebude to klφΦ Billa Clintona, ale n∞koho ·pln∞ jinΘho, kter² ten klφΦ podvrhl.
Princip d∙v∞ryhodnΘ t°etφ strany je zaveden² i v "b∞₧nΘm" ₧ivot∞. P°edstavujφ ji notß°i, soudci, komise apod. P°edevÜφm v komerΦnφ poΦφtaΦovΘ oblasti platφ, ₧e t°etφ strana mß co mo₧nß nejv∞tÜφ mφru zßjmu z∙stat d∙v∞ryhodnß jak jen to dlouho jde, proto₧e takto ztracen² kredit by se od klient∙ ji₧ velmi t∞₧ko zφskßval zp∞t. Tφm je zajiÜt∞no, ₧e i tato t°etφ strana mß mimo°ßdn² zßjem na svΘ änepodvr₧enostiô, stejn∞ jako Alice a Bob. D∙v∞ryhodnß t°etφ strana je v tomto p°φpad∞ takzvanß certifikaΦnφ autorita.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
CertifikaΦnφ autorita je instituce-d∙v∞ryhodnß t°etφ strana , kterß sv²m podpisem na cizφm ve°ejnΘm klφΦi stvrzuje, ₧e klφΦ pat°φ skuteΦn∞ tomu subjektu, kter² je napsßn na jmenovce. Jde o vφcemΘn∞ identickou operaci jako digitßlnφ podepisovßnφ dokument∙, rozdφl je pouze v interpretaci v²sledku. Podpis certifikaΦnφ autority pod ve°ejn²m klφΦem se naz²vß (digitßlnφ) certifikßt.
SystΘm certifikaΦnφch autorit, certifikßt∙ a ve°ejn²ch klφΦ∙ jednotn∞ naz²vßme Public Key Infrastructure, infrastruktura ve°ejn²ch klφΦ∙, voln∞ji taktΘ₧ v n∞kter²ch p°φpadech pavuΦina d∙v∞ry. BezpeΦnost a konzistence takov²chto struktur je zalo₧ena na zßklad∞ vzßjemnΘ d∙v∞ry jednotliv²ch Φlßnk∙. Z praxe bych jmenoval dva zßkladnφ p°φstupy k budovßnφ architektury PKI : systΘm hierarchick² a systΘm distribuovan². Prßv∞ certifikaΦnφ autority jsou typickΘ pro ten prvn∞ jmenovan². JednotlivΘ subjekty jsou uspo°ßdßny do jakΘhosi (otoΦenΘho) stromu d∙v∞ry, kde ·pln∞ naho°e je takzvanß ko°enovß CA a v listech jsou jednotlivφ certifikovanφ u₧ivatelΘ. Mezi t∞mito krajnφmi souΦßstmi se nachßzejφ jednotlivΘ certifikaΦnφ autority. Ty majφ v₧dy certifikßt od autority nad°azenΘ a naopak vydßvajφ certifikßt jednotliv²m u₧ivatel∙m, pop°. ostatnφm autoritßm (tzv. k°φ₧ovß reference). Pßr ve°ejn²/tajn² klφΦ m∙₧e sßm u₧ivatel vytvo°it a nechat si ho podepsat od CA, nebo ho m∙₧e generovat CA pro n∞j. Tato situace p°edpoklßdß vztah d∙v∞ry mezi u₧ivateli a CA, nebo¥ ta mß potΘ p°φstup k tajn²m klφΦ∙m u₧ivatel∙. V²hoda je v menÜφm poΦtu starostφ u₧ivatele.Pokud dostanete klφΦ s certifikßtem, vaÜe d∙v∞ra v tento klφΦ zßle₧φ na vaÜφ d∙v∞°e v p°ilo₧en² certifikßt. Pokud v∞°φte, ₧e autorita, kterß ten certifikßt vydala, podepisuje pouze platnΘ klφΦe, budete v∞°it, ₧e tento klφΦ skuteΦn∞ nßle₧φ na jmenovce uvedenΘ osob∞. Pokud jφ nev∞°φte, nemßte nic, o co byste op°eli svoji d∙v∞ru.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
SystΘm distribuovan² je zobecn∞nφm systΘmu hierarchickΘho. Ka₧d² v n∞m z·Φastn∞n² s ubjekt pova₧uje za d∙v∞ryhodnΘ pouze svΘ nejbli₧Üφ sousedy. Snaha jednotlivce tedy je, zφskat pod sv∙j ve°ejn² klφΦ co nejvφce podpis∙ a doufat, ₧e potencionßlnφ dopisovatel bude v∞°it alespo≥ jednomu z nich. Ka₧d² je vlastn∞ takovou malou certifikaΦnφ autoritou pro lidi ze svΘho nejbli₧Üφho okolφ. Tuto ideu p°edstavuje program PGP, naopak d∙v∞ru pouze v CA vy₧adujφ programy jako Outlook, Internet Explorer apod.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Podpis CA na AlicinΘm klφΦi Bobovi potvrzuje, ₧e je se skuteΦn∞ jednß o klφΦ Alicin. Bob nemß nejmenÜφ d∙vod v∞°it nepodepsanΘmu podvrhnutΘmu klφΦi, ve skuteΦnosti od Mallory. Je zde vid∞t, ₧e prßv∞ na d∙v∞ryhodnosti t°etφ strany cel² systΘm stojφ. Pokud bude certifikaΦnφ autorita podplatitelnß nebo jejφ data, technologie, servery apod. budou nedostateΦn∞ zabezpeΦenΘ, Mallory bude ve skuteΦnosti jeÜt∞ v lepÜφ situaci, proto₧e (faleÜn²) podpis klφΦe bude tφm vφc Boba klamn∞ ujiÜ¥ovat o jeho pravosti.
</DIV></FONT></b></i>
<A Name="Title9"><FONT Size=3><DIV Class=Headline>Podepisovacφ a Üifrovacφ klφΦe</DIV></font>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
èifrovacφ program PGP ve svΘ verzi 6.0 p°iÜel s v²znamnou novinkou: takzvanou pod°φzenostφ klφΦ∙. Zßkladnφ myÜlenka je a₧ genißln∞ jednoduchß: odd∞lme Üifrovacφ a podepisovacφ klφΦe od sebe. P°i p°enßÜenφ t∞chto klφΦ∙ nap°φklad e-mailem, se vÜe bude tvß°it jako jeden soubor, ale ve skuteΦnosti nßm bude moci certifikaΦnφ agentura podepsat pouze podepisovacφ klφΦ. To ale ·pln∞ staΦφ proto₧e na zßklad∞ podepsßnφ naÜeho ve°ejnΘho Üifrovacφho klφΦe naÜφm podepisovacφm klφΦem (kter² mßme ov∞°en), budou vÜichni v∞°it i tomuto Üifrovacφmu klφΦi. Nap°φklad p°i ztrßt∞ Üifrovacφho klφΦe si staΦφ vygenerovat nov², podepsat ho a vystavit na serverch s ve°ejn²mi klφΦi. Inteligentnφ Üifrovacφ programy to navφc ud∞lajφ tak, ₧e nov² Üifrovacφ klφΦ jakoby odsune ten star² na druhΘ mφsto, tudφ₧ se bude implicitn∞ Üifrovat novΘmu klφΦi.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Toto mß takΘ dalekosßhlΘ ·Φinky na tzv. key-escrow. Key-escrow je slu₧ba poskytovanß t°etφ, vφce Φi mΘn∞ d∙v∞ryhodnou stranou, u kterΘ si m∙₧eme nßÜ tajn² klφΦ uschovat. D∙vody mohou b²t dobrovolnΘ (nap°φklad pro p°φpad ztrßty), ale takΘ nucenΘ, kup°φkladu velkß spoleΦnost m∙₧e chtφt mφt p°φstup k zam∞stnancov∞ prßci v p°φpad∞, ₧e by zem°el nebo byl dlouhodob∞ nemocn². Pakli₧e mß t°etφ strana zßjem pouze o nßÜ Üifrovacφ klφΦ (co₧ je nejΦast∞jÜφ varianta), vy°eÜφme situaci jednoduÜe vygenerovßnφm klφΦe novΘho. Ten bude aktußln∞jÜφ, bude se pou₧φvat implicitn∞, ale star² bude pro deÜifrovßnφ stßle k dispozici.
ProblΘm tak°ka vÜech asymetrick²ch algoritm∙ je v jejich rychlosti. Slo₧itΘ operace umoc≥ovßnφ zabφrajφ tolik Φasu, ₧e Üifrovßnφ pouze asymetrick²m algoritmem by bylo pro svojφ pomalost nepou₧itelnΘ. Proto se pou₧φvajφ tzv. kombinovanΘ systΘmy. Celß operace Üifrovßnφ a deÜifrovßnφ se navenek tvß°φ jako prßce s asymetrickou Üifrou a ve°ejn²m/tajn²m klφΦem, ovÜem vlastnφ data se Üifrujφ symetricky. Jak je to mo₧n∞?
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Alice nejprve napφÜe tajnou zprßvu, kterou chce zaÜifrovat Bobov²m tajn²m klφΦem a odeslat mu ji. JeÜt∞ p°edtφm vÜak vygeneruje nßhodn² klφΦ o dΘlce po₧adovanΘ symetrick²m algoritmem, kter² mß k dispozici. Tento unikßtnφ klφΦ se naz²vß klφΦ relace (angl. session key, n∞kte°φ to p°eklßdajφ jako klφΦ sezenφ). Pomocφ tohoto nßhodn∞ vygenerovanΘho klφΦe svoji napsanou zprßvu zaÜifruje. PotΘ tento nßhodn² klφΦ zaÜifruje Bobov²m ve°ejn²m klφΦem. Nakonec ho p°idß na konec zaÜifrovanΘ zprßvy a m∙₧e zprßvu odeslat. Na druhΘ stran∞ probφhß proces opaΦn². Bob separuje zaÜifrovan² klφΦ od zprßvy a deÜifruje ho sv²m tajn²m klφΦem. Tφm dostane p∙vodnφ Alicφ vygenerovan² klφΦ relace, kter²m pak deÜifruje samotnou zprßvu. Pomal²m asymetrick²m algoritmem se tedy Üifruje a deÜifruje pouze krßtk² klφΦ relace, dlouh² text zprßvy se Üifruje pomocφ velmi rychlΘho symetrickΘho algoritmu. Pokud navφc chceme zprßvu poslat vφce p°φjemc∙m, staΦφ p°idat jeden klφΦ relace a zaÜifrovat jin²m ve°ejn²m klφΦem.
</DIV></FONT></b></i>
</DIV>
<SCRIPT>
TextEnd('')
</SCRIPT><OL Class=None Type=Disc></OL><SCRIPT>
nie('<br>');AdditionalTablesBegin();
CommentsBegin('Asymetrickß kryptografie v teorii a praxi',0);