Kryptografie se symetrickým klíčem (neboli symetrické šifrování) je typ šifrovacího schématu, ve kterém se k šifrování i dešifrování zpráv používá stejný klíč. Tento způsob kódování informací se v posledních desetiletích ve velké míře používal k tajné komunikaci v rámci vlád a armád. Dnes se algoritmy se symetrickým klíčem používají v mnoha různých typech počítačových systémů ke zvýšení zabezpečení dat.
Jak funguje symetrické šifrování?
Schémata symetrického šifrování se spoléhají na jediný klíč sdílený mezi dvěma nebo více uživateli. K šifrování i dešifrování takzvaného nešifrovaného textu (zprávy nebo dat s potřebou šifrování) se používá stejný klíč. Proces šifrování spočívá v prohnání nešifrovaného textu (vstupu) šifrovacím algoritmem (šifrou), který následně vygeneruje šifrovaný text (výstup).
Pokud je šifrovací schéma dostatečně silné, jediným způsobem, jak může někdo informace obsažené v šifrovaném textu přečíst nebo k nim získat přístup, je dešifrování pomocí příslušného klíče. Proces dešifrování je v podstatě převod šifrovaného textu zpět na nešifrovaný text.
Bezpečnost systému symetrického šifrování stanovuje to, jak obtížné je příslušný klíč náhodně uhodnout za použití hrubé síly. Například uhodnutí 128bitovového klíče pomocí běžného počítačového hardwaru by trvalo miliardy let. Čím delší šifrovací klíč je, tím obtížnější je ho prolomit. Klíče o délce 256 bitů jsou obecně považovány za vysoce bezpečné a teoreticky by měly být odolné i proti útokům hrubou silou prováděným kvantovými počítači.
Dvě nejběžnější schémata symetrického šifrování, která se dnes používají, vychází z blokových a proudových šifer. Blokové šifry seskupují data do bloků s předem stanovenou velikostí, kdy je každý blok zašifrován pomocí příslušného klíče a šifrovacího algoritmu (například 128bitový nešifrovaný text se zašifruje do 128bitového šifrovaného textu). Proudové šifry zase data nešifrovaného textu nešifrují po blocích, ale po 1bitových krocích (1bitový nešifrovaný text se zašifruje do 1bitového šifrovaného textu).
Symetrické vs. asymetrické šifrování
Symetrické šifrování je v moderních počítačových systémech jednou ze dvou hlavních metod šifrování dat. Tou druhou je asymetrické šifrování, které se využívá především v kryptografii s veřejným klíčem. Hlavní rozdíl mezi těmito metodami spočívá v tom, že asymetrické systémy používají místo jednoho klíče dva. Jeden z klíčů je možné sdílet veřejně (veřejný klíč) a druhý je nutné držet v tajnosti (soukromý klíč).
Použití dvou klíčů místo jednoho znamená řadu funkčních rozdílů mezi symetrickým a asymetrickým šifrováním. Asymetrické algoritmy jsou složitější a pomalejší než symetrické. Vzhledem k tomu, že veřejné a soukromé klíče používané při asymetrickém šifrování mají do určité míry matematický vztah, musí být podstatně delší, aby dokázaly poskytnout podobnou úroveň zabezpečení jako kratší symetrické klíče.
Použití v moderních počítačových systémech
Algoritmy symetrického šifrování se v mnoha moderních počítačových systémech používají ke zvýšování bezpečnosti dat a soukromí uživatelů. Jedním z hlavních příkladů symetrického šifrování je šifra AES (Advanced Encryption Standard), která je nejvíce rozšířená mezi aplikacemi pro bezpečné zasílání zpráv a v cloudových úložištích.
Kromě softwarových implementací je možné AES implementovat také přímo do počítačového hardwaru. Hardwarová schémata symetrického šifrování obvykle používají AES 256, což je specifická varianta standardu AES s klíčem o délce 256 bitů.
Chceme také připomenout, že blockchain Bitcoinu nevyužívá šifrování, jak se mnozí domnívají. Místo něj používá specifický druh algoritmu digitálních podpisů – ECDSA (Elliptic Curve Digital Signature Algorithm), který digitální podpisy generuje bez použití šifrování.
Lidé se často mylně domnívají, že algoritmus ECDSA vychází z kryptografie eliptických křivek, která má více využití, včetně šifrování, digitálních podpisů a pseudonáhodných generátorů. Samotný algoritmus ECDSA ale není možné k šifrování vůbec použít.
Výhody a nevýhody
Symetrické algoritmy poskytují poměrně vysokou úroveň zabezpečení a zároveň umožňují rychlé šifrování a dešifrování zpráv. Relativní jednoduchost symetrických systémů je zároveň logistickou výhodou, protože vyžadují méně výpočetního výkonu než systémy asymetrické. Bezpečnost symetrického šifrování je navíc možné snadno zvýšit prodloužením délky klíče. S každým bitem přidaným k délce symetrického klíče se obtížnost prolomení šifry hrubou silou exponenciálně zvyšuje.
Symetrické šifrování sice nabízí celou řadu výhod, ale souvisí s ním jedna zásadní nevýhoda: inherentní problém přenosu klíčů používaných k šifrování a dešifrování dat. V případě sdílení klíčů prostřednictvím nezabezpečeného spojení jsou takové klíče náchylné k zachycení třetími stranami s nekalými úmysly. Pokud přístup k určitému symetrickému klíči získá neoprávněný uživatel, je ohrožena bezpečnost všech dat šifrovaných daným klíčem. Mnoho webových protokolů tento problém řeší kombinací symetrického a asymetrického šifrování, které slouží k vytváření bezpečných spojení. Mezi nejznámější příklady takového hybridního systému patří kryptografický protokol TLS (Transport Layer Security), který zabezpečuje velkou část moderního internetu.
Upozorňujeme, že při nesprávné implementaci jsou zranitelné všechny typy počítačového šifrování. Dostatečně dlouhý klíč může sice matematicky znemožnit útok hrubou silou, ale slabá místa, která otevírají cestu ke kybernetickým útokům, často vznikají kvůli chybám programátorů při implementaci.
Závěrem
Symetrické šifrování se díky své relativně vysoké rychlosti, jednoduchosti a bezpečnosti hojně využívá v různých oblastech – od zabezpečení internetového provozu až po ochranu dat uložených na cloudových serverech. Schémata symetrického šifrování zůstávají kritickou součástí moderního počítačového zabezpečení, i když se kvůli problému s bezpečným přenosem klíčů často kombinují s asymetrickým šifrováním.