Kryptografie: Základy šifrování, hashování a digitálních podpisů

Co je kryptografie a proč je klíčová v digitálním světě

Kryptografie je věda zabývající se návrhem a analýzou metod chránících důvěrnost, integritu a autenticitu informací. V praxi umožňuje zabezpečit šifrovanou komunikaci, bezpečné přihlašování, elektronické podpisy, anonymitu i odolnost vůči manipulaci. Moderní kryptografie je založena na pevných matematických základech (teorie čísel, kombinatorika, algebra) a realizuje se prostřednictvím protokolů a knihoven nasazených v operačních systémech, webových prohlížečích, serverech i vestavěných zařízeních.

Historie v kostce: od Caesarovy šifry k postkvantovým schématům

  • Klasická éra: substituční a transpoziční šifry (Caesar, Vigenère). Bez formální bezpečnostní definice, prolomitelné pomocí frekvenční analýzy.
  • Kryptoanalýza 20. století: Enigma, Turingovy stroje, Shannonova teorie („perfektní tajemství“ u Vernamovy jednorázové podložky).
  • Moderní éra: kryptografie s veřejným klíčem (Diffie–Hellman, RSA), symetrické blokové šifry (DES, AES), hashovací funkce (MD5, SHA-2, SHA-3).
  • Dnes: eliptické křivky (ECC), autentizované šifrování (AEAD), protokoly s nulovou znalostí (0-knowledge) a kandidáti postkvantové kryptografie.

Bezpečnostní cíle a hrozby

  • Důvěrnost: útočník nesmí získat obsah zprávy. Typická ochrana: šifrování s vhodným režimem a správně generovanými nelineárními vektory (nonce/iv).
  • Integrita: data nesmí být nepozorovaně změněna. Ochrana: MAC, digitální podpisy, AEAD.
  • Autenticita: příjemce ověří původ dat. Ochrana: digitální podpisy, certifikáty, otisky klíčů.
  • Neodmítnutelnost: odesílatel nemůže popřít svoji akci (například kvalifikované elektronické podpisy podle eIDAS).
  • Dostupnost: kryptografické metody nesmí negativně ovlivnit dostupnost systému (odolnost vůči DoS útokům, škálování).

Stavební kameny: primitiva moderní kryptografie

  • Symetrické šifrování: sdílený tajný klíč K. Blokové šifry (AES) a proudové šifry (ChaCha20). Režimy: CBC (historický), CTR (stream), GCM (AEAD), XTS (pro šifrování disků).
  • Hashovací funkce: jednosměrné funkce odolné vůči kolizím a preimage útokům (SHA-256, SHA-3/Keccak). Použití: vytváření otisků, ukládání hesel (s salt a work factor), v protokolech.
  • MAC: ověřování integrity s pomocí sdíleného klíče (HMAC, Poly1305). Součást autentizovaného šifrování AEAD (např. AES-GCM, ChaCha20-Poly1305).
  • Asymetrická kryptografie: dvojice klíčů (privátní a veřejný). Algoritmy RSA, DSA/ECDSA, EdDSA (Ed25519), výměna klíčů DH/ECDH.
  • PRNG/DRBG: kryptograficky bezpečný zdroj náhodnosti (např. osrand, /dev/urandom, systémové DRBG). Nízká entropie je častou příčinou kompromitací.

Teorie čísel a algebra v pozadí

Bezpečnost mnoha schémat (RSA, DH, ECC) spočívá na obtížnosti řešení problémů, jako je faktorizace velkých čísel nebo výpočet diskrétního logaritmu v grupě definované modulo prvočísla nebo na eliptické křivce. ECC umožňuje použití kratších klíčů při stejné úrovni bezpečnosti (například 256bitová křivka odpovídá přibližně 3072bitovému RSA), což je významné pro výkon a paměť v mobilních a IoT zařízení.

Srovnání běžných voleb algoritmů

