Moderní metody šifrování
V dnešní době je často potřeba posílat citlivé informace přes veřejné komunikační kanály, což jsou telefonní a počítačové sítě a zejména celosvětová počítačová síť internet. Po těchto sítích posílají tajná a citlivá data nejen komerční firmy, ale i státy, diplomaté, nebo armády celého světa (bohužel taky teroristické nebo kriminální organizace). V otevřených sítích, jako je internet, je jednoduché jakoukoliv informaci odposlechnout, proto vznikla potřeba šifrovat data a skrýt je tak před nepovolanými osobami.
Kryptografie používaná na internetu je poměrně nová věc, která se rychle rozvíjí. Zvětšováním internetu vznikla potřeba silných šifer, které jsou založeny na matematických principech a jsou závislé na výkonných počítačích. Teprve nedávno rychlost počítačů splnila požadavky šifrovacích metod tak, že je mohl používat každý.
V dnešní době se uživatel počítače a internetu o šifrování často ani nestará, počítače si zprávy mezi sebou šifrují (pokud je to třeba) na pozadí. Pokud v následujících kapitolách budu mluvit o odesilateli a příjemci, můžou to být počítače, například server, který poskytuje klientovi citlivá data.
Šifrujeme tak, aby se útočníkovi nevyplatilo šifru prolomit. Musí platit tato nerovnost:
NÁKLADY > ZISK
Náklady útočníka na dešifrování by měly být větší než zisk, který by útočník měl v případě úspěšného dešifrování.
Data, která chceme zašifrovat, např. e-maily, obrázky, tabulky, jsou v počítači vyjádřena velkými čísly. Šifrovací programy provádějí s těmito čísly složité operace. Rozlišujeme dva typy šifrovacích metod: symetrické a asymetrické.
Symetrické šifrování
Symetrické šifrování je mnohem jednodušší než asymetrické šifrování. Jednak nepotřebuje tak výkonné počítače, jednak je jednodušší jeho princip. Vzniklo mnohem dříve.
U tohoto typu šifrování je potřeba stejný klíč k zašifrování i k dešifrování, což je zároveň jeho největší slabina. Klíč se musí dostat od odesilatele k adresátovi bezpečným kanálem (cestou), aby adresát mohl zprávu dešifrovat. Pokud takový bezpečný kanál existuje, je často jednodušší zprávu nešifrovat a poslat ji rovnou tímto kanálem.
Při symetrickém šifrování používáme stejný klíč k šifrování i k dešifrování
Tento způsob se může použít například tehdy, jestliže se obě strany (odesílatel i adresát) předem dohodly na klíči ještě v době, kdy bezpečný komunikační kanál existoval. Klíč si mohly předat i osobně. Když kanál zanikne, začnou strany komunikovat šifrovaně s předem dohodnutým klíčem.
Kromě problému distribuce klíče má tento typ šifrování další nevýhodu: pokud je účastníků komunikace víc, vzrůstá počet klíčů kvadraticky. Pokud chceme mít pro každou dvojici komunikujících stran jiný klíč, potřebujeme n(n-1)/2 klíčů, kde n je počet účastníků. (Jestliže je počet komunikujících malý, příliš to nevadí.)
Asymetrické šifrování
Asymetrické šifrování řeší problém distribuce klíče k příjemci. Zde, na rozdíl od symetrického šifrování, není potřeba dostat tajný klíč bezpečně k druhé straně. Už z názvu plyne, že se používá jiný klíč k zašifrování a jiný zpátky k dešifrování.
Každý účastník komunikace má dva klíče. První z nich je veřejný, ostatní ho mohou nebo dokonce musejí znát. Druhý je privátní (soukromý). Tato dvojice klíčů má takovou vlastnost, že jedním se zpráva zašifruje a druhým, který k němu patří, se zpráva dešifruje.
Odesilatel tedy zašifruje zprávu veřejným klíčem adresáta. Ten přijme zašifrovanou zprávu a dešifruje ji svým privátním klíčem. Protože je jediný, kdo má tento privátní klíč, zprávu nemůže nikdo cizí přečíst. (Při použití jiného klíče, který nepatří ke klíči, kterým se šifrovalo, dostaneme samozřejmě nesmysl).
Při asymetrickém šifrování používáme dva klíče, které k sobě patří: jedním zprávu zašifrujeme, druhým dešifrujeme.
Šifrovací metoda RSA je zatím jedna z nejrozšířenějších, používá Malou Fermatovu větu a modulární aritmetiku. Modulární aritmetika je část matematiky, která se zabývá zbytky po dělení celých čísel. Síla této šifry je založena na tom, že ještě neznáme rychlý způsob, jak rozložit velká čísla na prvočinitele. Pokud někdo objeví rychlý způsob rozložení velkých čísel na prvočinitele, bude šifra prolomena. Dnes ale ještě není známo, zda takový rychlý způsob vůbec existuje.)
Každý účastník komunikace má jeden privátní a jeden veřejný klíč. celkový počet klíčů je 2n, tedy přímo úměrný počtu účastníků n.
Hybridní šifrování
Asymetrické šifrování má jednu velkou nevýhodu. Je velmi náročné na matematické operace, tedy i na výkon počítače. V praxi se proto používá kombinace symetrického a asymetrického šifrování. Tomuto způsobu se říká hybridní šifrování. Využijeme výhod obou: rychlost symetrického šifrování a „použitelnost" asymetrického šifrování.
Odesilatel zvolí klíč, kterým symetricky zašifruje zprávu. Tento klíč zašifruje veřejným klíčem adresáta a pošle ho spolu se zprávou adresátovi. Adresát tedy dostane asymetricky zašifrovaný klíč a symetricky zašifrovanou zprávu. Klíč dešifruje svým privátním klíčem a použije ho k dešifrování textu. Tím zaniká problém distribuce klíče při symetrickém šifrování a zároveň se celý proces zrychlí. (Asymetrické šifrování je pro dlouhé zprávy pomalé).
Ve skutečnosti je to ještě trošku jinak. Pokud chtějí dva počítače komunikovat přes otevřenou síť, kde je každý může „odposlechnout“, vytvoří relaci. Na začátku relace vygeneruje jeden z nich klíč, zašifruje ho veřejným klíčem druhého počítače a pošle mu ho. Druhý počítač si klíč dešifruje, takže teď už mají oba dva stejný klíč, který kromě nich nikdo jiný nezná. Můžou už tedy používat symetrické šifrování, protože to je daleko rychlejší. Každá jejich další komunikace, která probíhá během relace, je symetricky zašifrovaná.
Pokud chceme používat hybridní šifrování mezi n účastníky, potřebujeme stejně jako u asymetrického šifrování 2n klíčů. Zde je sice ještě navíc potřeba symetrický klíč, ten však při každé relaci jeden z počítačů vygeneruje, takže po skončení relace už není potřeba.
Závěr
Na závěr bych rád popsal některé způsoby útočníků, kterými zašifrovanou zprávu rozluští bez znalosti klíče.
Rozluštění hrubou silou
Někteří útočníci spoléhají na hrubou sílu. Mechanicky zkoušejí všechny klíče a doufají, že se někdy trefí. V praxi to samozřejmě dělají počítače. Doba, kterou k tomu počítač potřebuje, se zdvojnásobí každým bitem klíče navíc. Délka klíče se tedy volí tak, aby luštění „hrubou silou" trvalo tak dlouho, než zpráva ztratí platnost.
Kryptoanalytika
Když je šifrovací metoda nedokonalá, je často rychlejší pro útočníka zkusit najít nějakou slabinu, periodu atd. Tím se zabývá kryptoanalytika. Kryptoanalytici hledají například něco, co se opakuje, nebo nějakou pravděpodobnost výskytu písmen, kterou pak porovnávají s pravděpodobností výskytu písmen v průměrném textu stejného jazyka.
Tyto dvě metody používá k rozluštění podezřelých zpráv i CIA. V Americe bylo dlouho omezení na export šifrovacích programů. Délka klíče byla omezená na 56 bitů, aby Americká rozvědka dokázala dešifrovat co nejvíce zpráv.
Lidské selhání
Většina rozluštěných zpráv je však rozluštěna tak, že útočník získá nebo ukradne klíč. Často využije neopatrnosti vlastníka klíče. Jindy útočníkovi pomůže k získání klíče někdo "zevnitř" za finanční odměnu.