Asymetrické šifrování vysvětleno za 5 minut nebo méně

Photo of author

By etechblogcz

Data představují cenný zdroj, avšak v nesprávných rukou mohou způsobit škody jednotlivcům, třetím stranám i celým organizacím.

Proto existuje šifrování, které je nástrojem pro ochranu dat při jejich ukládání nebo přenosu přes internet.

V tomto článku se blíže zaměříme na asymetrické šifrování.

Začněme tedy.

Co je to šifrování?

Šifrování je proces, při kterém se data transformují do formátu, který je obtížně čitelný (tzv. šifrovaný text). Tento proces se opírá o sofistikované šifrovací algoritmy.

V podstatě jde o to, aby počítače data zakódovaly pro bezpečné uložení nebo přenos. To také znamená, že k těmto datům mají přístup pouze oprávněné osoby.

Základem šifrování jsou kryptografické klíče, což jsou matematicky generované sekvence vytvořené na základě specifických parametrů šifrování, na nichž se dohodne odesílatel a příjemce.

Uveďme si příklad jednoduchého šifrování.

Představme si, že vy, nazvěme vás třeba Bob, chcete poslat zprávu Johnovi, vašemu kamarádovi z internetu, který má rád šifrované texty.

Bob napíše zprávu a data následně podrobí procesu „šifrování“. Použitý šifrovací algoritmus je zde velmi jednoduchý: Bob posune hodnotu každého znaku ASCII o 4 pozice dopředu, čímž vznikne šifrovaný text.

Například hodnota ASCII písmene „A“ je 65, po posunutí o 4 pozice se z ní stane 69, což odpovídá písmenu „E“. Dle této jednoduché metody Bob vytvoří šifrovanou zprávu a odešle ji Johnovi.

Protože se John a Bob předem dohodli na způsobu šifrování i dešifrování, mohou si bezpečně posílat zprávy.

Pokud tedy Bob napíše „Ahoj, Johne“, jeho šifrovaný text bude vypadat jako „LIPPS0$NRLR“.

Opačný proces, kdy se zpráva převede zpět do čitelné podoby, se nazývá dešifrování.

Pro lepší pochopení se můžete podívat na tabulku ASCII.

Přečtěte si také: Nejlepší převodníky textu na ASCII, které byste měli vyzkoušet

Co je to asymetrické šifrování?

Asymetrické šifrování, známé také jako kryptografie s veřejným klíčem, využívá k šifrování a dešifrování zpráv dvě různé sady klíčů:

  • Veřejný klíč: Slouží k zašifrování zpráv.
  • Soukromý klíč: Slouží k dešifrování zpráv. Tento klíč je tajný a neměl by být sdílen s nikým jiným.

Jak tedy asymetrické šifrování funguje?

Vraťme se k Bobovi a Johnovi z našeho předešlého příkladu.

Bob si uvědomil, že jeho dosavadní metoda posílání šifrovaných zpráv Johnovi není příliš bezpečná. Každý by totiž mohl snadno prolomit šifrování hrubou silou.

Proto se rozhodl použít asymetrické šifrování pro posílání zpráv Johnovi.

V tomto případě si Bob nejprve vyžádá Johnův veřejný klíč. Pokud se s Johnem znají osobně, může se ho zeptat přímo.

Jinak existuje adresář veřejných klíčů (PKD), kde se mohou uživatelé registrovat a sdílet své veřejné klíče. Kdokoli chce odeslat zabezpečenou zprávu, musí takto získat veřejný klíč příjemce.

Bob nyní může použít asymetrické šifrování k zašifrování zprávy pomocí Johnova veřejného klíče.

John po obdržení zprávy použije svůj soukromý klíč k jejímu dešifrování.

Je také možné použít postup obráceně. To znamená, že data mohou být zašifrována pomocí soukromého klíče a dešifrována pomocí veřejného klíče.

Pokud Bob zašifruje zprávu svým soukromým klíčem, John ji může dešifrovat pomocí Bobova veřejného klíče!

Asymetrické šifrování funguje díky tomu, že k jeho provedení je potřeba mít přístup ke dvěma klíčům. To je zásadní rozdíl oproti symetrickému šifrování, které k šifrování i dešifrování používá pouze jeden klíč.

