Kryptografie
Kryptografie je disciplína zabývající se návrhem matematických a systémových prostředků pro ochranu informací. Hlavní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í, ideálně nerozlišitelný od náhodného šumu.
- Šifrovací algoritmus (cipher): deterministicky definované funkce pro šifrování a dešifrování.
- Klíč: tajná (symetrická) nebo neveřejná část páru (asymetrická), která parametrizuje algoritmus.
- Bezpečnostní parametr λ: obvykle délka klíče v bitech a dalších kryptografických hodnot.
Symetrická kryptografie: jeden klíč pro šifrování i dešifrování
Symetrické šifry využívají stejný tajný klíč pro obě operace. Nejčastější jsou blokové šifry (např. AES) a proudové šifry (např. ChaCha20). Výhodou je vysoká rychlost a nízká režie; nevýhodou potom složitá distribuce klíčů mezi více stranami.
Blokové šifry a režimy provozu
Bloková šifra transformuje blok bitů pevné délky (například 128 bitů v případě AES). Protože zprávy mohou mít libovolnou délku, používají se režimy provozu:
- CBC (Cipher Block Chaining): vyžaduje náhodný inicializační vektor (IV); nezajišťuje integritu dat.
- CTR (Counter): přeměňuje blokovou šifru na proudovou; nezajišťuje integritu; přísné pravidlo nikdy znovu nepoužívat nonce.
- GCM (Galois/Counter Mode): AEAD režim poskytující šifrování a autentizaci; citlivý na opakování nonce.
- OCB, CCM: další AEAD režimy kombinující důvěrnost a integritu.
V moderní praxi se preferují AEAD režimy (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 pomocí operace 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 podpory 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. Typické příklady jsou HMAC (postavený na hashovací funkci) a GMAC (z GCM). AEAD režimy kombinují šifrování a MAC do jednoho celku a umožňují autentizovat i nešifrovaná metadata (Associated Data, například hlavičky protokolu).
Kryptografické hašovací funkce a související primitiva
Hašovací funkce převádějí zprávy libovolné délky na pevnou délku a musí splňovat odolnost vůči kolizím, odolnost vůči předobrázku a odolnost vůči druhému předobrázku. Moderní volby zahrnují SHA-256/512, SHA-3 (Keccak) a BLAKE2/3. Z hashů se odvozují KDF (Key Derivation Functions), např. HKDF pro odvozování klíčů, a funkce pro hašování hesel (Argon2, scrypt, bcrypt) s paměťovou náročností proti útokům na GPU a ASIC.
Asymetrická kryptografie: pár klíčů a veřejná infrastruktura
Asymetrická kryptografie používá veřejný klíč pro šifrování či ověření a soukromý klíč pro dešifrování či podepsání zprávy. 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 spočívá 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 se obvykle pohybuje od 2048 do 3072 bitů nebo více dle 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í přes nezabezpečený kanál. ECDH na eliptických křivkách nabízí kratší klíče při stejné úrovni bezpečnosti. Pro digitální podpisy se běžně používají ECDSA a EdDSA (Ed25519). Výhody ECC jsou menší velikost klíčů, rychlejší výpočty a nižší režie na přenos; vyžaduje však pečlivou implementaci a volbu 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, AEAD šifry (AES-GCM, ChaCha20-Poly1305) a zjednodušený handshake.
- SSH: zajišťuje bezpečný vzdálený přístup, používá výměnu klíčů (ECDH), AEAD šifry a autentizaci pomocí klíčů.
- PGP/OpenPGP: slouží k end-to-end šifrování a digitálním podpisům e-mailů; správa veřejných klíčů mimo centralizovanou PKI.
- Signal double ratchet: kombinuje asymetrickou a symetrickou kryptografii s průběžnou obnovou klíčů (post-compromise security, forward secrecy).
PKI a digitální certifikáty
Infrastruktura veřejných klíčů (PKI) spojuje identity s subject public key pomocí certifikátů, které podepisují certifikační autority (CA). Klíčové prvky jsou kořenové CA, mezilehlé CA, CRL/OCSP pro revokaci, zásady pro certifikaci (CPS), doménové ověření (DV), organizační ověření (OV) a rozšířená validace (EV). Bezpečnost PKI závisí na důvěryhodnosti CA, bezpečné generaci klíčů a ochraně privátních klíčů (např. pomocí HSM).
Modely hrozeb a útočné scénáře
- Útoky s volbou otevřeného či šifrového textu (CPA/CCA): vyžadují kryptografická schémata odolná i při interakci s útočníkem (CCA2 bezpečnost, například RSA-OAEP, AEAD).
- Man-in-the-Middle (MitM): mitigace pomocí ověřování klíčů a identity (certifikáty, fingerprinty) a použití PFS.
- Postranní kanály: analýza časování, spotřeby energie nebo elektromagnetického záření; nutné je konstantní časování, maskování a blinding.
- Opakování nonce/IV: fatální u režimů CTR a GCM; nutnost zajistit jedinečnost nonce, případně použít deterministické AEAD s pečlivou konstrukcí.
- Slabá entropie: špatné generátory náhodných čísel ohrožují všechna kryptografická primitiva; nezbytný je kryptograficky bezpečný PRNG (CSPRNG) s kvalitním seedem.
Generování klíčů, entropie a CSPRNG
Bezpečnost kryptografických klíčů začíná kvalitou náhody. CSPRNG (např. /dev/urandom, moderní systémové knihovny) musí být správně inicializován ze zdrojů entropie (např. klávesnice, hardware TRNG, systémové časování). Klíče se odvozují z master tajemství pomocí HKDF a rotují podle platných politik (key rotation). Nedostatečná entropie při startu systému představuje častý problém zejména u vestavěných zařízení.
Správa klíčů: životní cyklus a úložiště
Životní cyklus klíče zahrnuje jeho generování, distribuci, používání, rotaci, archivaci a skartaci. Doporučené postupy jsou:
- Oddělení rolí a přístupových oprávnění (princip nejmenších práv).
- Bezpečná distribuce: u asymetrie pomocí PKI, u symetrie použitím (EC)DH.
- Hardwarové úložiště (HSM, TPM, Secure Enclave) pro privátní klíče a kryptografické operace v izolovaném prostředí.
- Rotace a expirace podle politik a kryptoperiod, s auditní stopou.
- Zálohování a escrow šifrovaných klíčů, využití dělení tajemství (např. Shamirovo schéma) pro obnovu po havárii.
Konstrukce protokolů: formální bezpečnost a kompozice
Bezpečné kryptografické schémata definují přesné security games a požadavky (např. IND-CPA, IND-CCA, EUF-CMA u digitálních podpisů). Kompozice protokolů musí zohlednit domény nonce, vazbu klíčů na kontext (key binding), domain separation a contextual hashing. Doporučuje se používat osvědčené knihovny a standardy (např. TLS 1.3, Noise, libsodium) namísto vlastního návrhu.
Autentizace a digitální podpisy
Podpisová schémata (RSA-PSS, ECDSA, EdDSA) poskytují nepopiratelnost a integritu dat; ověřovací klíč je veřejný. V praxi jsou podpisy vázány na identitu přes certifikáty a časová razítka (TSA). U dokumentů a kanálů softwarových aktualizací je klíčová správná správa klíčů a procesy revokace.
Šifrování na úrovni dat vs. transportu
Transportní šifrování (např. TLS) chrání data při přenosu mezi uzly, ale koncové body již vidí otevřený text. End-to-end šifrování (Signal, PGP) zajišťuje ochranu i vůči zprostředkovatelům. Šifrování na úrovni polí a databází (např. TDE, FPE, DAE) řeší specifické regulatorní a provozní scénáře; je však nutné dbát na modely hrozeb a možné úniky metadat.
Speciální techniky: perfektní utajení, ZKP a homomorfní šifrování
- Perfektní utajení: One-Time Pad je teoreticky dokonale bezpečný, ale nepraktický kvůli náročné distribuci klíče.
- Nulové znalosti (ZKP): umožňují prokázat pravdivost tvrzení bez odhalení tajemství (např. Schnorr, zk-SNARKs) – využití v autentizaci a blockchainových ekosystémech.
- Homomorfní šifrování: umožňuje provádět výpočty nad šifrovanými daty; v praxi omezené výkonem, ale slibné pro citlivá data.
- SMPC (Secure Multi-Party Computation): umožňuje více stranám společně počítat 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, který by mohl být spuštěn na dostatečně výkonném kvantovém počítači. Post-kvantové kryptografické přístupy (mřížkové, kódové, hash-based podpisy) se zavádějí postupně; přechod 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 režimy (AES-GCM, ChaCha20-Poly1305) a protokoly s Forward Secrecy.
- Garantujte unikátní nonce v režimech GCM/CTR; u EdDSA a ECDSA dbejte na bezpečné náhodné či deterministické hodnoty k.
- Používejte kvalitní password hashing (Argon2) s nasolením (salt); nikdy neukládejte hesla v otevřené formě.
- Chraňte soukromé klíče v bezpečném hardwarovém prostředí (HSM/TPM), oddělte prostředí pro vývoj, testování a provoz, provádě



























