Internet: šifrování a veřejné klíče
Aho. jmenuji se Mia Gil-Epner, studuji počítačové vědy v magisterském studiu na Kalifornské Univerzitě v Berkeley
a pracuji pro americké Ministerstvo obrany, kde mám na starosti utajování informací. Internet je
otevřený a veřejný systém. Informace zasíláme a přijímáme po společných drátech a spojeních. Ale
ačkoli je to otevřený systém, i tak sdílíme spoustu soukromých údajů. Takové věci, jako
čísla kreditních karet, bankovní informace, hesla a e-maily. Takže jak jsou všechny ty
soukromé údaje utajovány? Data jakéhokoli druhu lze utajovat procesem, kterému říkáme
šifrování, to jest pomícháním nebo změnou té zprávy tak, aby byl původní text skryt. Dešifrování
je naopak proces zrušení toho pomíchání, aby byl text znovu čitelný. To je jednoduchá
myšlenka a lidé to tak dělali po staletí. Jednou z prvních dobře známých šifrovacích metod
byla Cesarova šifra. Byla pojmenována po římském generálovi Juliovi Cesarovi,
který své vojenské příkazy šifroval, aby si jeho zprávy nemohli přečíst nepřátelé,
kdyby se jim podařilo je zachytit. Cesarova šifra je algoritmus, který nahradí každé
písmeno původní zprávy písmenem, které je od něj o určitý počet kroků
dále ve směru abecedy. Je-li toto číslo něčím, co zná jen odesílatel a příjemce, pak se nazývá
klíč. Umožňuje čtenáři rozluštit tu skrytou zprávu. Například jestliže Vaše původní
zpráva zní „HELLO“, pak zpráva zašifrovaná pomocí algoritmu Cesarovy šifry s klíčem 5
by byla taková: ... K dešifrování takové zprávy by příjemce musel prostě použít klíč k obrácení
tohoto procesu. Avšak s Cesarovou šifrou je velký problém, zašifrovanou zprávu může každý
snadno rozluštit nebo prolomit tak, že vyzkouší všechny možné klíče. A v anglické abecedě je jen
26 písmen, takže k dešifrování zprávy by Vám stačilo vyzkoušet ne více než 26 klíčů.
Přitom vyzkoušet 26 možných klíčů není velmi nesnadné, trvalo by to nanejvýš hodinu nebo
dvě. Tak to udělejme těžší, namísto posouvání každého písmene o stejnou vzdálenost v abecedě
posouvejme každé písmeno o jinou vzdálenost. V tomto příkladu desetimístné číslo ukazuje, o
kolik bude změněno každé následné písmeno, když bude kódována delší zpráva. Uhodnout
tento klíč by bylo opravdu náročné Při použití desetimístného šifrovacího klíče by mohlo být
deset miliard možných řešení klíče. Je zjevné, že to je více, než co by mohl vyřešit člověk. Trvalo
by to celá staletí. Ale průměrnému dnešnímu počítači by k vyzkoušení všech deseti miliard možností stačilo
jen několik sekund. Takže jak můžete v moderní době, kdy jsou zločinci vybaveni ne tužkami, ale
počítači, můžete šifrovat zprávy tak bezpečně, aby byly obtížně rozluštitelné? Přitom „obtížně“ znamená,
že existuje příliš mnoho možností na to, aby se to dalo vyřešit za rozumnou dobu. Dnešní zabezpečené
komunikace jsou šifrovány pomocí 256-bitových klíčů. To znamená, že počítač zločince, který
zachycuje Vaše zprávy, by musel zkoušet příliš mnoho možností... dokud by neodhalil klíč
a nerozluštil by zprávu. I kdybyste měli 100000 superpočítačů a každý z nich by byl schopen
zkoušet milion miliard klíčů za sekundu, trvalo by biliony bilionů let, než by byly vyzkoušeny
všechny možnosti, jen aby byla rozluštěna jedna zpráva zašifrovaná 256-bitovým kódováním.
Samozřejmě, počítačové čipy jsou přibližně každým rokem dvakrát tak rychlé a o polovinu
menší. Pokud bude tato tento exponenciální míra nárůstu pokračovat, dnes nemožné
problémy budou během několika století řešitelné a 256 bitů nebude stačit k zabezpečení. Ve skutečnosti
jsme už teď byli nuceni zvýšit standardní délku šifrovacího klíče tak, aby odpovídala rychlosti
počítačů. To dobré na tom je, že při použití delšího klíče nebude šifrování zpráv podstatně obtížnější,
avšak exponenciálně se bude zvyšovat počet pokusů o uhodnutí potřebných k prolomení šifry.
Když budou odesílatel a příjemce sdílet stejný klíč k zašifrování a dešifrování zprávy, nazývá se to
symetrické šifrování. Při symetrickém šifrování, jako je například Cesarova šifra, se na tajném klíči
musejí předem v soukromí dohodnout dva lidé. Takže je to vynikající pro lidi, ale internet je
otevřený a veřejný, takže je nemožné, aby se dva počítače „sešly“ a domluvily se na tajném
klíči. Namísto toho počítače využívají asymetrické šifrovací klíče, tedy veřejný klíč, který si lze
vyměnit s kýmkoli, a soukromý klíč, který se nesdílí. Veřejný klíč se použije k zašifrování
dat a použít k vytvoření šifrované zprávy je může každý, ale toto tajemství může dešifrovat
jen počítač s přístupem k tomu soukromému klíči. Způsob, jakým tohle funguje, je založen na
matematice, kterou se v tuto chvíli nebudeme zabývat. Představte si to takto: myslete si, že
máte privátní poštovní schránku, kam může uložit poštu kdokoli, ale potřebuje k tomu klíč.
Vy můžete vyrobit mnoho kopií takového ukládacího klíče a jednu zaslat svému příteli, nebo některou
dokonce zpřístupnit veřejnosti. Váš přítel nebo i někdo cizí pak může takový veřejný klíč používat ke
zpřístupnění štěrbiny ve schránce a vhození zprávy. Otevřít tu schránku a získat přístup ke
zprávám, které jste dostali, však můžete jen Vy se svým soukromým klíčem. A svému příteli můžete
poslat zabezpečenou zprávu použitím veřejného klíče k ukládání do jeho schránky. Tak si mohou lidé vyměňovat
zabezpečené zprávy, aniž by se někdy museli domlouvat na soukromém klíči. Kryptografie veřejných klíčů je
základem veškerého zabezpečeného předávání zpráv na otevřeném Internetu. Včetně protokolů zabezpečení
zvaných SSL a TLS, které nás chrání, když procházíme web. Váš počítač to dnes používá
pokaždé, když vidíte malý zámek nebo písmena https v adresním řádku svého prohlížeče.
To znamená, že Váš počítač využívá šifrování veřejným klíčem k zabezpečené výměně dat s webovou stránkou,
na které se nacházíte. Vzhledem k tomu, že na internet přichází čím dál tím více lidí, bude přenášeno
čím dál tím vice soukromých údajů, a potřeba zabezpečení těchto údajů bude nabývat na významu.
Jak se počítače postupně čím dál tím více zrychlují, budeme muset vyvinout nové způsoby, jak zajistit, aby
šifrování bylo příliš těžko prolomitelné počítači. To dělám já ve své práci. A je to práce, která se stále mění.