Přeskočit na obsah

Šifrování

Z Infopedia
Rozbalit box

Obsah boxu

Šablona:Infobox Kryptografie

Šifrování (též kryptografie) je nauka o metodách utajování smyslu zpráv převodem do podoby, která je čitelná pouze se speciální znalostí, tedy s použitím správného klíče. Cílem šifrování je ochrana obsahu dat před neoprávněným přístupem, ať už při jejich přenosu, nebo při uložení. Slovo kryptografie pochází z řečtiny, kde kryptós znamená skrytý a gráphein psát. Kryptologie, širší vědní disciplína, zahrnuje jak kryptografii (tvorbu šifrovacích systémů), tak kryptoanalýzu (luštění zašifrovaných zpráv).

⏳ Historie

Historie šifrování sahá tisíce let do minulosti a vyvíjela se souběžně s potřebou utajovat informace.

  • Starověk – První známé šifry byly jednoduché substituční a transpoziční šifry. Příkladem je Caesarova šifra, pojmenovaná po Juliu Caesarovi, která posouvala písmena v abecedě o pevný počet pozic. Používaly se také dřevěné destičky s vyrytým textem zakrývaným voskem.
  • Středověk a raný novověk – Rozvíjely se složitější šifry, jako je Vigenèrova šifra, která používala heslo pro polyalfabetickou substituci. Kryptografie se stala důležitou pro diplomacii a vojenskou komunikaci.
  • 20. století – S rozvojem technologií se objevily mechanické a elektromechanické šifrovací stroje, například slavná Enigma používaná Německem za druhé světové války. Její prolomení Spojenci mělo zásadní dopad na průběh války. V polovině 70. let 20. století se s rozvojem výpočetní techniky objevila asymetrická kryptografie.
  • Moderní éra – Od druhé poloviny 20. století se šifrování přesunulo do digitální sféry a stalo se klíčovou součástí kybernetické bezpečnosti. Dnes se využívají sofistikované algoritmy a počítače pro zabezpečení komunikace a dat.

⚙️ Principy šifrování

Základní princip šifrování spočívá v transformaci čitelné zprávy (tzv. otevřený text) do nečitelné podoby (tzv. šifrový text) pomocí šifrovacího algoritmu a klíče. Pro dešifrování (získání původního textu ze šifrového textu) je pak nutné použít odpovídající dešifrovací algoritmus a klíč.

  • Otevřený text (plaintext) – Původní, čitelná zpráva nebo data, která mají být zašifrována.
  • Šifrový text (ciphertext) – Nečitelná podoba dat po provedení šifrovacího procesu.
  • Šifrovací algoritmus – Matematický postup nebo soubor pravidel, který definuje, jak se otevřený text transformuje na šifrový text.
  • Klíč – Tajná informace (číslo, řetězec znaků), která je vstupem do šifrovacího a dešifrovacího algoritmu a určuje konkrétní transformaci. Bez znalosti správného klíče je dešifrování šifrového textu prakticky nemožné.
  • Šifra – Dvojice algoritmů (šifrovací a dešifrovací), které realizují transformaci dat.

🔑 Typy šifrování

Šifrování se dělí na několik základních typů podle způsobu použití klíčů.

Symetrické šifrování

Symetrické šifrování (také nazývané šifrování s tajným klíčem) je typ šifrovacího algoritmu, který používá jediný klíč pro šifrování i dešifrování. Odesílatel a příjemce si musí tento tajný klíč předem bezpečně vyměnit.

  • Výhody: Rychlost a nižší výpočetní náročnost, což je ideální pro šifrování velkých objemů dat.
  • Nevýhody: Hlavním problémem je bezpečná distribuce klíče. Pokud klíč padne do nepovolaných rukou, je celá komunikace kompromitována. Složitost správy klíčů roste s počtem komunikujících stran.
  • Příklady algoritmů:
   *   AES (Advanced Encryption Standard) – Nejpoužívanější symetrická bloková šifra, mezinárodní standard. Zpracovává data v blocích o velikosti 128 bitů a používá klíče o délce 128, 192 nebo 256 bitů.
   *   DES (Data Encryption Standard) – Starší standard z 70. let, dnes považovaný za prolomitelný kvůli krátké délce klíče.
   *   Triple DES (3DES) – Vylepšená verze DES, která používá DES třikrát za sebou, čímž zvyšuje bezpečnost.
   *   Blowfish a Twofish – Další blokové šifry.
   *   RC4 – Proudová šifra, která transformuje text po jednotlivých znacích.

