(Prof. Ing. Dušan Levický, CSc., je profesorem na Katedře elektroniky a multimediálních telekomunikací Technické univerzity v Košicích.)
Kryptografie prošla vývojem od časů Julia Ceasara (Ceasarova šifra) přes různé neprolomitelné šifry ve středověku k mechanickým šifrám jako byla např. Enigma. Moderní kryptografie je stimulována zejména rozvojem matematiky, teorií informace a rozvojem informačních a komunikačních technologií.
Stala se moderní vědou s praktickým dopadem na ochranu soukromí, na bezpečnost elektronických systémů a na bezpečnost elektronické komunikace. Významnými aplikacemi kryptografie je oblast informační a síťové bezpečnosti, elektronické pošty, digitální televize, elektronického obchodu a bankovnictví a oblast elektronického vzdělávání.
Přenos zpráv už v nejstarších dobách přinesl potřebu vybudovat bezpečnou komunikaci, která by umožnila utajení zprávy, resp. samotné komunikace. Z toho důvodu se vyvinuly metody utajené komunikace, steganografie a kryptografie.
Steganografie využívá metody utajení komunikace ukrytím zprávy tak, že utajený přenos zprávy probíhá v pozadí neutajené komunikace.
Kryptografie nemá za cíl utajit existenci tajné zprávy, resp. utajit komunikaci, jejím cílem je utajit obsah zprávy metodami šifrování.
Co je to šifrování
Proces úpravy zprávy, který zabezpečuje utajení jejího obsahu, se nazývá šifrování. Vysílaná zpráva, která má obvykle formu textu, se nazývá otevřený text (plaintext). Výsledkem šifrování je zašifrovaná zpráva, resp. zašifrovaný text (ciphertext). Šifrování je tedy proces konverze otevřeného textu na zašifrovaný text. Dešifrování (deciphering, decryption) je proces získání otevřeného textu z přijatého zašifrovaného textu. Technika utajování obsahu zprávy se nazývá kryptografie. Systémy, resp. prostředky pro šifrování se nazývají kryptografické systémy nebo jednoduše šifry.
Technika luštění zašifrovaného textu s cílem získání otevřeného textu se nazývá kryptoanalýza. Oblast, která zahrnuje kryptografii a kryptoanalýzu se nazývá kryptologie.
Princip konvenčního šifrování
Klasické, resp. konvenční kryptografické systémy používají pro šifrování a dešifrování stejný tajný klíč, proto se také označují jako kryptografické systémy s tajným klíčem. Šifrování v těchto kryptografických systémech se označuje jako symetrické šifrování nebo šifrování s jedním klíčem (single key encryption).
Princip konvenčního šifrování je znázorněn na obrázku v galerii.
Symetrické šifrování zahrnuje pět složek:
1. Otevřený text je zpráva, resp. data, která představují vstup kryptografického systému, resp. jsou to vstupní data pro šifrovací algoritmus.
2. Šifrovací algoritmus je algoritmus, který realizuje šifrování, tj. transformaci otevřeného textu na zašifrovaný text s využitím kryptografických technik, např. substituce a permutace.
3. Tajný klíč je rovněž vstupem kryptografického systému a nezávisí na otevřeném textu. Tajný klíč určuje konkrétní tvar transformace otevřeného textu na zašifrovaný text.
4. Zašifrovaný text představuje výstup šifrovacího algoritmu. Je jednoznačně určen otevřeným textem a tajným klíčem. Pro daný otevřený text dva různé tajné klíče produkují dva různé zašifrované texty.
5. Dešifrovací algoritmus realizuje proces získání otevřeného textu z přijatého zašifrovaného textu s využitím stejného tajného klíče, který byl použit při šifrování.
Vzhledem k tomu, že šifrovací algoritmy nelze úspěšně dlouhodobě utajovat, je bezpečnost konvenčního šifrování postavena výlučně na utajení klíče.
Kryptografické systémy a jejich operace
Kryptografické systémy, resp. šifrovací algoritmy využívají 2 základní typy operací:
1. Substituci, která nahrazuje každý prvek otevřeného textu (bit, písmeno, skupinu bitů a písmen) jiným prvkem otevřeného textu, tyto nové prvky zůstávají na místě původních prvků. Adresát musí k získání otevřeného textu použít inverzní substituci.
2. Transpozici, přeuspořádání prvků otevřeného textu podle určitého pravidla, např. permutací. Adresát musí k získání otevřeného textu použít inverzní transpozici.
Ve zjednodušené podobě můžeme hovořit o substitučních a transpozičních šifrách. Základním požadavkem na operace při šifrování je, aby se při jejich aplikaci neztratila žádná informace, tj. musí být invertibilní.
Z hlediska počtu a typů klíčů lze kryptografické systémy rozdělit na kryptografické systémy s tajným klíčem a kryptografické systémy s veřejným klíčem.
Kryptografické systémy s tajným klíčem
Tyto systémy používají stejný klíč pro šifrování i dešifrování a označují se také jako symetrické, resp. konvenční kryptografické systémy. Bezpečnost těchto systémů spočívá v utajení klíče, který si musí odesílatel i adresát vyměnit před samotnou komunikací, což představuje určitou nevýhodu z hlediska pohotovosti komunikace.
Kryptografické systémy s veřejným klíčem
Takové systémy používají jiný klíč pro šifrování a jiný klíč k dešifrování, tedy používají veřejný a soukromý klíč. Šifrovací klíč je tzv. veřejný klíč, dešifrovací klíč je soukromý klíč a je známý pouze adresátovi.
Kryptografické systémy s veřejným klíčem se označují také jako nesymetrické kryptografické systémy a jejich bezpečnost je založena na matematické složitosti určení soukromého klíče ze známého veřejného klíče.
Podle způsobu zpracování otevřeného textu mohou šifrovací algoritmy využívat dva základní režimy:
1. Blokový režim je základem blokových šifer (block ciphers), které zpracovávají otevřený text po skupinách prvků. Výstupem je blok zašifrovaného textu, který má obvykle stejnou velikost jako blok otevřeného textu.
2. Proudový režim je základem proudových šifer (stream ciphers), které zpracovávají otevřený text průběžně po jednotlivých prvcích. Každému prvku otevřeného textu tedy odpovídá jeden prvek zašifrovaného textu.
Bezpečnost algoritmů = schopnost odolat rozluštění (prolomení)
Absolutně bezpečný kryptografický algoritmus se vyznačuje tím, že kryptoanalytik nebude schopen získat otevřený text ani tehdy, kdy má k dispozici neomezené množství zašifrovaného textu a neomezenou výpočetní kapacitu. Toto hledisko splňuje pouze algoritmus s jednorázovým klíčem (one-time pad), který je pro praktické použití málo používán. V praxi se bezpečnost kryptografických algoritmů proto obvykle posuzuje podle toho, kolik úsilí je třeba vynaložit na jejich prolomení.
Z praktického hlediska by měl kryptografický algoritmus splnit jednu, resp. obě následující podmínky:
- náklady potřebné k prolomení šifrovacího algoritmu jsou vyšší než hodnota zašifrovaných dat
- doba potřebná k prolomení algoritmu je větší než doba, během níž se musí zašifrovaná data utajovat. Uvedené aspekty zohledňují tzv. praktickou bezpečnost kryptografických algoritmů, které lze charakterizovat jako výpočetně bezpečné.
Tyto algoritmy se považují za silné, pokud nemohou být prolomeny použitím současných, resp. v blízké budoucnosti dostupných prostředků na luštění.
Líbí se Vám naše články? Nezmeškejte už ani jeden z nich! Nemusíte se o nic starat, my zajistíme doručení až k Vám.