Než se pustíme do metod, musíme si ujasnit terminologii:
Kryptografie: Věda o metodách utajování obsahu zpráv (psaní šifer).
Kryptanalýza: Obor zabývající se prolamováním šifer.
Otevřený text: Původní zpráva, kterou si může kdokoli přečíst.
Šifrový text: Zpráva po procesu šifrování (nečitelný shluk znaků).
Klíč: Parametr (číslo, heslo), který určuje, jak přesně se má text změnit.
Historické šifry jsou většinou založeny na dvou principech: substituci (nahrazení znaku jiným) a transpozici (přeházení pořadí znaků).
Každé písmeno v textu je posunuto v abecedě o pevný počet míst.
Příklad: Při posunu o 3 se z „A“ stane „D“, z „B“ se stane „E“.
Slabina: Velmi snadno se prolomí pomocí frekvenční analýzy (v každém jazyce se některá písmena vyskytují častěji, např. v češtině písmeno „E“).
Využívá heslo, které určuje různé posuny pro každé písmeno zprávy. Je mnohem odolnější než Caesarova šifra.
Jediná teoreticky neprolomitelná šifra. Klíč musí být stejně dlouhý jako zpráva, musí být náhodný a použitý jen jednou.
Při symetrickém šifrování se pro šifrování i dešifrování používá tentýž klíč.
Výhoda: Je velmi rychlé.
Nevýhoda: Musíte klíč nějak bezpečně doručit druhé straně. Pokud ho někdo cestou zachytí, může číst všechny zprávy.
Příklad: AES (Advanced Encryption Standard) – dnes standard pro zabezpečení disků, Wi-Fi (WPA2/3) nebo souborů.
Revoluční koncept, který vyřešil problém s doručováním klíčů. Každý uživatel má dvojici klíčů:
Veřejný klíč (Public Key): Můžete ho dát komukoli. Slouží k zašifrování zprávy pro vás.
Soukromý klíč (Private Key): Musíte ho mít v tajnosti. Slouží k dešifrování zpráv, které byly zašifrovány vaším veřejným klíčem.
Metafora: Veřejný klíč je jako otevřený visací zámek, který rozdáváte všem. Kdo vám chce poslat zprávu, dá ji do krabičky a zacvakne váš zámek. Otevřít ho ale můžete jen vy, protože jen vy máte ten jediný správný klíč.
Příklad: Algoritmus RSA.
Využití: HTTPS (zámeček v prohlížeči), digitální podpis, kryptoměny.
Hašování není šifrování v pravém slova smyslu, protože nejde vrátit zpět. Hašovací funkce vezme libovolně velká data a vytvoří z nich krátký unikátní „otisk“ (např. 64 znaků).
Vlastnosti: Malá změna ve vstupu (třeba jedna tečka) totálně změní výsledný hash.
Využití:
Ukládání hesel: Server nezná vaše heslo, zná jen jeho hash. Při přihlášení porovná hashe.
Kontrola integrity: Ověření, zda se soubor při stahování nepoškodil.
Příklady: SHA-256, MD5 (dnes již nespolehlivý).
Kombinuje asymetrické šifrování a hašování. Zaručuje:
Identitu: Že zprávu opravdu poslal ten, kdo tvrdí.
Integritu: Že zpráva nebyla cestou změněna.