Vyšlo v příloze Softwarových novin, v červnu 2001
Vytištěno z adresy: http://www.earchiv.cz/b01/b0600004.php3

Symetrické a asymetrické šifrování

Šifrováním se obecně rozumí taková transformace určitých dat, která dá vzniknout jinému jejich tvaru, ze kterého není "poznat" tvar původní. Samotný proces šifrování je matematickou operací, která kromě samotných dat vyžaduje i použití vhodného klíče. Opačnou operací, která již zašifrovaná data "vrací" do jejich původní podoby, je tzv. dešifrování, ke kterému je opět zapotřebí mít vhodný klíč. Ovšem jaký, to záleží na tom, zda se jedná o symetrické či asymetrické šifrování.

Při symetrickém šifrování se používají dva zcela stejné (identické) klíče, které samozřejmě musí zůstat uchráněny před nepovolanými rukami. Každým z nich totiž lze data jak zašifrovat, tak i odšifrovat. Pro lepší názornost si lze představit bezpečnostní schránku, ke které existují dva exempláře jednoho a téhož klíče. Každá z obou komunikujících stran by ve svém držení měla mít jeden z nich, a měla by jej pečlivě hlídat - pokud totiž potřebuje něco bezpečně předat druhé straně, vloží to do schránky, s vědomím že nikdo jiný než druhá strana ji nemůže odemknout a vzít si její obsah. Samozřejmě pokud by došlo ke ztrátě či okopírování kteréhokoli z dvojice identických klíčů, mohl by se k obsahu schránky (v realitě: k zašifrovaným datům) dostat někdo nepovolaný.

Bezpečnost symetrického šifrování proto stojí a padá nejenom s "bytelností" (robustností) samotného procesu šifrování, ale také se způsobem distribuce a následného zajištění obou klíčů. Samotné šifrování je přitom možné prakticky libovolně zesilovat (zvyšovat jejich rozbustnost), použitím větších (delších) klíčů, a tak omezujícím faktorem je v praxi spíše manipulace s tajnými klíč. Zejména pak to, jak má být tajný klíč dopraven k protistraně, tak aby následná komunikace již mohla probíhat s jeho využitím.

V některých konkrétních situacích je distribuce tajného klíče pro symetrické šifrování relativně snadná - například pro potřeby GSM bankingu, kde příslušnou SIM kartu nastavuje (nahrává na ni data) banka resp. operátor, není zásadnějším problémem vše zajistit tak jak je potřeba. Jinde by ale manipulace s tajnými klíči byla problematická - například tam, kde se komunikující strany přímo neznají, nepřichází spolu do přímého kontaktu, a nemohou si tak bezpečným způsobem předat tajné klíče. Zde pak musí nastoupit jiný princip, konkrétně tzv. asymetrické šifrování.

Jak již samotný název napovídá, asymetrické šifrování počítá s nestejností (asymetrií) klíčů, pomocí kterých se provádí šifrování i dešifrování. Vrátíme-li se k příměru s bezpečnostní schránkou, lze asymetrické šifrování přirovnat k použití schránky která má dvě dvířka, jedny vepředu a druhé vzadu, a každé z těchto dvířek má svůj vlastní klíč, odlišný od druhého klíče. Způsob fungování takovéto bezpečnostní schránky je takový, že co se do schránky vloží z jedné strany (skrze jedny dvířka otevřené jedním klíčem), to lze zase vyjmout pouze z druhé strany (skrze druhá dvířka otevřená druhým klíčem). V praxi se pak takováto schránka používá jako určitá "osobní schránka" konkrétního uživatele, který vlastní (a pečlivě střeží) jeden ze dvojice nestejných klíčů, jako svůj privátní klíč, zatímco druhý klíč na druhé straně schránky zpřístupní komukoli, kdo o něj projeví zájem (jako tzv. veřejný klíč).

Když pak vlastník vloží něco do schránky, a to ze "své" strany, kterou si otevřel pomocí svého privátního klíče, lze obsah schránky vyjmout pouze z druhé strany. Učinit tak může kdokoli, kdo má od této schránky veřejný klíč - a to může být skutečně každý, protože veřejný klíč lze doslova "vyvěsit" na veřejné straně schránky a být tak přístupný skutečně každému. Efekt, který to přináší, je jistota že obsah mohl do schránky vložit pouze ten, kdo má přístup k její druhé straně, neboli vlastník privátního klíče.

Jak funguje elektronický podpis

Postup, popisovaný v závěru předchozího odstavce, je základem pro fungování elektronických podpisů - autor udělá jakýsi "otisk" svého dokumentu (tzv. hash), ten zašifruje pomocí svého privátního klíče, a následně přiloží k samotnému dokumentu v roli jeho elektronického podpisu. Kdokoli, kdo se k takto podepsanému podpisu následně dostane, se může sám přesvědčit o jeho pravosti (pravosti jeho podpisu) tím, že veřejným klíčem autora odšifruje "otisk" dokumentu a porovná jej s otiskem, který si udělal sám. Pokud se oba rovnají, má jistotu, že dokument nebyl změněn (jde o zachování integrity, viz výše), má jistotu kdo dokument podepsal (je zajištěna identifikace a autentizace) a má také zajištěno že dotyčný nemůže někdy později odmítnout svůj podpis (je zajištěna tzv. neodmítnutelnost, díky tomu že nikdo jiný než vlastník privátního klíče nemohl provést zašifrování otisku při vzniku podpisu).

Potenciálním slabým místem elektronických podpisů je identita konkrétní fyzické osoby, spojovaná s veřejným klíčem - pokud totiž kdokoli přijme cokoli co je opatřeno elektronickým podpisem (vyjme to z veřejné strany bezpečnostní schránky, s použitím našeho příměru), a pravost tohoto podpisu si ověří (pomocí veřejného klíče odšifruje otisk a porovná jej s novým otiskem zprávy), pak nutně musí dojít k závěru, že tím kdo dokument resp. zprávu podepsal musel být ten, komu patří použitý veřejný klíč. Přesněji ten, s jehož identitou je veřejný klíč spojen. A právě zde by mohlo dojít k potenciálnímu podvodu, pokud by se někdo jiný neoprávněně vydával za vlastníka příslušného privátního klíče.

Řešením, které se používá v oblasti elektronických podpisů, je požádat nějakou dostatečně důvěryhodnou třetí stranu, aby ona "řekla" komu veřejný klíč patří. Konkrétně aby vydala tzv. certifikát, který stvrzuje že veřejný klíč patří osobě té a té. Je to určitá analogie občanského průkazu, který vydává policie (dnes ale už Okresní úřad), a kterým mj. stvrzuje, že fotografie v občanském průkazu patří osobě, která je na průkazu uvedena. Certifikáty vydávají tzv. certifikační autority (formálně: poskytovatelé certifikačních služeb), které si podobně jako policie resp. okresní úřad nejprve dostatečně ověří totožnost příslušné osoby, nechají si předložit její veřejný klíč, přesvědčí se o tom že tato osoba vlastní odpovídající privátní klíč, a poté vystaví příslušný certifikát (který zajistí proti eventuelnímu padělání tak, že jej sama podepíše vlastním elektronickým podpisem).