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á (symetrická) nebo neveřejná část páru (asymetrická), 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 nízká režie; nevýhodou je náročná distribuce klíčů mezi mnoha subjekty.
Blokové šifry a režimy provozu
Bloková šifra transformuje blok bitů pevné délky (např. 128 bitů u AES). Protože zprávy mohou mít 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): z blokové šifry vytváří proudovou; neposkytuje integritu; přísné pravidlo nikdy neopakovat nonce.
- GCM (Galois/Counter Mode): AEAD režim, poskytuje šifrování i autentizaci; citlivý na opakování nonce.
- OCB, CCM: další AEAD režimy kombinující důvěrnost a integritu.
Moderní praxe upřednostňuje AEAD (Authenticated Encryption with Associated Data) – obvykle 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 vysoké 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 pomocí sdíleného symetrického klíče. Příklady: HMAC (na bázi hashovací funkce), GMAC (součást GCM). AEAD režimy integrují šifrování a MAC do jednotného celku 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 zobrazují zprávy libovolné délky na výstupy pevné délky a musí splňovat odolnost proti kolizím, odolnost proti preimage a druhé preimage. Moderní standardy zahrnují SHA-256/512, SHA-3 (Keccak) a BLAKE2/3. Z hašovacích funkcí se odvozují KDF (Key Derivation Functions), například HKDF pro odvození klíčů, a funkce pro bezpečné hašování hesel (Argon2, scrypt, bcrypt) s vysokou paměťovou náročností proti GPU či ASIC útokům.
Asymetrická kryptografie: pár klíčů a veřejná infrastruktura
Asymetrická kryptografie využívá veřejný klíč pro šifrování nebo ověřování a soukromý klíč pro dešifrování nebo podepisování. Umožňuje bezpečnou výměnu klíčů bez předchozího sdílení tajemství a digitální podpisy. Hlavní rodiny algoritmů jsou RSA, Diffie–Hellman (DH) a eliptické křivky (ECC: ECDH, ECDSA, EdDSA).
RSA: principy a praxe
RSA je založena na obtížnosti 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 by měla být 2048–3072 bitů (či více, podle požadovaného bezpečnostního horizontu). Kritická je bezpečná generace prvočísel a ochrana proti postranním kanálům.
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 nabízí kratší klíče při stejné úrovni bezpečnosti. Pro digitální podpisy se široce využívají ECDSA a EdDSA (Ed25519). Výhody ECC zahrnují menší klíče, rychlejší výpočty a menší přenosovou režii, ovšem vyžadují pečlivou implementaci a pečlivý výběr křivky (např. Curve25519, P-256).
Protokoly: šifrování na úrovni kanálu a aplikace
- TLS 1.3: poskytuje dopřednou bezpečnost (Forward Secrecy) díky (EC)DHE, používá AEAD šifry (AES-GCM, ChaCha20-Poly1305) a zjednodušený handshake.
- SSH: zabezpečený vzdálený přístup, výměna klíčů (ECDH), AEAD a autentizace pomocí klíčů.
- PGP/OpenPGP: koncové šifrování a digitální podpisy e-mailů; správa veřejných klíčů nezávislá na centrálním PKI.
- Signal double ratchet: kombinuje asymetrickou a symetrickou kryptografii 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 s subject public key za pomoci certifikátů podepsaných certifikační autoritou (CA). Zásadní prvky zahrnují kořenové CA, mezilehlé CA, CRL/OCSP pro revokace, zásady (CPS), doménové ověření (DV), organizační validaci (OV) a rozšířenou validaci (EV). Bezpečnost PKI spočívá na důvěryhodnosti CA, bezpečné výrobě klíčů a ochraně soukromých klíčů (např. prostřednictvím HSM).
Modely hrozeb a útočné scénáře
- Útok s vybraným otevřeným/šifrovým textem (CPA/CCA): vyžaduje schémata odolná i při interakci s útočníkem (bezpečnost CCA2, například RSA-OAEP, AEAD).
- Man-in-the-Middle (MitM): mitigace skrze ověření klíčů a identity (certifikáty, fingerprinty), PFS.
- Postranní kanály: analýzy časování, spotřeby energie či elektromagnetického vyzařování; nezbytné je použití konstantního časování, maskování a blindingu.
- Opakování nonce/IV: fatální v režimech CTR/GCM; vyžaduje jedinečný nonce nebo deterministický AEAD s pečlivou konstrukcí.
- Slabá entropie: nekvalitní generování náhodnosti ohrožuje všechna primitiva; nezbytný je kryptograficky bezpečný CSPRNG s vysoce entropickým seedem.
Generování klíčů, entropie a CSPRNG
Bezpečnost začíná kvalitou náhodnosti. CSPRNG (například /dev/urandom, moderní knihovny operačních systémů) musí být správně seedován ze zdrojů entropie (klávesnice, hardware TRNG, časování systémů). Klíče se odvozují z hlavního tajemství pomocí HKDF a rotují podle stanovených politik (key rotation). Nedostatečná entropie při startu systému je běžným rizikem zejména u vestavěných zařízení.
Správa klíčů: životní cyklus a úložiště
Životní cyklus klíče zahrnuje generování, distribuci, použití, rotaci, archivaci a likvidaci. Doporučené postupy zahrnují:
- Oddělení rolí a přístupů (princip nejmenších oprávnění).
- Bezpečnou distribuci (pro asymetrii veřejný klíč přes PKI, pro symetrii pomocí (EC)DH).
- Hardwarové úložiště (HSM, TPM, Secure Enclave) pro privátní klíče a operace v chráněném prostředí.
- Rotaci a expiraci dle politik a kryptoperiod s auditní stopou.
- Zálohování a escrow š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é security games a požadavky (IND-CPA, IND-CCA, EUF-CMA pro digitální 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 jsou podpisy spojovány s identitou 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 proti zprostředkovatelům. Šifrování na úrovni polí/databází (TDE, FPE, DAE) řeší specifické regulační 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): dokazují pravdivost tvrzení bez odhalení tajemství (např. Schnorr, zk-SNARKs) – využití v autentizaci a blockchainových ekosystémech.
- Homomorfní šifrování: umožňuje výpočty nad šifrovanými daty; v praxi omezené kvůli výkonnosti, ale perspektivní pro citlivá data.
- SMPC (Secure Multi-Party Computation): více stran provádí výpočty nad svými vstupy bez vzájemného odhalení těchto vstupů.
Kvantová kryptografie a post-kvantové algoritmy
Široce používané asymetrické algoritmy (RSA, ECC) jsou ohroženy Shorovým algoritmem při dostatečně výkonném kvantovém počítači. Post-kvantové (PQC) přístupy (mřížkové, kódové, hašovací podpisy) se zavádějí postupně; přechod bude vyžadovat hybridní režimy (PQC + klasická asymetrie), inventuru kryptografických metod 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) se solí (salt); nikdy neukládejte hesla v otevřené podobě.
- Chraňte soukromé klíče v HSM/TPM, oddělujte prostředí (vývoj/test/provoz), 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í.
- Mějte na paměti únik metadat (velikost, časování, vzory provozu), používejte padding a traffic shaping, je-li třeba.



























