Základy kryptografie a jejich aplikace v podnikání

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ě