Jak funguje asymetrická kryptografie?

Pro hlubší pochopení principu asymetrické kryptografie je potřeba se podívat na její fungování krok za krokem.

Základní proces je silně ovlivněn použitým algoritmem, který využívá matematické funkce k vytvoření páru klíčů.

Samotný proces generování klíčů se však může lišit v závislosti na dohodě mezi odesílatelem a příjemcem.

Většina moderních nástrojů a programovacích jazyků nabízí hotové knihovny pro kryptografii. Pokud se tedy rozhodnete implementovat asymetrickou kryptografii, je vhodné použít tyto knihovny a neplýtvat časem vymýšlením vlastních řešení.

Obvyklý postup, když se někdo rozhodne poslat šifrovanou zprávu, je následující:

➡️ Odesílatel i příjemce vygenerují veřejný a soukromý klíč na základě předem dohodnutých parametrů.

➡️ Odesílatel vyhledá veřejný klíč příjemce v adresáři veřejných klíčů.

➡️ Pomocí získaného veřejného klíče odesílatel zašifruje zprávu.

➡️ Zašifrovaná zpráva je odeslána příjemci, který ji dešifruje svým soukromým klíčem.

➡️ Příjemce může na zprávu odpovědět a proces se opakuje, pouze v obráceném směru.

Výhody asymetrického šifrování

Asymetrické šifrování nabízí řadu výhod:

  • Autentizace zprávy: Asymetrické šifrování zajišťuje velmi dobrou autentizaci zprávy, což umožňuje ověřit zprávu i jejího odesílatele. Digitální podpisy jsou typickým příkladem využití asymetrické kryptografie.
  • Snadná implementace: Implementace asymetrického šifrování je jednoduchá díky snadné distribuci klíčů. Veřejné klíče jsou volně dostupné, takže odesílatelé mohou jednoduše zašifrovat zprávu pomocí veřejného klíče příjemce. Příjemce pak zprávu dešifruje pomocí svého soukromého klíče.
  • Detekce manipulace: Asymetrická kryptografie dokáže detekovat jakékoli manipulace se zprávou během jejího přenosu.
  • Nezapírání odeslání: Funguje podobně jako podepsané fyzické dokumenty, což znemožňuje odesílateli popřít, že zprávu odeslal.

Dále se podíváme na nevýhody asymetrického šifrování.

Nevýhody asymetrického šifrování

Mezi nevýhody asymetrického šifrování patří:

  • Pomalost: Asymetrické šifrování je relativně pomalé, a proto není ideální pro přenos velkého objemu dat.
  • Neověřené veřejné klíče: V tomto systému jsou veřejné klíče volně dostupné, avšak není žádný způsob, jak ověřit pravost veřejného klíče a jeho spojení s konkrétní osobou. Uživatelé si tak musí sami ověřovat pravost klíčů.
  • Neobnovitelný soukromý klíč: Pokud je soukromý klíč ztracen, nelze ho obnovit a šifrované zprávy již nelze nikdy dešifrovat.
  • Ohrožení bezpečnosti při úniku soukromého klíče: Pokud dojde k úniku soukromého klíče, může to ohrozit bezpečnost a vést k úniku dat.

Nyní si rozebereme praktické případy využití asymetrického šifrování.

Příklady použití asymetrického šifrování

#1. Digitální podpisy

Digitální podpisy se dnes používají velmi často. Většinou se používá algoritmus RSA (Rivest-Shamir-Adleman), který generuje dva matematicky propojené klíče: veřejný a soukromý. Digitální podpis se vytváří pomocí soukromého klíče a ověřuje se pomocí veřejného klíče podepisujícího.

#2. Šifrovaný e-mail

E-maily lze bezpečně odesílat přes internet. Obsah e-mailu je zašifrován pomocí veřejného klíče a dešifrován soukromým klíčem.

#3. SSL/TLS

SSL/TLS je zabezpečený protokol pro komunikaci po síti. Využívá symetrické i asymetrické šifrování k vytvoření bezpečného spojení mezi odesílatelem a příjemcem.

