O elektronickém podpisu již jistě každý slyšel. Zjednodušeně se dá říci, že to je jen unikátní řada znaků. Háček je v tom slově "unikátní". Kdo chce pochopit systém elektronického podpisu, ten by měl nejdřív vědět neco o šifrování. Šifrování má dlouholetou tradici snad ve všech kulturách, proto se není co divit, že i v naší době počítačové komunikace vznikla velmi záhy potřeba posílat šifrované zprávy tak chytře zakódované, aby je mohl přečíst jen příjemce. Systém byl jednoduchý. Odesílatel svou zprávu zakóduje svým jedinečným klíčem, který zná jen on a příjemce a nikdo jiný. Pak může zprávu poslat příjemci bez toho, aby se bál, že si jí přečte někdo nepovolaný. Tomuto systému se říká symetrické šifrování.



    Jednoduchý příklad symetrické šifry je třeba celkem jednoduché rozsekání zprávy na úseky o konstantní délce a následné posunutí všech písmenek o konstantu (tedy např. slovo mám slovo permoník, klíč bude mít délku 2, takže výsledné slovo je rgsoqpkm). To je samozřejmě velmi jednoduchý způsob kryptování a není problém tuto šifru prolomit. Trochu složitější bude, když klíč neposune všechny písmenka o stejnou konstantu, ale první písmenko úseku posune třeba o 12, druhé o 5, třetí o 1 a čtvrté o 7. Ani tahle šifra není neprůstřelná, ale přecejen je to větší oříšek. je vidět, že čím delší klíč, tím lépe je zpáva zabezpečena. Dále je asi taky hned vidět, že prosté posouvání písmen není zrovna ideální algoritmus. Nebyl by až takový problém získat zašifrovanou zprávu i původní zprávu nějakou chytrou lstí a z nich pak přijít na klíč. Naštěstí existují jiné funkce, u kterých je výpočetně velice obtížné získat klíč při znalosti původní zprávy a zašifrované zprávy. Záleží samozřejmě na délce klíče. Dnes se běžně používá délka klíče 128 bitů, dříve byla zhruba poloviční (54 bitů), ale časem se ukázalo, že je klíč prolomitelný hrubou silou, tedy prostým vyzkoušením všech možných variant klíče. Při současné délce klíče 128 bitů a současné technologii by prolomení hrubou silou trvalo asi 10^39 let, což se zdá jako celkem slušná doba i na modernější stroje.

    Symetrické šifry jsou velmi rychlé, takže se dají využít i jen pro šifrování vlastních dat, která pak nikam neputují a zůstanou tam, kde jsou, ale nikdo nepovolaný si je nepřečte. Nevýhoda je ta, že odesílatel a příjemce si musí nějak bezpečně předat klíč, což by mohl být problém, a další velká nevýhoda je počet klíčů. Má-li mít každý s každým vyměněný klíč třeba jen ve firmě čítající 10 000 zaměstnanců, tak je třeba 5 milionů klíčů. No není to roztomilé číslo?

    A tak na scénu nastupuje asymetrické šifrování. Rozdíl je patrný hned z obrázku. Asymetrická kryptografie využívá jiného klíče pro šifrování a jiného pro dešifrování (narozdíl od symetrické). Asymetrická kryptografie je založena na této myšlence: Každý subjekt má svůj tajný (soukromý) klíč k dešifrování a k němu veřejný klíč k zašifrování. V síti o n subjektech je potřeba připravit jen 2n klíčů, přičemž veřejné klíče lze opravdu zveřejnit a odpadá tedy nutnost složité, nákladné a nebezpečné distribuce těchto klíčů. Princip asymetrické šifry je snadný. Helga vystaví na nějakém veřejném místě svůj veřejný klíč. Hugo jí chce poslat milostný dopis, ale ví, že Helga má žárlivého manžela (otázky rozbíjení manželství teď nechme stranou..), tak se rozhodne poslat jí dopis šifrovaně. Svou milostnou zprávu tedy zakóduje jejím veřejným klíčem a pošle jí. Helga dostane šifrovaný dopis, který si snadno svým soukromým klíčem dešifruje. Voila.



    Zde je ještě popis vytvoření dvojice klíčů (veřejného a tajného) pro RSA (zkratka z prvních písmen tvůrců asymetrického systému Rivest, Shamir a Adelmann): a) Nejprve náhodně (a nepredikovatelně) vygenerujeme dvě dostatečně velká prvočísla (jejich přibližná velikost, tj. počet bitů, je zadána).
b) Spočteme n = p*q a F (n) = (p-1)*(q-1), kde F (n) je Eulerova funkce určující počet přirozených čísel nesoudělných s n.
c) Zvolíme náhodné číslo e, kde 1 < e < F (n), tak, že největší společný dělitel (e, F (n)) = 1 (tj. e a F (n) jsou nesoudělná).
d) Užitím Eukleidova algoritmu spočteme jednoznačně definované číslo d takové, že 1 < d < F (n) a e*d 1 mod F (n).

    Teď v této chvíli se konečně dostáváme k elektronickému podpisu. Hledáme něco, co nám bezpečně identifikuje odesílatele bez jakýchkoli pochyb. K tomu budeme potřebovat ještě hashovací funkci. Hashovací funkce mají za úkol vytvořit takzvaný otisk zprávy. Vstupem hashovací funkce může být libovolná zpráva (libovolně dlouhá), na výstupu obdržíme retězec, který má pevnou délku (128 nebo 160 bitů). Pokud bychom ve zprávě změnili byť i jediné písmenko, dostaneme na výstupu úplně jiný obraz. Hashovací funkce jsou obecně známé a kdokoli si může z jakékoliv zprávy takový otisk udělat. Navíc platí, že je výpočetně velice obtížné vytvořit k libovolné zprávě jinou zprávu, která má stejný otisk. Obtížnost tohoto úkonu je ekvivalentní obtížnosti rozšifrování zprávy bez znalosti klíče. Nejznámější hashovací funkce je MD5 (128 bitů) a SHA-1 (160 bitů). A už můžeme vesele podepisovat. Stačí nám k tomu hashovaci fce a sada našich klíčů pro nějaký asymetrický algoritmus. Podepisování pak probíhá následovně. Podepisující osoba vypočte hash ze zprávy, kterou podepisuje. Hash pak zašifruje svým soukromým klíčem, takto získanou šifru přiloží ke zprávě a odešle. Příjemce nejprve vypočte hash zprávy. Pak veřejným klíčem odesílatele odšifruje přílohu, získá tedy původní hash odesílatele. Nakonec oba hashe (vypočtený a odšifrovaný) porovná. Jsou-li identické, tak zpráva nebyla pozměněna a příjemce si může být jistý, že zprávu podepsal majitel veřejného klíče (jen ta má přístup k soukromému klíči, kterým šifrovala). V praxi je u procesu ještě třetí osoba, která eviduje veřejné klíče a potvrzuje identitu pisatele a adresáta. Této osobě se říká certifikační autorita. Používání elektronického podpisu má svá stanovená pravidla v zákoně, který byl u nás schválen v červenci roku 2000. Co se Evropské unie týče, byla v rove 1999 přijata Směrnice o elektronických podpisech (1999/93/EC), která je závazná pro všechny členy EU.



    Zdoje:
  • PGP - server veřejných klíčů PGP
  • Lupa.cz

  • (c) 2001 Věra Šumová