Kryptografie: principy šifrování, hašování a digitálních podpisů

Kryptografie: Principy šifrování, hašování a digitálních podpisů

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

Kryptografie je věda o návrhu a analýze metod, které chrání důvěrnost, integritu a autenticitu informací. V praxi zajišťuje šifrovanou komunikaci, bezpečné přihlašování, elektronické podpisy, anonymitu i odolnost proti manipulaci. Moderní kryptografie stojí na pevných matematických základech (teorie čísel, kombinatorika, algebra) a realizuje se pomocí protokolů a knihoven nasazených v operačních systémech, 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é frekvenční analýzou.
  • Kryptoanalýza 20. století: Enigma, Turingovy stroje, Shannonova teorie („dokonalé utajení“ u Vernamovy jednorázové podložky).
  • Moderní éra: šifrování s veřejným klíčem (Diffie–Hellman, RSA), symetrické blokové šifry (DES, AES), hashovací funkce (MD5, SHA-2, SHA-3).
  • Dnes: křivkové kryptosystémy (ECC), autentizované šifrování (AEAD), protokoly s nulovou znalostí a kandidáti postkvantové kryptografie.

Bezpečnostní cíle a hrozby

  • Důvěrnost: útočník nesmí zjistit obsah. Typická obrana: šifrování se správným režimem a správně generovanými inicializačními vektory.
  • Integrita: data nesmí být nepozorovaně změněna. Obrana: MAC, digitální podpisy, AEAD.
  • Autenticita: příjemce si ověří původ dat. Obrana: podpisy, certifikáty, otisky klíčů.
  • Neodmítnutelnost: odesílatel nemůže popřít svou akci (kvalifikované podpisy podle eIDAS).
  • Dostupnost: kryptografie nesmí omezovat dostupnost (odolnost proti DoS, škálování).

Stavební kameny: primitiva moderní kryptografie

  • Symetrické šifrování: sdílený klíč K. Blokové šifry (AES) a proudové šifry (ChaCha20). Režimy: CBC (historický), CTR (proudový), GCM (AEAD), XTS (disky).
  • Hashovací funkce: jednosměrné, odolné vůči kolizím a nalezení předobrazu (SHA-256, SHA-3/Keccak). Použití: otisky, hesla (se salt a work factor), protokoly.
  • MAC: ověřování integrity pomocí sdíleného klíče (HMAC, Poly1305). Součást AEAD (AES-GCM, ChaCha20-Poly1305).
  • Asymetrická kryptografie: dvojice klíčů (privátní, veřejný). RSA, DSA/ECDSA, EdDSA (Ed25519), výměna klíčů DH/ECDH.
  • PRNG/DRBG: kryptograficky silná náhodnost (osrand, /dev/urandom, systémové DRBG). Slabá entropie bývá častou příčinou kompromitace.

Teorie čísel a algebra v pozadí

Bezpečnost mnoha schémat (RSA, DH, ECC) vychází z obtížnosti problémů, jako je faktorizace velkých čísel nebo výpočet diskrétního logaritmu ve skupinách modulo prvočíslo či na eliptické křivce. ECC nabízí kratší klíče při stejné úrovni bezpečnosti (např. 256bitová křivka ≈ 3072bitové RSA), což je zásadní pro výkon a paměť v mobilních a IoT zařízeních.

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

Účel Doporučené algoritmy Poznámka
Šifrování dat AES-GCM, ChaCha20-Poly1305 AEAD (integrita + důvěrnost), ChaCha pro zařízení bez AES-NI
Digitální podpis Ed25519, ECDSA P-256, RSA-PSS (≥2048) Ed25519 se upřednostňuje pro výkon a jednoduchost
Výměna klíčů X25519, ECDH P-256 Dokonalé dopředné utajení při použití dočasných klíčů (ECDHE)
Hashování SHA-256/512, SHA-3 Pro hesla PBKDF2, scrypt, Argon2id (náročné na paměť)
Postkvantové (KEM/podpisy) Kyber (ML-KEM), Dilithium (ML-DSA) Hybridní režimy 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, dočasnou výměnu klíčů (ECDHE), dopředné utajení a volitelný režim 0-RTT s ochranou proti opakování.
  • IPsec/WireGuard: šifrování na síťové vrstvě; WireGuard používá moderní sadu (X25519, ChaCha20-Poly1305, BLAKE2s).
  • SSH: vzdálený přístup, veřejné klíče (Ed25519) a tunely.
  • PGP/OpenPGP: šifrování e-mailů a podpisy, síť důvěry vs. PKI.
  • Signal Double Ratchet: dopředné utajení a bezpečnost po kompromitaci díky průběžné rotaci klíčů, X3DH pro inicializaci.

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

  1. Generování: silná entropie a validace křivek/parametrů.
  2. Ukládání: HSM, TPM, enklávy, oddělení rolí, rotace a úschova klíčů pouze tam, kde je nutné obnovení přístupu.
  3. Distribuce: PKI, certifikáty X.509, OCSP/CRL, pinning (HPKP je historický; při auditu upřednostňujte mechanismy certificate transparency a expect-CT).
  4. Životní cyklus: expirace, obnova, odvolání, auditní záznamy a politiky klíčů.

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). Prohlížeče udržují úložiště důvěryhodných kořenových CA, které vydávají certifikáty s rozšířeními (SAN, Key Usage). Důležitá je transparentnost (protokoly Certificate Transparency), správa privátních PKI a správná konfigurace TLS (moderní šifrovací sady, HSTS, správné staplování OCSP).