Účel Doporučené algoritmy Poznámka
Šifrování dat AES-GCM, ChaCha20-Poly1305 AEAD zajišťuje integritu i důvěrnost; ChaCha vhodné pro zařízení bez podpor AES-NI
Digitální podpis Ed25519, ECDSA P-256, RSA-PSS (≥2048 bitů) Ed25519 je preferována pro výkon a jednoduchost implementace
Výměna klíčů X25519, ECDH P-256 Perfektní dopředná bezpečnost při použití ephemerálních klíčů (ECDHE)
Hashování SHA-256/512, SHA-3 Pro ukládání hesel použijte PBKDF2, scrypt nebo Argon2id (náročné na paměť)
Postkvantové (KEM/podpisy) Kyber (ML-KEM), Dilithium (ML-DSA) Hybridní režimy kombinující s ECC/RSA během přechodného období

Protokoly: jak se primitiva skládají do řešení

  • TLS 1.3: minimalizuje počet kol, vyžaduje AEAD, ephemerální výměnu klíčů (ECDHE), dopřednou bezpečnost a volitelný 0-RTT režim s ochranou proti zneužití opakování zpráv.
  • IPsec/WireGuard: šifrování na síťové úrovni; WireGuard používá moderní kryptografickou sadu (X25519, ChaCha20-Poly1305, BLAKE2s).
  • SSH: vzdálený přístup zabezpečený veřejnými klíči (Ed25519) a tunely.
  • PGP/OpenPGP: e-mailové šifrování a digitální podpisy; model důvěry buď web of trust, nebo PKI.
  • Signal Double Ratchet: zajišťuje dopřednou a postkompromisní bezpečnost prostřednictvím průběžné rotace klíčů, používá protokol X3DH pro inicializaci spojení.

Správa klíčů: kde bezpečnost vítězí nebo padá

  1. Generování: použití silné entropie a ověřování parametrů křivek.
  2. Ukládání: HSM, TPM, bezpečnostní enclavy, oddělení rolí, rotace a escrow klíčů pouze tam, kde je nezbytné obnovení přístupu.
  3. Distribuce: PKI, certifikáty X.509, OCSP/CRL, pinning (HPKP je zastaralý; preferujte mechanismy certificate transparency a expect-CT pro audit a detekci podvržených certifikátů).
  4. Životní cyklus: správa expirací, obnov, odvolání, auditních záznamů a klíčových politik.

PKI a důvěra: kdo komu věří a proč

Infrastruktura veřejných klíčů (PKI) propojuje identity (domény, organizace, osoby) s veřejnými klíči prostřednictvím certifikačních autorit (CA). Webové prohlížeče udržují trust store do kořenových CA, jež vydávají certifikáty s příslušnými rozšířeními (SAN, Key Usage). Klíčová je transparentnost – pomocí protokolů Certificate Transparency – dále správa privátních PKI a správná konfigurace TLS (moderní šifrovací sady, HSTS, správné OCSP stapling).

Kryptografie v praxi webu a aplikačních platforem

  • HTTPS napříč všemi službami: automatizace přes ACME protokol (např. Let’s Encrypt), krátké doby platnosti certifikátů, bezpečné TLS parametry.
  • Ochrana hesel: hashování s salt a použitím paměťově náročných funkcí (Argon2id), zákaz ukládání hesel v prostém textu.
  • Tokeny a digitální podpisy: bezpečné podepisování JWT (ES256/EdDSA), omezení délky platnosti a rozsahu oprávnění (scopes), rotace klíčů (JWKS).
  • Šifrování dat v klidu: diskové šifrování XTS-AES, aplikační AEAD režimy, správa klíčů mimo aplikační servery.

Postkvantová kryptografie: hrozba Shorova algoritmu a migrace

Univerzální kvantový počítač by ohrozil bezpečnost RSA a ECC algoritmů (díky Shorovu algoritmu), zatímco symetrické šifry a hashovací funkce vyžadují pouze prodloužení délky klíčů kvůli Groverovu algoritmu. Kandidáti postkvantové kryptografie nahrazují nebo doplňují KEM a schémata digitálních podpisů (například mřížkové algoritmy: ML-KEM/Kyber, ML-DSA/Dilithium). Doporučuje se hybridní migrace (například kombinace ECDH+Kyber, Ed25519+Dilithium), provádět inventuru kryptografických systémů, testovat kompatibilitu, měřit latence a velikost klíčových materiálů.