Asymetrické šifrování

Asymetrické šifrování (také nazývané kryptografie s veřejným klíčem) používá dvojici klíčů – veřejný a soukromý.

  • Veřejný klíč – Může být volně šířen a používá se k šifrování zpráv nebo k ověřování digitálních podpisů.
  • Soukromý (privátní) klíč – Musí být držen v tajnosti a používá se k dešifrování zpráv zašifrovaných odpovídajícím veřejným klíčem, nebo k vytváření digitálních podpisů.
  • Výhody: Řeší problém distribuce klíčů u symetrického šifrování, protože veřejný klíč může být zveřejněn bez obav z kompromitace. Umožňuje také digitální podpisy a ověřování identity.
  • Nevýhody: Je výpočetně výrazně náročnější a pomalejší než symetrické šifrování, proto se často používá pro výměnu symetrických klíčů, nikoliv pro přímé šifrování velkých objemů dat.
  • Příklady algoritmů:
   *   RSA – Jeden z prvních a nejrozšířenějších algoritmů asymetrického šifrování, vznikl v roce 1977. Jeho bezpečnost je založena na obtížnosti faktorizace velkých čísel na součin prvočísel.
   *   ElGamal – Šifrovací a podpisové schéma založené na problému diskrétního logaritmu.
   *   Diffie-Hellman – Protokol pro bezpečnou výměnu symetrických klíčů přes nezabezpečený kanál.
   *   Kryptografie eliptických křivek (ECC) – Modernější varianta, která poskytuje stejnou úroveň bezpečnosti s kratšími klíči a menší výpočetní náročností ve srovnání s RSA.
   *   DSA (Digital Signature Algorithm) – Používá se výhradně pro digitální podpisy.

Hašování (Hashovací funkce)

Hašovací funkce je jednosměrná matematická funkce, která transformuje vstupní data libovolné velikosti na řetězec znaků pevné délky, nazývaný hash nebo digitální otisk. Z hashe nelze zpětně získat původní data.

  • Vlastnosti:
   *   Jednosměrnost: Z hashe nelze rekonstruovat původní data.
   *   Odolnost proti kolizím: Je výpočetně nemožné nalézt dvě různá vstupní data, která by vygenerovala stejný hash.
   *   Determinističnost: Stejný vstup vždy vygeneruje stejný hash.
  • Použití:
   *   Ověřování integrity dat: Pomocí hashe lze ověřit, zda data nebyla během přenosu nebo uložení pozměněna.
   *   Ukládání hesel: Hesla se v databázích ukládají jako hashe, nikoliv v čitelné podobě, což chrání uživatele v případě úniku dat.
   *   Digitální podpisy: Hash dokumentu je zašifrován soukromým klíčem, čímž vzniká digitální podpis, který ověřuje autenticitu a integritu dokumentu.
   *   Kryptoměny: Hashe jsou základem blockchain technologie.
  • Příklady algoritmů:
   *   SHA-256 a SHA-3 (Secure Hash Algorithm) – Moderní a bezpečné hašovací funkce.
   *   MD5 – Starší hašovací funkce, dnes považovaná za nezabezpečenou kvůli známým zranitelnostem a možnosti kolizí.

🛡️ Použití a aplikace

Šifrování je dnes nezbytnou součástí digitálního světa a nachází uplatnění v mnoha oblastech:

  • Zabezpečená komunikace:
   *   HTTPS – Protokol pro zabezpečenou komunikaci na internetu, používaný pro internetové bankovnictví, e-commerce a další citlivé transakce. Využívá TLS/SSL protokoly.
   *   End-to-end šifrování (E2EE) – Zprávy jsou šifrovány na straně odesílatele a dešifrovány až na straně příjemce, což zajišťuje důvěrnost komunikace (např. WhatsApp, Signal).
   *   VPN (Virtual Private Network) – Zabezpečuje internetové připojení vytvořením šifrovaného tunelu.
  • Ochrana dat:
   *   Šifrování disku – Chrání data uložená na pevném disku, USB flash discích nebo cloudových úložištích před neoprávněným přístupem v případě ztráty nebo krádeže zařízení. Příkladem jsou technologie jako BitLocker (Windows) nebo FileVault (macOS).
   *   Šifrování databází – Chrání citlivé informace uložené v databázích, jako jsou hesla nebo osobní údaje.
  • Digitální identita a autentizace:
   *   Digitální podpis – Zajišťuje autenticitu a integritu elektronických dokumentů a zpráv, prokazuje jejich původ a zabraňuje jejich falšování.
   *   Digitální certifikát – Ověřuje identitu uživatelů a serverů v online prostředí, často se používá v kombinaci s asymetrickým šifrováním.
  • Kryptoměny: Šifrování je základem technologie blockchain a zajišťuje bezpečnost transakcí (např. Bitcoin).