Ve většině případů se používá symetrické šifrování. Nicméně asymetrická kryptografie může být nezbytná, když obě strany generují své relace klíče. Poté je potřeba ověřit identitu původního serveru pomocí asymetrického šifrování.

#4. Kryptoměny

Jedním z nejběžnějších případů využití asymetrické kryptografie jsou kryptoměny. Veřejný a soukromý klíč se zde používají k šifrování transakcí.

Kryptografie s veřejným klíčem se dobře hodí pro kryptoměny, protože veřejný klíč je k dispozici pro sdílení, zatímco soukromé klíče se používají k odemykání transakcí a příjmu kryptoměn. Například bitcoin využívá právě asymetrické šifrování.

#5. Šifrované procházení internetu

Prohlížeče mohou také používat asymetrické šifrování k zabezpečení dat během přenosu. Když například otevřete webovou stránku, v adresním řádku uvidíte protokol HTTPS. Písmeno „s“ znamená, že se jedná o zabezpečené připojení. K dosažení tohoto připojení prohlížeč komunikuje se serverem, aby se obě strany domluvily, jakým způsobem se data zašifrují.

Prohlížeče mohou k zahájení bezpečného připojení používat symetrické i asymetrické šifrování. Asymetrické šifrování usnadňuje vytvoření bezpečného spojení.

V reálných situacích jsou prohlížeče dostatečně inteligentní na to, aby k zajištění bezpečného připojení používaly oba typy šifrování.

#6. Sdílení klíčů pro kryptografii symetrických klíčů

Asymetrické šifrování se také využívá pro bezpečné sdílení symetrických klíčů v rámci spojení.

Symetrické vs. Asymetrické šifrování

Následující tabulka shrnuje rozdíly mezi symetrickým a asymetrickým šifrováním.

Asymetrické šifrování Symetrické šifrování
Klíče Vyžaduje dva klíče. Veřejný klíč šifruje, soukromý klíč dešifruje. Možný je i opačný postup. Vyžaduje pouze jeden klíč, který slouží k šifrování i dešifrování.
Velikost šifrovaného textu Šifrovaný text je obvykle stejně dlouhý nebo delší než původní zpráva. Šifrovaný text bývá stejně dlouhý nebo kratší než původní zpráva.
Rychlost a efektivita Proces šifrování je pomalejší ve srovnání se symetrickým šifrováním. Proto není vhodné pro přenos velkých objemů dat. Proces šifrování je rychlejší než u asymetrického šifrování. Je tedy efektivnější pro přenos velkého množství dat.
Algoritmy Mezi nejznámější algoritmy asymetrického šifrování patří RSA, ECC, EL, Gamal, Diffie-Hellman. Mezi nejznámější algoritmy symetrického šifrování patří RC4, DES, 3DES a AES.
Velikosti klíčů Délka klíčů bývá 2048 bitů nebo více. Délka klíčů bývá 128 nebo 256 bitů.
Účel Asymetrické šifrování se používá pro šifrování dat, autentizaci a vytváření bezpečných spojení. Symetrické šifrování se většinou používá pro hromadný přenos dat.

Kdy použít asymetrické šifrování?

Asymetrické šifrování je vhodné použít v následujících situacích:

  • Pokud chcete zabezpečený způsob šifrování a odesílání zpráv.
  • Pokud odesíláte menší objemy dat, protože asymetrické šifrování je pomalejší a nevhodné pro přenosy velkých souborů.
  • Pokud potřebujete zajistit platnost digitálních podpisů.
  • Při práci s kryptoměnami a potřebě autorizovat transakce s ověřením identity.

Závěrečná slova

Asymetrické šifrování je klíčové pro různé moderní technologie. Najdete ho v mnoha aplikacích, od TLS/SSL protokolů až po ověřování digitálních podpisů.

Díky dostupným kryptografickým knihovnám můžete rychle implementovat asymetrickou kryptografii ve vámi preferovaném nástroji a programovacím jazyce. Není potřeba vynalézat již vymyšlené a implementovat asymetrickou kryptografii od začátku.

Dále se můžete podívat na podrobný článek o symetrickém šifrování.