Kryptografie
Kryptografie je disciplína, která navrhuje matematické a systémové prostředky pro ochranu informací. Primárními cíli jsou důvěrnost (utajení obsahu), integrita (detekce změn), autenticita (ověření původu) a nepopiratelnost (důkaz o provedené akci). Základními operacemi jsou šifrování (převod čitelné zprávy na šifrový text) a dešifrování (opačný proces), přičemž klíčem k bezpečnosti je správná správa a volba klíčů.
Terminologie: zpráva, šifrový text, klíč a algoritmus
- Otevřený text (plaintext): původní data před šifrováním.
- Šifrový text (ciphertext): výstup šifrování, pokud možno nerozlišitelný od náhodného šumu.
- Šifrovací algoritmus (cipher): deterministicky definované funkce pro šifrování/dešifrování.
- Klíč: tajná část (u symetrické kryptografie) nebo neveřejná část páru (u asymetrické kryptografie), která parametrizuje algoritmus.
- Bezpečnostní parametr λ: obvykle bitová délka klíče a kryptografických hodnot.
Symetrická kryptografie: jeden klíč pro šifrování i dešifrování
Symetrické šifry používají stejný tajný klíč pro obě operace. Dominantní jsou blokové šifry (např. AES) a proudové šifry (např. ChaCha20). Výhodou je vysoká rychlost a malá režie; nevýhodou je náročná distribuce klíčů mezi mnoha stranami.
Blokové šifry a režimy provozu
Bloková šifra transformuje blok bitů pevné délky (např. 128 bitů u AES). Protože zprávy mívají libovolnou délku, používají se režimy provozu (modes of operation):
- CBC (Cipher Block Chaining): vyžaduje náhodný inicializační vektor (IV); nezajišťuje integritu.
- CTR (Counter): mění blokovou šifru na proudovou; nezajišťuje integritu; platí přísné pravidlo nikdy znovu nepoužívat nonce.
- GCM (Galois/Counter Mode): režim AEAD, poskytuje šifrování i autentizaci; je citlivý na opakování nonce.
- OCB, CCM: další režimy AEAD kombinující důvěrnost a integritu.
Moderní praxe upřednostňuje AEAD (Authenticated Encryption with Associated Data) – typicky AES-GCM nebo ChaCha20-Poly1305.
Proudové šifry
Proudová šifra generuje klíčový proud, který se kombinuje s otevřeným textem (obvykle operací XOR). Bezpečnost závisí na nepředvídatelnosti proudu a jedinečnosti nonce. ChaCha20 je oblíbená díky rychlosti na procesorech bez AES-NI a odolnosti vůči některým postranním kanálům.
Integrita a autentizace: MAC a AEAD
MAC (Message Authentication Code) ověřuje původ a neporušenost dat pomocí sdíleného symetrického klíče. Příklady: HMAC (založený na hashovací funkci), GMAC (založený na GCM). Režimy AEAD spojují šifrování a MAC do jednoho celku a umožňují autentizovat i nešifrovaná metadata (Associated Data, např. hlavičky protokolu).
Kryptografické hashovací funkce a související primitiva
Hashovací funkce mapují zprávy libovolné délky na výstup pevné délky a musí splňovat odolnost vůči kolizím, odolnost vůči nalezení předobrazu a odolnost vůči nalezení druhého předobrazu. Moderní volby: SHA-256/512, SHA-3 (Keccak), BLAKE2/3. Z hashů se odvozují KDF (funkce pro odvozování klíčů), např. HKDF, a funkce pro hashování hesel (Argon2, scrypt, bcrypt), jejichž paměťová náročnost pomáhá odolávat útokům pomocí GPU/ASIC.
Asymetrická kryptografie: pár klíčů a veřejná infrastruktura
Asymetrická kryptografie používá veřejný klíč k šifrování a ověřování a soukromý klíč k dešifrování a podepisování. Umožňuje bezpečnou výměnu klíčů bez předchozího sdílení tajemství a vytváření digitálních podpisů. Hlavní rodiny: RSA, Diffie–Hellman (DH), eliptické křivky (ECC: ECDH, ECDSA, EdDSA).
RSA: principy a praxe
RSA se opírá o obtížnost faktorizace velkých čísel. Pro šifrování a podpisy se dnes doporučuje používat schémata s OAEP (pro šifrování) a PSS (pro podpisy). Velikost modulu 2048–3072 bitů (případně více podle požadovaného časového horizontu). Kritická je bezpečná generace prvočísel a ochrana před postranními kanály.
Diffie–Hellman a eliptické křivky
DH umožňuje dvěma stranám dohodnout se na sdíleném tajemství přes nezabezpečený kanál. ECDH na eliptických křivkách poskytuje při stejné úrovni bezpečnosti kratší klíče. Pro podpisy se široce používají ECDSA a EdDSA (Ed25519). Výhody ECC: menší klíče, rychlejší výpočty a nižší nároky na přenos; vyžaduje však pečlivou implementaci a volbu křivky (Curve25519, P-256 aj.).
Protokoly: šifrování na úrovni kanálu a aplikace
- TLS 1.3: dopředná bezpečnost (Forward Secrecy) díky (EC)DHE, šifry AEAD (AES-GCM, ChaCha20-Poly1305), zjednodušený handshake.
- SSH: bezpečný vzdálený přístup, výměna klíčů (ECDH), AEAD, autentizace pomocí klíčů.
- PGP/OpenPGP: koncové šifrování a podpisy e-mailů; správa veřejných klíčů mimo centralizovanou PKI.
- Signal Double Ratchet: kombinace asymetrické a symetrické kryptografie s průběžnou obměnou klíčů (zabezpečení po kompromitaci, dopředná bezpečnost).
PKI a digitální certifikáty
Infrastruktura veřejných klíčů (PKI) propojuje identity s veřejným klíčem subjektu prostřednictvím certifikátů podepsaných certifikační autoritou (CA). Zásadní prvky: kořenové CA, mezilehlé CA, CRL/OCSP pro revokaci, zásady (CPS), ověření domény (DV), organizace (OV), rozšířená validace (EV). Bezpečnost PKI stojí na důvěryhodných CA, bezpečném generování klíčů a ochraně soukromých klíčů (HSM).
Modely hrozeb a útočné scénáře
- Útok s volbou otevřeného textu/šifrového textu (CPA/CCA): vyžaduje schémata odolná i při interakci s útočníkem (bezpečnost CCA2, např. RSA-OAEP, AEAD).
- Man-in-the-Middle (MitM): zmírňuje se ověřováním klíčů/identit (certifikáty, otisky klíčů), PFS.
- Postranní kanály: časování, analýza spotřeby energie/elektromagnetického vyzařování; nutné konstantní časování, maskování, zaslepení.
- Opakované použití nonce/IV: u CTR/GCM může mít fatální následky; je nutné vyžadovat jedinečné nonce, případně použít deterministické AEAD s pečlivě navrženou konstrukcí.
- Slabá entropie: nekvalitní RNG ohrožuje všechna kryptografická primitiva; nutný je kryptograficky bezpečný generátor pseudonáhodných čísel (CSPRNG) s počátečním stavem založeným na dostatečné entropii.
Generování klíčů, entropie a CSPRNG
Bezpečnost začíná kvalitou náhodných dat. CSPRNG (např. /dev/urandom, moderní knihovny OS) musí být správně inicializován ze zdrojů entropie (klávesnice, hardwarový TRNG, časování systémů). Klíče se odvozují z hlavního tajemství pomocí HKDF a pravidelně se obměňují podle stanovených zásad (rotace klíčů). Nedostatečná entropie při spuštění systému je častým rizikem vestavěných zařízení.
Správa klíčů: životní cyklus a úložiště
Životní cyklus klíče zahrnuje generování, distribuci, použití, obměnu, archivaci a skartaci. Doporučené postupy:
- Oddělení rolí a přístupů (princip nejmenších oprávnění).
- Bezpečná distribuce (u asymetrické kryptografie veřejný klíč prostřednictvím PKI, u symetrické kryptografie s využitím (EC)DH).
- Hardwarové úložiště (HSM, TPM, Secure Enclave) pro soukromé klíče a operace prováděné v chráněném prostředí.
- Obměna a expirace podle zásad a kryptoperiod, s auditní stopou.
- Zálohování a úschova šifrovaných klíčů, dělení tajemství (Shamir) pro obnovu po havárii.
Konstrukce protokolů: formální bezpečnost a kompozice
Bezpečná schémata definují přesné bezpečnostní hry a požadavky (IND-CPA, IND-CCA, EUF-CMA pro podpisy). Při skládání protokolů je nutné zohlednit domény nonce, vazbu klíčů na kontext (key binding), oddělení domén a hashování s ohledem na kontext. Upřednostňujte osvědčené knihovny a standardy (TLS 1.3, Noise, libsodium) před vlastním návrhem.
Autentizace a digitální podpisy
Podpisová schémata (RSA-PSS, ECDSA, EdDSA) zajišťují nepopiratelnost a integritu; ověřovací klíč je veřejný. V praxi se podpisy vážou k identitě prostřednictvím certifikátů a časových razítek (TSA). U dokumentů a kanálů pro aktualizace softwaru je klíčová správná politika správy klíčů a jejich revokace.
Šifrování na úrovni dat vs. transportu
Transportní šifrování (TLS) chrání data mezi uzly, ale koncové body vidí otevřený text. Koncové šifrování (Signal, PGP) chrání data i před zprostředkovateli. Šifrování na úrovni polí/databází (TDE, FPE, DAE) řeší specifické regulatorní a provozní scénáře; je však třeba věnovat pozornost modelům hrozeb a úniku metadat.
Speciální techniky: perfektní utajení, ZKP a homomorfie
- Perfektní utajení: jednorázová šifra (One-Time Pad) je teoreticky dokonale bezpečná, ale nepraktická kvůli distribuci klíče.
- Důkazy s nulovou znalostí (ZKP): prokazují pravdivost tvrzení bez vyzrazení tajemství (např. Schnorr, zk-SNARKs) – využívají se v autentizaci a ekosystémech blockchainu.
- Homomorfní šifrování: umožňuje výpočty nad šifrovanými daty; v praxi je omezené kvůli výkonnosti, ale má potenciál pro práci s citlivými daty.
- SMPC (bezpečný výpočet více stran): více stran provádí výpočty nad svými vstupy, aniž by je vzájemně odhalily.
Kvantová kryptografie a postkvantové algoritmy
Široce používané asymetrické algoritmy (RSA, ECC) jsou ohroženy Shorovým algoritmem na dostatečně výkonném kvantovém počítači. Postkvantové přístupy (PQC) (mřížkové, kódové a hashovací podpisy) se zavádějí postupně; přechod bude vyžadovat hybridní režimy (PQC + klasická asymetrická kryptografie), inventarizaci kryptografických algoritmů a klíčů a protokoly s dlouhodobou bezpečností.
Implementační zásady a bezpečnostní hygiena
- Upřednostňujte AEAD (AES-GCM, ChaCha20-Poly1305) a protokoly s dopřednou bezpečností (Forward Secrecy).
- Zajistěte jedinečné nonce pro GCM/CTR; u EdDSA/ECDSA dbejte na bezpečné náhodné nebo deterministické k.
- Používejte hashování hesel (Argon2) a sůl (salt); nikdy neukládejte hesla v otevřené podobě.
- Chraňte soukromé klíče v HSM/TPM, oddělte prostředí (dev/stage/prod) a auditujte přístupy.
- Provádějte rotaci klíčů a udržujte inventář algoritmů a verzí (kryptografická agilita).
- Vyvarujte se přístupu „vlastní kryptografie“ – spoléhejte na knihovny s auditovanou implementací.
- Myslete na únik metadat (velikost, časování, vzorce provozu); v případě potřeby používejte doplňování dat a tvarování provozu.
Typické chyby a jak se jim vyhnout
- Opakované použití IV/nonce v GCM/CTR → katastrofální ztráta důvěrnosti i integrity.
- Nevhodný režim (ECB) → zachování struktury v obrázcích a blocích.
- Chybějící autentizace → záměna či úprava dat a útoky padding-oracle.
- Slabý RNG → předvídatelné klíče a nonce; zajistěte CSPRNG a kontroly stavu TRNG.
- Nedostatečná validace certifikátů → MitM (ignorování názvu hostitele/řetězce/OCSP).
- Neřešené postranní kanály → používejte konstantní časování, zaslepení a fyzickou ochranu.
Příklad pracovního toku: bezpečná komunikace klient–server
- Klient a server v rámci TLS 1.3 vyjednají sadu (ECDHE + AES-GCM/ChaCha20-Poly1305) a ověří certifikát serveru.
- Výměna dočasných klíčů ECDHE zajistí dopřednou bezpečnost.
- Odvození klíčů pomocí HKDF s kontextem (hash přepisu komunikace) – různé klíče pro jednotlivé směry a vrstvy.
- Data se přenášejí v rámcích AEAD; integrita a autenticita se ověřují u každého záznamu.
- Obměna klíčů po dosažení limitu objemu/času (opětovná výměna klíčů) a standardní revokace certifikátů.
Regulatorní a provozní kontext
Organizace musí sladit kryptografii s regulacemi (GDPR, eIDAS, HIPAA aj.), zásadami uchovávání a přístupů, exportními omezeními a požadavky na audit. Důležitá je dokumentace kryptografické konfigurace, hrozeb a postupů obnovy (BCP/DRP).
Závěr
Základy kryptografie stojí na správné volbě algoritmů, robustní správě klíčů a důsledné implementaci. Kombinace symetrických šifer AEAD, spolehlivých hashovacích funkcí a moderní asymetrické kryptografie (ECDH/EdDSA) v osvědčených protokolech (TLS 1.3, Noise) poskytuje vyvážený poměr bezpečnosti a výkonu. Klíčové je myslet na provozní realitu: kvalitu náhodných dat, správu klíčů, postranní kanály, obměnu klíčů a připravenost na postkvantový svět. Teprve poté šifrování a dešifrování splní svůj účel – ochranu dat a důvěry v digitálním prostředí.
