O čem to bude?
K čemu ale všechno to? Jaké věci dokáže kryptografie vyřešit? Tak například elektronické uzavírání smluv. Písemná forma dovoluje oběma stranám překonat vzájemnou nedůvěru, protože vědí, že jakékoliv podvodné chování vyjde ihned najevo. Jakmile je jednou podepsáno, nemůže být kontrakt zapomenut a v případě sporu poslouží nezávislé třetí straně právě "fyzický" papír k doložení závazků jednotlivých partnerů.
Jak se ale obchodování přesouvá do elektronické formy, smluvní vztahy se v různých podobách přesouvají do této oblasti také. Vznikají například při každém nákupu v elektronickém obchodě, kde předpokládáme, že za poukázané peníze zboží či službu obdržíme, popř. prodávající strana očekává, že peníze obdrží. Předmětem takovéhoto kontraktu nemusí být ale jen věci hmotné, ale může se jednat o elektronický nákup například přístupu k nějakým datům apod.
Jak se ale ukazuje, uzavírání smluv elektronickou cestou s sebou nese některé obtíže. Většina smluvních vztahů se uzavírá "tváří v tvář", což zde není možné. Jednak mohou obě strany být od sebe tisíce kilometrů vzdáleny, jednak, a to především, požadavek elektronické formy přímo nutnost fyzické přítomnosti přímo vylučuje. Tím, jak lze tyto a podobné, v reálném světě běžné, problémy provádět například v prostředí internetu, se budeme zabývat právě v tomto článku.
Prosazování standardního postupu v elektronickém prostředí bude pravděpodobně jeden z nejčastěji aplikovaných postupů. Představme si dvě strany, Alici a Boba, jak podepisují smlouvu. Oni nebo jejich právníci ji vypracují, obě strany ji tak mají k dispozici. Nyní Alice smlouvu podepíše a pošle Bobovi. Ten po přijetí ověří, že Alice skutečně podepsala text, na kterém se dohodli, podepíše a odešle zpět, čímž je celý proces u konce. Nutno podotknout, že smluvní strany pravděpodobně předpokládají vzájemné férové chování, neboť takovýto způsob je pouze formální a vždy alespoň jedné ze stran dovoluje podvést tu druhou.
Alice navrhne Bobovi sázku : "Vsadím se s tebou o 500 Kč, že moje politická strana dostane v zítřejších volbách minimálně 5% hlasů". Bob si nabídku rozmyslí a odpoví : "Souhlasím, ale pokud ne, tak mi naopak dáš tvoje nejnovější CD.". Alice sepíše smlouvu a podepsanou ji odešle Bobovi, jako v minulém případě. A čeká na odpověď. Čeká, stále čeká a od Boba nic nepřichází, třeba není doma a nemá přístup k Internetu. Další den dostane zmiňovaná strana 6% hlasů a Alice, v očekávání peněz, napíše Bobovi. Jaké je její zděšení, když Bob odpoví, že si myslel, že ze sázky sešlo, neboť od Alice nic nedostal. Pokud ovšem strana dostane 4%, Bob podepíše smlouvu a přiloží ji k mailu "Jdu si pro CD, uvidíme se ve dvě.".
Kde se stala chyba? Když Bob přestal odpovídat, Alice se nesprávně domnívala, že smlouvu nedostal (nečetl). Ten ale ve skutečnosti nejdříve vyčkal na výsledek předmětu sázky a na základě toho podvedl Alici. Ta mu to umožnila tím, že do tohoto špatně navrženého protokolu vstoupila jako první. Pomocí kryptografie je třeba vymyslet protokol jiný, bezpečnější.
Když už jsme u toho, tak toto je klasická ukázka něčeho, čemuž se říká the Contract signing problem. Jeho jiná varianta je takzvaný Certified mail problem, neboli elektronické doručenky - Alice chce poslat Bobovi dopis, zároveň ale požaduje s jistotou vědět, zda dopis četl. Potřebuje zkrátka potvrzení o přijetí. Další reálná situace, která čeká na bezpečný kryptografický protokol.
Ve své podstatě mají tyto problémy jedno speficikum : jistý sled akcí, ačkoliv se skládá z několika kroků, je nedělitelný. Drobvnou paralelu můžeme vidět například v databázových systémech, konkrétně v transakcích. Například v databázi banky není možné, aby se peníze je jednoho účtu odečetly a na druhý již nepřipsaly - je nutné provést buď oboje nebo nic (Přestože se ve skutečnosti jedná o účty dva, je zde pouze jeden zájem - zájem banky, aby se vše proběhlo tak, jak má.). Tyto a jiné úlohy tedy charakterizuje nedělitelnost skupiny akcí (např. odeslání mailu a odesláni doručenky zpět apod.), což je při komunikaci po navíc často nedůvěryhodné síti problém.
Další reprezentace, na kterou se zmiňované problémy často převádění je tzv. problém bezpečné výměny - fair exchange problem. Ten se vysvětluje velmi jednoduše : Alice i Bob mají každý něco, co ten druhý chce, v případě smlouvy jsou to například podpisy pod dokumentem. Otázka je, jak vzniklou situaci vyřešit férovou výměnou. Jak je vidět, je zde opět obtíž v popsané nedělitelnosti, popsané o odstavec výše.
Podle práva ve Spojených státech musí obchodníci ke každému elektronickému kontraktu na částku, která přesahuje 500 dolarů, podepsat další písemnou dohodu. To ovšem nic z popisovaného neřeší. Je nutné podotknout, že případné řešení tohoto problému je naprosto nezávislé na použitých kryptografických technikách, například na různých šifrovacích algoritmech a podepisovacích schématech. Stejně tak nezáleží na tom, jaký fyzický kanál bude použit - problémy nejsou vlastně nové, neboť obdobné věci se v některých případech řeší při použití faxu či telefonu. Zkrátka na konkrétní implementaci nezáleží.
Více o použití kryptografických protokolů v reálném světě si povíme v dalším díle tohoto seriálu. Budeme se zabývat jak jejich teorií (typy protokolů, útoky na ně apod), tak řešením konkrétních situací. Elektronické smlouvy, doručenky, takzvané "blind signatures", zachování anonymity, sázce kámen-nůžky-papír na internetu, zero-knowledge proofs apod.