Kryptografie: Šifrování, Hashování a Obfuskace
Když přijde na ochranu dat před jejich zneužitím, často se v praxi (nesprávně) prolínají a zaměňují pojmy šifrování, hashování a obfuskace. Přestože všechny formáty mění čitelný text na zdánlivě nečitelný, jejich účel i matematické vlastnosti jsou naprosto odlišné.
1. Hashování (Hashing)
Hashování je proces jednosměrný. Vezmete jakkoliv velký vstup (slovo, text nebo dokonce celý film) a matematická funkce (př. SHA-256) z něj udělá náhodný shluk znaků o předem pevné délce.
Ze správného hashe už matematicky nelze nikdy odvodit původní text. Pokud znáte výsledek 9f86d081..., nepoznáte, že vstupem bylo slovo “test”.
- Využití: Kontrola integrity stažených souborů, bezpečné ukládání uživatelských hesel do databází webů (když útočník ukradne databázi, získá jen zmatečné hashe, nikoliv hesla).
2. Obfuskace (Zamlžení)
Obfuskace vůbec neslouží k opravdovému zabezpečení před ukradením. Její podstatou je ztížit čitelnost a porozumění dat lidským okem. (Více detailů rozebíráme v samostatném článku o Obfuskaci)
Například když se zdrojový kód zkomprimuje a zpřehází tak, aby programování fungovalo, ale kód byl pro cizího programátora nečitelný a nezkopírovatelný (“špagetový kód”). Algoritmus je reverzibilní a s trochou námahy ho lze “rozluštit”.
- Využití: Ochrana autorských práv v programování, skrytí škodlivého kódu útočníků před antivirem.
3. Šifrování (Encryption)
Na rozdíl od hashování je šifrování z podstaty úmyslně obousměrná (reverzibilní) akce, chráněná specifickým klíčem. Záměrem je text uzamknout a poslat někomu, kdo má správný klíč k jeho okamžitému odemknutí.
Šifrování dělíme na dvě stěžejní kategorie:
A) Symetrické šifrování
Při symetrickém šifrování obě strany (odesílatel i příjemce) disponují jedním naprosto stejným (tajným) klíčem. Tímto klíčem zprávu jeden člověk zašifruje a druhý člověk si ji tím stejným heslem dešifruje.
- Výhody: Je extrémně rychlé a nestojí moc výpočetního výkonu.
- Nevýhody: Zásadní problém leží v tom, jak bezpečně předat identický klíč druhé straně přes globální internet tak, aby ho nikdo po cestě neodposlechl.
Příklady symetrického šifrování:
- Caesarova šifra (např. ROT13): Historicky nejznámější, sice jednoduchá, avšak principielně ukázková symetrická šifra (kdo ví o kolik znaků se text v abecedě posunul vpřed, ten ví i o kolik ho má posunout při dešifraci vzad).
- AES (Advanced Encryption Standard): Odborný zlatý standard dnešní doby. AES-256 je z aktuálního pohledu prakticky neprolomitelná šifra a využívá se všude, od zabezpečení ZIP archivů, přes WiFi WPA2/WPA3 až po státní šifrování pevných disků.
- DES / 3DES (Data Encryption Standard): Starý překonaný standard, který byl na konci 90. let úspěšně prolomen z důvodu příliš krátkého klíče. Vytlačilo jej dnešní AES.
B) Asymetrické šifrování
Inovativní přístup, který využívá pár dvou matematicky provázaných klíčů. Jeden klíč je Veřejný (Public) a druhý je Soukromý (Private).
Váš veřejný klíč si může stáhnout z internetu doslova úplně kdokoliv. Tímto veřejným klíčem vám pak cizí autor zamkne zprávu. Od této vteřiny už zprávu daným klíčem nemůže nikdo odemknout, a to ani ten samotný autor. Odemyká ji až automaticky váš Soukromý klíč, který nikdy neopustil váš počítač (nikdy neputoval přes nezabezpečenou síť) a bezpečně k němu máte přístup pouze vy.
- Výhody: Geniálně řeší bezpečnost komunikace na internetu doslova “na slepo”, kdy spolu přes síť mohou komunikovat dva neznáme subjekty.
- Nevýhody: Je procesorově silně náročné a výrazně pomalejší než symetrické metody.
Zástupci asymetrického šifrování:
- RSA (Rivest–Shamir–Adleman): Pionýr a nejpopulárnější asymetrický algoritmus vůbec. Spoléhá na extrémní matematickou obtížnost rozkladu (faktoringu) součinu dvou obrovských prvočísel. Vynález RSA změnil internet.
- ECC (Elliptic Curve Cryptography): Novodobá kryptografie opírající se o rovnice bodů na eliptických křivkách. Narozdíl od RSA dokáže dosáhnout stejně silné bezpečnosti, avšak při mnohem kratším klíči. Díky tomu je drtivě efektivnější pro baterie na mobilních zařízeních nebo na čipových kartách, a stala se pomalu standardem moderního věku.
- PGP / GPG (Pretty Good Privacy): Typický softwarový balíček standardů, se kterým se setkáte u zašifrovávání koncových E-mailů (tzv. End-to-End E-mail šifrace) a ověřování identity odesílatelů.
[!TIP] Moderní internet (např. připojení HTTPS/TLS ve vašem webovém prohlížeči) pro dosažení absolutní rychlosti a nezlomitelné bezpečnosti využívá takzvaný hybridní přístup. Prohlížeče si nejprve asymetricky navážou bezpečné spojení, díky němuž si šifrovaně naslepo pošlou dočasně vygenerovaný nový klíč pro symetrické šifrování. Po zbytek vašeho spojení s webem (tedy stahování velkých obrázků apod.) už z důvodu nejvyšší rychlosti plynule používají výhradně tento nově domluvený rychlý symetrický klíč.