Symetrické a asymetrické šifrovací algoritmy
Šifrovací algoritmy převádějí čitelná data (prostý text) na nečitelná data (šifrový text) tak, aby bylo možné je bezpečně přenášet či ukládat. Dvě hlavní kategorie jsou symetrické algoritmy, které používají stejný klíč pro šifrování i dešifrování, a asymetrické algoritmy (s veřejným klíčem), které pracují s dvojicí klíčů: veřejným a soukromým. V praxi se často používají hybridní kryptosystémy, které kombinují výhody obou přístupů.
Základní bezpečnostní vlastnosti šifer
- Důvěrnost (confidentiality): zabránění neautorizovanému čtení.
- Integrita (integrity): detekce změn v datech.
- Autentizace (authentication): ověření identity komunikujících stran.
- Nezpochybnitelnost (non-repudiation): nemožnost popřít provedení operace, typicky u digitálních podpisů.
Symetrické šifrovací algoritmy: princip a charakteristiky
Symetrická kryptografie používá jeden sdílený tajný klíč. Odesílatel i příjemce musí disponovat identickou kopií klíče, který je nezbytné bezpečně distribuovat. Výhodou je vysoká rychlost a nízké nároky na výpočetní výkon; nevýhodou je správa klíčů a jejich bezpečné předávání.
Blokové šifry
Blokové šifry pracují nad pevně velkými bloky bitů (např. 128 bitů). Příklady:
- AES (Rijndael): standard s délkami klíče 128/192/256 bitů; široké použití (TLS, VPN, diskové šifrování).
- 3DES: historická šifra odvodena od DES, dnes již spíše nahrazena AES pro nižší bezpečnost a výkon.
- Camellia, Serpent, Twofish: alternativy s různými bezpečnostními a výkonovými profily.
Proudové šifry
Proudové šifry generují pseudonáhodný klíčový proud, který se kombinuje s prostým textem (obvykle pomocí operace XOR). Vhodné jsou pro scénáře s proměnlivou délkou dat a nízkou latencí. Příklady: ChaCha20 a dříve RC4 (RC4 se již nedoporučuje).
Režimy provozu blokových šifer
Protože blokové šifry zpracovávají data po blocích, definují se režimy, které určují, jak se šifrují bloky po sobě:
- ECB: každý blok samostatně; nedoporučuje se kvůli zachování vzorů.
- CBC: řetězení bloků s náhodným inicializačním vektorem (IV); zajišťuje důvěrnost, nikoli integritu.
- CTR: šifra v proudovém režimu s čítačem; paralelizovatelná, citlivá na opakování nonce.
- GCM: AEAD režim (důvěrnost i integrita) kombinující CTR a autentizační tag (GHASH); preferovaný v mnoha protokolech.
- CCM: AEAD pro prostředí s omezenými zdroji (např. embedded zařízení).
Autentizované šifrování (AEAD)
AEAD (Authenticated Encryption with Associated Data) poskytuje současně důvěrnost a integritu. Typické kombinace: AES-GCM a ChaCha20-Poly1305. AEAD chrání i tzv. přidružená data (např. hlavičky), která se nešifrují, ale ověřují.
Generování klíčů, IV a nonce v symetrické kryptografii
- Klíče: generovat kryptograficky silným PRNG; neodvozovat z hesel bez vhodného KDF.
- IV/nonce: musí být unikátní pro daný klíč a zprávu; kolize (opakování) u režimů CTR/GCM je kritická.
- KDF: z hesel používat PBKDF2, scrypt nebo Argon2 (preferováno) s dostatečnou výpočetní náročností a solí.
Výhody a nevýhody symetrických algoritmů
- Výhody: vysoká rychlost, nízká latence, vhodné pro velké objemy dat.
- Nevýhody: obtížná distribuce a rotace klíčů, nevhodné pro digitální podpisy či výměnu klíčů přes nezabezpečený kanál.
Asymetrické šifrovací algoritmy: princip a vlastnosti
Asymetrická kryptografie používá veřejný klíč (publikovatelný) a soukromý klíč (tajný). Operace jsou matematicky spjaté tak, že co je zašifrováno veřejným klíčem, lze dešifrovat pouze soukromým klíčem a naopak (pro digitální podpisy). Asymetrie umožňuje bezpečnou výměnu klíčů, digitální podpisy a infrastrukturu veřejných klíčů (PKI).
RSA
RSA je založena na obtížnosti faktorizace velkých čísel. Podporuje šifrování, podpisy a výměnu klíčů (v praxi spíše pro šifrování náhodného symetrického klíče). Bezpečnost stojí na správném vycpávání (padding): PSS pro podpisy a OAEP pro šifrování. Doporučené délky klíčů jsou typicky ≥ 2048 bitů pro běžné použití.
Diffie–Hellman a ElGamal
Diffie–Hellman (DH) umožňuje výměnu sdíleného tajemství přes nezabezpečený kanál. ElGamal je šifra a systém digitálních podpisů založený na problému diskrétního logaritmu ve skupinách konečných polí; v praxi je méně používaný než moderní eliptické varianty.
Eliptická křivka (ECC)
ECC poskytuje stejnou úroveň bezpečnosti s kratšími klíči a vyšším výkonem. Běžné algoritmy:
- ECDH: výměna klíčů na eliptických křivkách.
- ECDSA: digitální podpisy; běžné křivky P-256, P-384.
- Ed25519/Ed448: moderní podpisové schémata s výborným výkonem a bezpečnostními vlastnostmi; doporučované pro nové implementace.
- X25519/X448: eliptická výměna klíčů (ECDH) nad křivkami Curve25519 a Curve448.
Postkvantová kryptografie (stručně)
S nástupem kvantových počítačů jsou klasické asymetrické systémy (RSA, ECC) ohroženy algoritmem Shor. Postkvantové algoritmy (založené na strukturách typu lattice, code-based apod.) nahrazují asymetrickou část; symetrické šifry jako AES jsou vůči kvantovým útokům relativně odolnější (Groverův algoritmus zdvojnásobuje efektivní nároky na délku klíče). V praxi se očekává kryptoagilita a přechod na hybridní výměny klíčů kombinující klasická a postkvantová schémata.
Digitální podpisy a otisky
Digitální podpis potvrzuje původ a integritu dat. Postup: vytvoří se hash zprávy (např. SHA-256), který se podepíše soukromým klíčem (např. RSA-PSS, ECDSA, Ed25519). Příjemce ověřuje podpis veřejným klíčem. Správná volba hashovací funkce a parametrů je zásadní.
Infrastruktura veřejných klíčů (PKI) a certifikáty
PKI řeší distribuci a důvěru ve veřejné klíče prostřednictvím certifikátů podepsaných certifikační autoritou (CA). Certifikáty (X.509) propojují identitu (doména, organizace) s veřejným klíčem. Důležité je ověření řetězce důvěry, využití OCSP/CRL pro revokace a správná správa privátních klíčů a hardwarových bezpečnostních modulů (HSM).
Hybridní kryptosystémy
V reálných protokolech se kombinuje asymetrie pro výměnu/obalení symetrického klíče a symetrie pro rychlé šifrování dat. Příklad: v TLS klient a server dohodnou klíč (ECDHE/X25519), kterým následně šifrují přenos dat (AES-GCM nebo ChaCha20-Poly1305).
Praktické nasazení: protokoly a scénáře
- TLS (HTTPS): handshake s ECDHE/X25519 (případně postkvantovými algoritmy), autentizace certifikátem serveru, data šifrována AES-GCM či ChaCha20-Poly1305.
- SSH: výměna klíčů (Curve25519/X25519), ověřování serveru a uživatele, symetrické šifrování relace.
- PGP/OpenPGP: asymetrické klíče pro sdílení sezení, elektronické podpisy e-mailů.
- Diskové šifrování: AES-XTS pro bloková zařízení; klíče chráněny heslem/KDF nebo TPM.
- VPN (IPsec/WireGuard): IPsec využívá IKE s (EC)DH, datové toky šifruje AES-GCM; WireGuard používá protokol založený na Noise s ChaCha20-Poly1305.
Doporučení pro volbu algoritmů a délek klíčů
- Symetrické: AES-128/256, ChaCha20-Poly1305. Pro dlouhodobé uložení citlivých dat preferovat 256bitové varianty.
- Asymetrické: RSA ≥ 2048 bitů (lépe 3072 a více), ECDSA/Ed25519 (P-256/Ed25519) pro vyšší výkon a kratší klíče.
- Hash: SHA-256/384; vyhýbat se SHA-1.
- KDF: Argon2id (doporučeno), případně scrypt nebo PBKDF2 s vysokým počtem iterací.
- AEAD: preferovat AES-GCM nebo ChaCha20-Poly1305.
Bezpečná implementace a časté chyby
- Nepoužívat vlastní šifry: volit prověřené knihovny (např. s širokým auditovým pokrytím).
- Správná práce s nonce/IV: nikdy je nerecyklovat; zajistit generování kvalitní náhodnosti.
- Side-channel útoky: preferovat konstantně časové implementace; chránit před timingovými a cache útoky.
- Padding a režimy: použít OAEP/PSS, AEAD režimy; vyhnout se ECB a zastaralým šifrovacím schématům.
- Klíčový materiál: bezpečné ukládání (HSM/TPM), omezení přístupu, rotace a revokace klíčů.
- Kryptoagilita: navrhovat systémy s možností snadné změny algoritmů a parametrů.
Srovnání symetrické vs. asymetrické kryptografie
| Vlastnost | Symetrická | Asymetrická |
|---|---|---|
| Počet klíčů | Jeden sdílený | Dvojice (veřejný/soukromý) |
| Výkon | Velmi vysoký | Nižší |
| Distribuce klíčů | Obtížnější | Snazší (veřejný klíč) |
| Podpora podpisů | Ne | Ano |
| Typické použití | Šifrování dat | Výměna klíčů, podpisy, PKI |
Testování, audit a provozní aspekty
- Kryptografické politiky: sjednotit podporované sady šifer a minimální délky klíčů.
- Audit konfigurace: pravidelně ověřovat podporované protokoly (např. TLS konfigurace serverů), vypínat zastaralé algoritmy.
- Logování a monitoring: sledovat revokace certifikátů, expirace a anomálie v průběhu handshake.
- Rotace a expirace: stanovit životní cyklus klíčů a certifikátů; mít připravený plán pro řešení bezpečnostních incidentů.
Závěr
Symetrické algoritmy vynikají výkonem a slouží k efektivní ochraně velkých objemů dat, zatímco asymetrické algoritmy umožňují bezpečné zavedení důvěry, výměnu klíčů a digitální podpisy. Moderní systémy proto využívají hybridní přístup, který kombinuje silné stránky obou světů. Klíčové je dodržovat aktuální doporučení, zvolit správné režimy (AEAD), bezpečně nakládat s klíči, zajistit kryptoagilitu a průběžně revidovat konfigurace i implementace.



























