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 šifrovaný 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á (symetrie) nebo neveřejná část páru (asymetrie), 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): ze blokové šifry dělá proudovou; žádná integrita; přísné pravidlo nikdy nerecyklovat nonce.
- GCM (Galois/Counter Mode): AEAD režim, poskytuje šifrování i autentizaci; citlivý na opakování nonce.
- OCB, CCM: další AEAD režimy s kombinací důvěrnosti a integrity.
Moderní praxe preferuje 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 XOR). Bezpečnost závisí na nepředvídatelnosti proudu a jedinečnosti nonce. ChaCha20 je populární díky rychlosti na CPU 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 za použití sdíleného symetrického klíče. Příklady: HMAC (na bázi hashovací funkce), GMAC (z GCM). AEAD režimy spojují šifrování a MAC v jeden celek a umožňují autentizovat i nešifrovaná metadata (Associated Data, např. hlavičky protokolu).
Kryptografické hašovací funkce a související primitiva
Hašovací funkce mapují zprávy libovolné délky na pevnou délku a mají splňovat kolizní odolnost, odolnost preimage a druhé preimage. Moderní volby: SHA-256/512, SHA-3 (Keccak), BLAKE2/3. Z hashů se odvozují KDF (Key Derivation Functions), např. HKDF pro odvozování klíčů, a password hashing funkce (Argon2, scrypt, bcrypt) s paměťovou náročností proti GPU/ASIC útokům.
Asymetrická kryptografie: pár klíčů a veřejná infrastruktura
Asymetrie používá veřejný klíč pro šifrování/ověření a soukromý klíč pro dešifrování/podepsání. Umožňuje bezpečnou výměnu klíčů bez předchozího sdílení tajemství a digitální podpisy. Hlavní rodiny: RSA, Diffie–Hellman (DH), Eliptické křivky (ECC: ECDH, ECDSA, EdDSA).
RSA: principy a praxe
RSA spoléhá na obtížnost faktorizace velkých čísel. Pro šifrování a podpisy se dnes doporučuje raději používat schémata s OAEP (pro šifrování) a PSS (pro podpisy). Velikost modulů 2048–3072 bitů (či více dle požadované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 sdílené tajemství po nezabezpečeném kanálu. ECDH na eliptických křivkách poskytuje kratší klíče při stejné bezpečnosti. Pro podpisy se široce používají ECDSA a EdDSA (Ed25519). Výhody ECC: menší klíče, rychlejší výpočty, méně přenosové režie; vyžadují 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, AEAD šifry (AES-GCM, ChaCha20-Poly1305), zjednodušený handshake.
- SSH: bezpečný vzdálený přístup, výměna klíčů (ECDH), AEAD, autentizace klíči.
- PGP/OpenPGP: koncové šifrování a podpisy e-mailů; správa veřejných klíčů mimo centrální PKI.
- Signal double ratchet: kombinace asymetrie a symetrie s průběžným obnovováním klíčů (post-compromise security, forward secrecy).
PKI a digitální certifikáty
Infrastruktura veřejných klíčů (PKI) propojuje identity se subject public key pomocí certifikátů podepsaných certifikační autoritou (CA). Zásadní prvky: kořenové CA, mezilehlé CA, CRL/OCSP pro revokaci, zásady (CPS), doménové ověření (DV), organizační (OV), rozšířená validace (EV). Bezpečnost PKI stojí na důvěryhodných CA, bezpečné výrobě klíčů a ochraně privátních klíčů (HSM).
Modely hrozeb a útočné scénáře
- Útok zvoleným otevřeným/šifrovým textem (CPA/CCA): vyžadují schémata odolná i při interakci s útočníkem (CCA2 bezpečnost, např. RSA-OAEP, AEAD).
- Man-in-the-Middle (MitM): mitigace ověřením klíčů/identit (certifikáty, fingerprinty), PFS.
- Postranní kanály: timing, power/EM analýza; nutné konstantní časování, maskování, blinding.
- Opakování nonce/IV: fatální u CTR/GCM; vyžadovat unikátní nonce, případně deterministický AEAD s pečlivou konstrukcí.
- Slabá entropie: špatné RNG ohrožuje všechny primitiva; nutný kryptograficky bezpečný PRNG (CSPRNG) se seedem s vysokou entropií.
Generování klíčů, entropie a CSPRNG
Bezpečnost začíná kvalitou náhody. CSPRNG (např. /dev/urandom, moderní knihovny OS) musí být správně seedován ze zdrojů entropie (klávesnice, HW TRNG, časování systémů). Klíče se odvozují z master tajemství pomocí HKDF a rotují podle politik (key rotation). Nedostatečná entropie při startu 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, užití, rotaci, archivaci a skartaci. Doporučené postupy:
- Oddělení rolí a přístupů (princip nejmenších oprávnění).
- Bezpečná distribuce (pro asymetrii veřejný klíč přes PKI, pro symetrii s použitím (EC)DH).
- Hardwarové úložiště (HSM, TPM, Secure Enclave) pro privátní klíče a operace uvnitř chráněného prostředí.
- Rotace a expirace dle politik a kryptoperiod, s auditní stopou.
- Zálohování a escrow šifrované klíče, dělení tajemství (Shamir) pro disaster recovery.
Konstrukce protokolů: formální bezpečnost a kompozice
Bezpečná schémata definují přesné security games a požadavky (IND-CPA, IND-CCA, EUF-CMA pro podpisy). Kompozice protokolů musí zohlednit nonce domény, vazbu klíčů na kontext (key binding), domain separation a contextual hashing. Preferujte 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) poskytují nepopiratelnost a integritu; ověřovací klíč je veřejný. V praxi se podpisy vážou k identitě přes certifikáty a časová razítka (TSA). U dokumentů a software update kanálů je klíčová správná politika správy klíčů a revokace.
Šifrování na úrovni dat vs. transportu
Transportní šifrování (TLS) chrání data mezi uzly, ale koncové body vidí otevřený text. End-to-end šifrování (Signal, PGP) chrání i vůči zprostředkovatelům. Šifrování na úrovni polí/databází (TDE, FPE, DAE) řeší specifické regulatorní a provozní scénáře; pozor na modely hrozeb a únik metadat.
Speciální techniky: perfektní utajení, ZKP a homomorfie
- Perfektní utajení: One-Time Pad je teoreticky dokonale bezpečný, ale nepraktický kvůli distribuci klíče.
- Nulové znalosti (ZKP): prokazují pravdivost tvrzení bez vyzrazení tajemství (např. Schnorr, zk-SNARKs) – využití v autentizaci a blockchain ekosystémech.
- Homomorfní šifrování: umožňuje výpočty nad šifrovanými daty; v praxi omezené (výkonnost), ale perspektivní pro citlivá data.
- SMPC (Secure Multi-Party Computation): více stran počítá nad svými vstupy bez jejich vzájemného odhalení.
Kvantová kryptografie a post-kvantové 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. Post-kvantové (PQC) přístupy (mřížkové, kódové, hash-based podpisy) se zavádějí postupně; tranzice bude vyžadovat hybridní režimy (PQC + klasická asymetrie), inventuru kryptografie a klíčů, a dlouhodobě bezpečné protokoly.
Implementační zásady a bezpečnostní hygiena
- Preferujte AEAD (AES-GCM, ChaCha20-Poly1305) a protokoly s Forward Secrecy.
- Garantujte unikátní nonce pro GCM/CTR; u EdDSA/ECDSA dbejte na bezpečné náhodné nebo deterministické k.
- Používejte password hashing (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), auditujte přístupy.
- Provádějte rotaci klíčů, udržujte inventář algoritmů a verzí (Crypto Agility).
- Vyvarujte se „roll-your-own crypto“ – spoléhejte na knihovny s auditovanou implementací.
- Myslete na metadata leakage (velikosti, časování, vzory provozu), používejte padding a traffic shaping, je-li třeba.
Typické chyby a jak se jim vyhnout
- Reuse IV/nonce v GCM/CTR → katastrofální ztráta důvěrnosti i integrity.
- Nevhodný režim (ECB) → zachování struktur v obrázcích a blocích.
- Chybějící autentizace → záměna/úprava dat a padding-oracle útoky.
- Slabé RNG → předvídatelné klíče a nonce; zajistit CSPRNG a health-checks TRNG.
- Nedostatečná validace certifikátů → MitM (ignorování hostname/řetězu/OCSP).
- Neřešené postranní kanály → používat konstantní časování, blinding, fyzickou ochranu.
Příklad pracovního toku: bezpečná komunikace klient–server
- Klient a server vyjednají v TLS 1.3 sadu (ECDHE + AES-GCM/ChaCha20-Poly1305) a ověří certifikát serveru.
- Výměna ephemerálních klíčů ECDHE poskytne forward secrecy.
- Odvození klíčů přes HKDF s kontextem (transcript hash) – různé klíče pro směry a vrstvy.
- Data se přenáší v AEAD rámcích; integrita a autenticita jsou ověřovány na každém záznamu.
- Rotace klíčů po dosažení limitu objemu/času (rekeying) a standardní revokace certifikátů.
Regulatorní a provozní kontext
Organizace musí sladit kryptografii s regulacemi (GDPR, eIDAS, HIPAA aj.), politikami 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 AEAD šifer, spolehlivých hashů a moderní asymetrie (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áhody, správu klíčů, postranní kanály, rotaci a připravenost na post-kvantový 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í.