Kryptografie v praxi webu a aplikačních platforem

  • HTTPS všude: automatizace přes ACME (např. Let’s Encrypt), krátká platnost certifikátů, bezpečné parametry TLS.
  • Ochrana hesel: hashování se salt a paměťově náročnými funkcemi (Argon2id), zákaz ukládání v prostém textu.
  • Tokeny a podpisy: JWT podepisujte robustním způsobem (ES256/EdDSA), omezte dobu platnosti a rozsah (scopes), rotujte klíče (JWKS).
  • Šifrování dat v klidu: diskové XTS-AES, aplikační AEAD, správa klíčů mimo aplikační server.

Postkvantová kryptografie: hrozba Shorova algoritmu a migrace

Univerzální kvantový počítač by ohrozil RSA a ECC (Shorův algoritmus), zatímco symetrická a hashovací primitiva by vyžadovala delší klíče (Groverův algoritmus). Postkvantoví kandidáti nahrazují nebo doplňují schémata KEM a podpisová schémata (např. mřížková: ML-KEM/Kyber, ML-DSA/Dilithium). Doporučuje se hybridní migrace (např. ECDH+Kyber, Ed25519+Dilithium), inventarizace kryptografie, testování kompatibility a měření latence a velikosti klíčového materiálu.

Důkazy s nulovou znalostí a pokročilé techniky

  • Důkazy s nulovou znalostí: důkaz znalosti bez prozrazení tajemství (zk-SNARK/zk-STARK), použití v anonymních protokolech a při škálování blockchainu.
  • MPC (Multi-Party Computation): výpočty nad tajnými daty více stran bez jejich odhalení.
  • FHE (Fully Homomorphic Encryption): výpočty nad šifrovanými daty; zatím nákladné, ale rychle se zlepšující.

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

  • Boční kanály: časování, spotřeba, elektromagnetické vyzařování. Obrana: konstantní čas, maskování, vyrovnávání.
  • Chyby v protokolu: nesprávné nonce/IV (opětovné použití v GCM má fatální následky), slabé generátory náhodných čísel, padding oracle.
  • Knihovny: upřednostňujte prověřené (OpenSSL/BoringSSL, libsodium), průběžně instalujte opravy a používejte bezpečná výchozí nastavení.
  • Konfigurace: vypnutí zastaralých sad (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 generované silné fráze; hesla nikdy znovu nepoužívejte.
  • Vícefaktorové ověřování: TOTP/HOTP, U2F/FIDO2 (hardwarové tokeny), vícefaktorové ověřování prostřednictvím push notifikací s ochranou proti zahlcení výzvami (prompt bombing).
  • Přístupové klíče: kryptografie veřejného klíče pro koncové uživatele, vyšší odolnost proti phishingu.

Regulace, standardy a doporučení

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

Kryptografie a blockchain: co je realita a co marketing

Distribuované účetní knihy využívají kryptografii k zajištění integrity (řetězení bloků pomocí hashů), konsenzu a digitálního podepisování transakcí. Kryptografie zde neřeší všechno: například cenová orákula, klíče uživatelů a správa systému jsou mimo rámec čistě matematického modelu. Soukromá řešení využívají důkazy s nulovou znalostí a závazková schémata ke škálování a ochraně soukromí.

Výkonnost a optimalizace: kdy volit jaké primitivum

  • Mobilní a IoT zařízení: upřednostňujte X25519/Ed25519 a ChaCha20-Poly1305 (bez hardwarové akcelerace AES).
  • Servery s AES-NI: AES-GCM je velmi rychlé; dbejte na správnou tvorbu hodnot nonce.
  • Velkoobjemová data: proudové režimy (CTR) se samostatným MAC nebo AEAD, paralelizace a hardwarová akcelerace.

Kontrolní seznam pro bezpečné nasazení kryptografie

  1. Inventarizujte, kde a jaké algoritmy a klíče používáte (mapa datových toků, verze knihoven).
  2. Zaveďte zásadu bezpečných výchozích nastavení: TLS 1.3, AEAD, zákaz zastaralých sad, HSTS, správné záznamy CAA.
  3. Řiďte klíče: generování v HSM/TPM, rotace, zálohy, odvolání, přístup podle principu nejmenších oprávnění.
  4. Monitorujte a instalujte opravy: CVE, testy konfigurací (automatizované skenery), pravidelné penetrační testy a kryptografický audit.
  5. Plánujte migraci na PQC: hybridní režimy, pilotní nasazení, výkonové testy, sledování standardů.
  6. Školte vývojáře: správné použití AEAD, práce s IV/nonce, předcházení útokům postranními kanály a bezpečná správa tajemství.

Typické chyby a jak se jim vyhnout

  • Vlastní kryptografie místo prověřené knihovny („vlastní implementace kryptografie“).
  • Pevné nebo opakovaně použité hodnoty nonce/IV (pro GCM/CTR mohou mít fatální následky).
  • Ukládání klíčů v kódu nebo repozitáři; chybějící rotace.
  • Slabé hashování hesel (rychlé funkce, bez salt a work factor).
  • Neověřené certifikáty (ignorování chyb, vypnuté ověřování názvu hostitele).

Závěr: kryptografie jako důvěryhodná infrastruktura

Kryptografie není samoúčelná matematika, ale základní infrastruktura důvěry. Správně zvolené algoritmy, pečlivá implementace, kvalitní správa klíčů a průběžný audit vytvářejí vrstvu, na níž mohou bezpečně fungovat moderní IT, web, data i telekomunikační sítě. S nástupem postkvantových metod a pokročilých důkazů zůstává princip stejný: stavět na otevřených standardech, prokazatelné bezpečnosti a rozumném inženýrství.