🚨 Bezpečnostní aspekty

I přes svou robustnost není šifrování zcela imunní vůči útokům a zranitelnostem.

  • Útoky hrubou silou (brute-force attacks): Spožívají v systematickém zkoušení všech možných klíčů. Délka klíče je proto kritická pro odolnost šifry.
  • Kryptoanalýza: Vědní obor zabývající se prolomením šifrovaných zpráv bez znalosti klíče.
  • Útoky postranními kanály: Zneužívají informace unikající z kryptografických implementací, jako je spotřeba energie, časová náročnost operací nebo elektromagnetické záření.
  • Zranitelnosti algoritmů: Některé dříve bezpečné algoritmy (např. DES, MD5, SHA-1) byly časem prolomeny nebo oslabeny s rostoucím výpočetním výkonem.
  • Správa klíčů: Ztráta nebo kompromitace šifrovacího klíče znamená ztrátu přístupu k zašifrovaným datům nebo možnost jejich zneužití.
  • Downgrade útoky: Útočník donutí systém použít starší, zranitelnější protokol, aby mohl data dešifrovat.

🔮 Budoucnost šifrování

Budoucnost šifrování je úzce spjata s vývojem kvantových počítačů.

  • Kvantová hrozba: Současné asymetrické šifrovací algoritmy, jako RSA a ECC, by mohly být prolomeny výkonnými kvantovými počítači během několika minut, což by ohrozilo většinu online komunikace a zabezpečení dat. Symetrické šifry, jako AES, budou oslabeny, ale pravděpodobně odolnější proti kvantovým útokům.
  • "Harvest Now, Decrypt Later": Útočníci již dnes sbírají šifrovaná data a ukládají je s očekáváním, že je v budoucnu dešifrují pomocí kvantových počítačů.
  • Postkvantová kryptografie (PQC): Výzkum se zaměřuje na vývoj nových kryptografických algoritmů, které budou odolné proti útokům kvantových počítačů. Americký NIST (Národní institut pro standardy a technologie) aktivně pracuje na výběru a standardizaci takových algoritmů.
  • Hybridní šifrování: Cílem je používat kombinované, hybridní šifrování, které by data kódovalo jak klasicky, tak postkvantově, pro zajištění maximální bezpečnosti během přechodného období.
  • Kvantová distribuce klíčů (QKD): Technologie využívající principy kvantové fyziky k bezpečné výměně šifrovacích klíčů, kde jakýkoli pokus o odposlech lze okamžitě detekovat. Je však technologicky náročná.

👶 Pro laiky

Představte si šifrování jako tajný jazyk nebo zámek na vaší zprávě. Když chcete poslat kamarádovi zprávu, kterou by nikdo jiný neměl přečíst, napíšete ji normálně (to je "otevřený text"). Pak ji ale "zašifrujete" – to znamená, že ji přepíšete do podoby, která vypadá jako nesmysl, nebo ji zamknete do speciálního trezoru. K tomu potřebujete "klíč". Když používáte stejný klíč pro zamknutí i odemknutí (jako u obyčejného visacího zámku), říká se tomu symetrické šifrování. Je to rychlé, ale musíte si s kamarádem klíč předat tak, aby ho nikdo neviděl. Když máte dva klíče – jeden "veřejný" (ten může znát každý) a druhý "soukromý" (ten znáte jen vy), říká se tomu asymetrické šifrování. Kamarád použije váš veřejný klíč, aby zprávu zamknul, a pošle vám ji. Jen vy ji pak můžete odemknout svým soukromým klíčem. To je skvělé, protože si nemusíte předávat tajný klíč! A pak je tu ještě "hašování". To je jako digitální otisk prstu. Vezmete zprávu a uděláte z ní krátký kód. Z toho kódu už nejde zprávu vrátit zpátky (proto je to "jednosměrné"). Ale když někdo zprávu změní, otisk prstu se hned změní taky, a vy víte, že s ní bylo manipulováno. To se hodí třeba pro ukládání hesel – webová stránka si uloží jen otisk vašeho hesla, ne heslo samotné. Celé šifrování je jako velká matematická hra na schovávanou, která chrání vaše tajemství v digitálním světě.