Šifra – definice, typy, historie a principy šifrování
Šifra – přehled definice, typů, historie a principů šifrování. Poznejte symetrické vs. asymetrické šifry, role klíčů, vývoj kryptografie a praktické příklady použití.
Šifra (nebo šifra) je algoritmus pro šifrování (kódování) nebo dešifrování (dekódování). Jedná se o řadu přesně definovaných kroků, které lze dodržovat jako postup. Zašifrovat nebo zakódovat znamená převést informaci z otevřeného textu do šifry nebo kódu.
V netechnickém použití znamená "šifra" často totéž co "kód", ale v kryptografii se šifry od kódů odlišují. Jeden zdroj z 20. století uvádí toto vysvětlení: šifra je "metoda, v níž je základní jednotkou utajení písmeno. Oproti tomu šifra je způsob utajení, jehož základní jednotkou je slovo". Koncem století se "šifry" v tomto kryptografickém smyslu staly vzácností. Kryptografie 21. století většinou šifruje bitové proudy.
Kódy fungovaly tak, že se nahrazovaly podle rozsáhlé kódové knihy, která spojovala náhodný řetězec znaků nebo čísel se slovem nebo frází. Například "UQJHSE" mohl být kód pro "Pokračujte na následující souřadnice".
Šifra se používá k převodu původní informace ("otevřeného textu") do zašifrované podoby "šifrového textu". Šifrovaná zpráva obsahuje všechny informace z otevřeného textu, ale člověk ani počítač ji nemůže přečíst bez vhodného mechanismu k dešifrování. K zašifrování nebo dešifrování potřebujete "klíč". Při šifrování klíč určuje konkrétní transformaci otevřeného textu na šifrový nebo naopak při dešifrování.
Podle typu použitého klíče se šifry dělí na:
- algoritmy se symetrickým klíčem (kryptografie se soukromým klíčem): pro šifrování a dešifrování se používá stejný klíč a
- algoritmy s asymetrickým klíčem (kryptografie s veřejným klíčem): pro šifrování a dešifrování se používají dva různé klíče.
Slovo šifra je ve francouzštině cifre a ve středověké latině cifra, z arabského sifr, což znamená "nula". V angličtině bylo poprvé použito slovo zero v roce 1598.
Typy šifer a jejich principy
Obecně lze šifry rozdělit podle několika kritérií:
- Podle použití klíče: symetrické (stejný klíč pro šifrování i dešifrování) a asymetrické (pár klíčů – veřejný a soukromý).
- Podle způsobu zpracování dat: blokové šifry (pracují s pevně velikými bloky bitů, např. AES) a proudové šifry (generují klíčový proud, který se kombinuje s otevřeným textem, např. RC4).
- Podle transformace dat: substituční (nahrazování znaků), transpoziční (přesouvání znaků) a jejich kombinace.
- Speciální šifry: jednorázový polštář (one-time pad) – teoreticky nerozluštitelný, pokud je splněno několik podmínek (náhodný klíč stejně dlouhý jako zpráva, použit jednou a bezpečně sdílen).
Principy bezpečného návrhu
Moderní kryptografie se řídí řadou zásad:
- Kerckhoffsovo pravidlo: bezpečnost šifry by měla záviset pouze na tajnosti klíče, ne na utajení algoritmu.
- Dostatečný klíčový prostor: klíč musí být dostatečně dlouhý, aby odolal hrubé síle (brute-force).
- Odolnost vůči kryptanalýze: algoritmus by měl být navržen tak, aby neexistovaly praktické metody pro získání klíče z šifrového textu.
- Správné režimy provozu: u blokových šifer je důležité zvolit vhodný režim (ECB, CBC, GCM apod.), aby se zabránilo leakování informací skrze opakování vzorů.
- Ochrana proti bočním kanálům: implementace musí bránit únikům informací přes časování, spotřebu energie, elektromagnetické emise apod.
Krátká historie
Šifrování provází lidstvo tisíce let: od jednoduchých náhradních tabulek a Caesarovy šifry v antickém Římě přes arabské přínosy (např. al-Kindiho analýza frekvencí) až po komplikované mechanické systémy 20. století, jako byla německá Enigma. V moderní éře přinesl rozvoj počítačů a teorie čísel pokrok v asymetrické kryptografii (např. RSA) a v symetrických standardech (např. AES). Historicky je také zajímavé, že termíny pro čísla a nuly v různých jazycích mají své kořeny v arabštině – viz slovo sifr — což se odráží i v etymologii slova šifra či cifra.
Příklady šifer a algoritmů
- Caesarova šifra: jednoduchá substituce posunem písmen — ukázka základního principu, nyní kryptograficky slabá.
- Vigenèrova šifra: polyalfabetická substituce — historicky silnější než jednoduchá substituce, ale prolomitelná analýzou.
- AES (Advanced Encryption Standard): moderní bloková symetrická šifra používaná v mnoha aplikacích (šifrování disků, TLS apod.).
- RSA: asymetrický systém založený na faktorizaci velkých čísel, využívaný pro šifrování menších bloků dat a pro digitální podpisy.
- One-Time Pad: ideálně bezpečná metoda při splnění podmínek; v praxi však složitá kvůli distribuci náhodných klíčů.
Útoky na šifry a obrana
Mezi nejčastější útoky patří:
- Brute force: procházení všech možných klíčů; obrana = dostatečně dlouhý klíč.
- Kryptanalytické útoky: analýza slabin algoritmu (např. statistická analýza, algebraické útoky).
- Útoky na implementaci: chyby v kódu, slabé náhodné generátory, chyby v režimech provozu.
- Boční kanály: získání informací z fyzických vlastností zařízení při šifrování.
Obrana zahrnuje použití prověřených standardů, pravidelných bezpečnostních auditů, silných náhodných zdrojů a správného řízení klíčů (key management).
Použití šifer dnes
Šifry jsou nezbytné pro bezpečnou komunikaci a ochranu dat: zabezpečení internetových přenosů (TLS/HTTPS), šifrování souborů a disků, zabezpečení e-mailu, autentizace a digitální podpisy, zabezpečení mobilních sítí, kryptoměny a další. Kromě utajení dat se kryptografie používá i pro zajištění integrity a nepopiratelnosti (digitální podpisy).
Budoucnost: kvantová hrozba a postkvantová kryptografie
Vývoj kvantových počítačů může ohrozit některé současné asymetrické algoritmy (např. RSA, ECC) díky Shorovu algoritmu. Proto se vyvíjejí postkvantové algoritmy odolné vůči kvantovým útokům; jde o aktivní oblast výzkumu a standardizace.
Závěrem
Šifra je fundamentální nástroj pro ochranu informací. Rozdíl mezi šifrou a kódem, role klíčů, volba vhodného algoritmu a bezpečná implementace jsou klíčové pro praktické použití. Při návrhu a nasazení kryptografických systémů je důležité řídit se osvědčenými standardy, principy jako Kerckhoffsovo pravidlo a mít na paměti možné útoky i operační rizika spojená s klíčovým managementem.
Související stránky
Otázky a odpovědi
Otázka: Co je to šifra?
Odpověď: Šifra (nebo šifrátor) je algoritmus pro provádění šifrování (kódování) nebo dešifrování (dekódování). Je to řada přesně definovaných kroků, které lze dodržovat jako postup.
Otázka: Jak se šifrují informace?
Odpověď: Zašifrovat nebo zakódovat znamená převést informaci z prostého textu do šifry nebo kódu.
Otázka: Jaký je rozdíl mezi šifrou a kódem?
Odpověď: V netechnickém použití znamená "šifra" často totéž co "kód"; v kryptografii se však šifry od kódů odlišují. Jeden zdroj z 20. století uvádí toto vysvětlení: "Šifra je "metoda, v níž je základní jednotkou utajení písmeno. Oproti tomu šifra je způsob utajení, jehož základní jednotkou je slovo".
Otázka: Jak funguje šifrování?
Odpověď: Šifra se používá k převedení původní informace ("otevřeného textu") do zašifrované podoby "šifrového textu". Šifrovaná zpráva obsahuje všechny informace z otevřeného textu, ale člověk ani počítač ji nemůže přečíst bez vhodného mechanismu k dešifrování. K zašifrování nebo dešifrování potřebujete "klíč". Při šifrování klíč určuje konkrétní transformaci otevřeného textu na šifrový nebo naopak při dešifrování.
Otázka: Jak se dělí šifry podle typu použitého klíče?
Odpověď: Šifry se dělí na algoritmy se symetrickým klíčem (kryptografie se soukromým klíčem): kde se pro šifrování a dešifrování používá stejný klíč; a algoritmy s asymetrickým klíčem (kryptografie s veřejným klíčem): kde se pro šifrování a dešifrování používají dva různé klíče.
Otázka: Odkud pochází slovo "šifra"?
Odpověď: Slovo "šifra" pochází z francouzského cifre a středověkého latinského cifra, z arabského sifr, což znamená "nula". První známé anglické použití slova zero je z roku 1598.
Vyhledávání