Existuje mnoho různých částí kryptografie. Pokud však chcete zašifrovat některá data, můžete použít dva typy algoritmů: symetrické šifrovací algoritmy a asymetrické šifrovací algoritmy. Koncept je stejný: mohou šifrovat data, ale pracují na jiných principech a mají jiné případy použití.
Titulární rozdíl však popisuje šifrovací klíče. Symetrický šifrovací algoritmus používá k šifrování a dešifrování dat jeden sdílený klíč. Asymetrický šifrovací algoritmus používá dva propojené klíče, jeden k dešifrování a druhý k dešifrování.
Terminologie
Asymetrické šifrovací algoritmy se spoléhají na použití dvou odlišných klíčů. Jeden klíč lze použít k šifrování dat a druhý k dešifrování. Dva šifrovací klíče nejsou jen nějaké staré dvě hodnoty. Jsou vnitřně příbuzné a musí být generovány algoritmem generování klíčů.
Alternativní název pro asymetrické šifrování je šifrování veřejným klíčem. Důvodem je, že jeden ze dvou klíčů je veřejný. Tradiční koncept spočívá v tom, že šifrovací klíč je veřejně sdílen a dešifrovací klíč je přísně soukromý. Z tohoto důvodu je šifrovací klíč označován jako veřejný klíč a dešifrovací klíč je soukromý klíč.
Tato konfigurace umožňuje komukoli zašifrovat zprávu, takže ji může dešifrovat pouze vlastník soukromého klíče. To je užitečné, protože kdokoli může bezpečně komunikovat s určeným příjemcem pomocí jediného zveřejněného šifrovacího klíče. Pro bezpečnou zpětnou komunikaci by příjemce musel použít veřejný klíč původního odesílatele.
Teoreticky neexistuje žádný důvod, proč byste si nemohli vyměnit klíče a sdílet dešifrovací klíč a přitom zachovat šifrovací klíč v soukromí. To by mohlo být použito k ověření pravosti zdroje, pokud neposkytne nějaké smysluplné zabezpečení. To se však v praxi nedělá, protože existují jiné mechanismy k dosažení stejného výsledku.
Vlastnosti symetrických šifrovacích algoritmů
Asymetrické šifrovací algoritmy vyžadují použití mnohem větších klíčů než symetrické šifrovací algoritmy, když poskytují stejnou úroveň zabezpečení. Obecně je symetrický šifrovací algoritmus se 128bitovým šifrovacím klíčem považován za bezpečný, i když preferovány jsou 256bitové klíče. V asymetrickém šifrovacím algoritmu jsou 2048bitové klíče považovány za bezpečné.
Příklad 2048bitového klíče platí pro RSA, který je již dlouho standardem pro asymetrické šifrování. Kryptografie eliptických křivek je však novější koncept, který je také asymetrický, ale používá výrazně menší klíče. 2048bitový klíč RSA nabízí ekvivalentní zabezpečení jako 224bitový klíč s eliptickou křivkou.
Spropitné: Výše uvedené hodnoty jsou považovány za bezpečné pro komerční použití, ale NSA vyžaduje silnější klíče pro přísně tajné šifrování. Jsou zapotřebí klíče RSA o délce alespoň 3072 bitů, zatímco klíče s 384bitovými eliptickými křivkami jsou nezbytné. Stojí za zmínku, že 3072bitový klíč RSA je slabší než 384bitový klíč eliptické křivky.
Asymetrické šifrovací algoritmy bývají relativně pomalé ve srovnání se symetrickými šifrovacími algoritmy. Bezpečnou komunikaci lze provádět přes nezabezpečený kanál, pokud obě strany vygenerují pár asymetrických klíčů a poté si vymění veřejné klíče. Tímto způsobem mohou obě strany posílat zprávy, které může dešifrovat pouze druhá strana.
V praxi musí alespoň jedna ze stran ověřit integritu svého veřejného klíče. To se provádí prostřednictvím PKI nebo infrastruktury veřejného klíče. To má podobu certifikačních autorit, které podepisují klíče ostatních, aby prokázaly, že jejich identita byla ověřena. V tomto systému musí být důvěryhodné všechny certifikační autority; bez toho se systém rozpadne.
Použití v praxi
Asymetrické šifrovací algoritmy se obvykle nepoužívají pro hromadné šifrování, zejména pokud je problémem čas nebo výkon. Mohou být použity k šifrování jednorázových zpráv, jako je obsah e-mailu. Jejich schopnost zabezpečit nezabezpečený kanál z nich však dělá vynikající volbu pro protokol výměny klíčů, který přenáší symetrické klíče, které lze následně použít pro efektivnější hromadné šifrování.
Toto je případ použití v TLS, který poskytuje zabezpečení v HTTPS. Uživatel se připojí k webovému serveru; poté si vyměňují veřejné klíče, aby si navzájem zašifrovali malé zprávy. Server poté vygeneruje symetrický klíč, zašifruje jej veřejným klíčem uživatele a odešle mu jej. Uživatel dešifruje klíč a poté může použít symetrický klíč k efektivnímu šifrování budoucí komunikace se serverem.
Certifikační autorita ve výše uvedeném procesu ověří veřejný klíč serveru. To umožňuje uživateli mít jistotu, že komunikuje s tím, s kým se snaží komunikovat. Ve většině případů uživatel vygeneruje klíč na jedno použití, protože server nemusí ověřovat, se kterým uživatelem komunikuje.
Závěr
Asymetrické šifrovací algoritmy využívají dva odlišné klíče. Jeden klíč se používá pro šifrování a druhý pro dešifrování. Klíče jsou matematicky propojeny a musí být generovány algoritmem generování klíčů; náhodné hodnoty nefungují. Šifrovací klíč je obvykle sdílen veřejně, což umožňuje komukoli zašifrovat zprávu určenou pro vlastníka páru klíčů.
Dokud dešifrovací klíč zůstane soukromý, může zprávy zašifrované veřejným klíčem dešifrovat pouze vlastník klíče. Asymetrické šifrování se jako takové často také nazývá kryptografie s veřejným klíčem.