Zero-Knowledge a pokročilé techniky

  • Důkazy s nulovou znalostí (Zero-Knowledge Proofs): metoda prokazování znalosti informace bez jejího prozrazení (zk-SNARK, zk-STARK), používána v anonymních protokolech a pro škálování blockchainů.
  • MPC (Multi-Party Computation): výpočty nad tajnými daty několika stran bez odhalení samotných dat.
  • FHE (Fully Homomorphic Encryption): umožňuje provádět výpočty nad šifrovanými daty; v současnosti nákladné, ale rychle se vyvíjí.

Implementační bezpečnost: útoky na realizaci, ne na matematiku

  • Boční kanály: útoky založené na časování, energetické spotřebě či elektromagnetickém vyzařování. Ochrana: konstantní časové algoritmy, maskování, vyrovnávání chyb.
  • Chyby v protokolu: nesprávné použití nonce/IV (znovupoužití v GCM je kritická chyba), slabé generátory náhodných čísel, padding oracle útoky.
  • Knihovny: preferujte prověřené implementace (OpenSSL/BoringSSL, libsodium), pravidelně aplikujte aktualizace, používejte bezpečné výchozí konfigurace.
  • Správa konfigurace: deaktivace zastaralých šifer (RC4, 3DES), minimální verze TLS 1.2/1.3, HSTS, správná správa certifikátů.

Hesla a autentizace: od lidských chyb k bezheslové budoucnosti

  • Správci hesel a generování silných heslových frází; nikdy hesla znovu nepoužívat.
  • Vícefaktorová autentizace: TOTP/HOTP, hardwarové tokeny U2F/FIDO2, push notifikace s ochranou proti prompt bombing.
  • Passkeys: kryptografie veřejného klíče určená koncovým uživatelům, zvyšující odolnost proti phishingu.

Regulace, standardy a doporučení

  • Standardizační organizace: NIST (FIPS, řada SP 800), ISO/IEC 19790, IETF RFC (TLS, JOSE), ENISA doporučení v EU.
  • Právní rámce: GDPR (kryptografie jako prostředek privacy by design), eIDAS (kvalifikované podpisy a pečetě), směrnice NIS2 (řízení rizik a kryptografických politik).
  • Klasifikace dat: určení citlivosti, doby uchovávání, šifrování v klidu i během přenosu, klíčové politiky a audit.

Kryptografie a blockchain: co je realita a co marketing

Distribuované účetní knihy (blockchainy) využívají kryptografii pro zajištění integrity (hashové propojení bloků), konsensu a digitálních podpisů transakcí. Kryptografie však neřeší všechny aspekty systému – například cenová orákula, správa uživatelských klíčů a governance jsou záležitosti nad rámec čistě matematického modelu. Soukromá řešení používají Zero-Knowledge Proofs a závazkové schéma pro zvýšení škálovatelnosti a ochranu soukromí.

Výkonnost a optimalizace: kdy volit jaké primitivum

  • Mobilní a IoT zařízení: preferujte X25519/Ed25519 a ChaCha20-Poly1305 (při absenci hardwarové akcelerace AES).
  • Servery s AES-NI: AES-GCM nabízí velmi vysoký výkon; nutná je správná tvorba nonce.
  • Velkoobjemová data: použití streamových režimů (CTR) s odděleným MAC nebo AEAD, paralelizace a využití hardwarové akcelerace.

Check-list pro bezpečné nasazení kryptografie

  1. Inventarizujte a zdokumentujte používané algoritmy a klíče (mapa datových toků, verze knihoven).
  2. Zavádějte zásadu „secure by default“: TLS 1.3, AEAD, deaktivace zastaralých šifer, HSTS, správná konfigurace CAA záznamů.
  3. Řiďte klíče: generace v HSM/TPM, pravidelná rotace, zálohování, odvolávání a kontrola přístupu na principu nejmenších práv.
  4. Monitorujte a aktualizujte: sledujte CVE, využívejte automatizované skenery konfigurace, pravidelně provádějte penetrační testy a kryptografické audity.
  5. Plánujte migraci na postkvantovou kryptografii (PQC): hybridní režimy, pilotní projekty, testování výkonu, sledování vývoje standardů.
  6. Školte vývojáře: správné využívání