Caesarova šifra
Caesarova šifra je podkategorií rozsáhlé kategorie tzv. substitučních šifer.
Obsah |
Princip [editovat]
Princip tohoto šifrování je založen na tom, že každé písmeno zprávy je během šifrování zaměněno za písmeno, které se abecedně nachází o pevně určený počet míst dále.
Počet možných variant klíče této šifry je o jedna menší než počet písmen(znaků) v použité abecedě. Zvolíme-li hodnotu posunu stejnou, jako je počet znaků použité abecedy, bude zašifrovaná zpráva identická s předlohou. Vyšším posunem, například posunem s klíčem o jedna větší, než je počet písmen (znaků) abecedy, dostaneme zašifrovanou zprávu odpovídající prostému posunu o klíč jedna, takže použití klíče hodnoty vyšší než počet znaků abecedy nemá kryptografický význam. V některých pramenech se proto o Caesarových šifrách mluví jako o šifrách aditivních.
Na stejném principu také funguje Vigenèrova šifra, pouze místo jedné šifrové abecedy používá 26 šifrových abeced, čímž dosahuje vyšší kvality šifrování.
Použití [editovat]
Tuto šifru používal pro vojenskou komunikaci Julius Caesar a popsal ji v Zápiscích o válce galské. Caesar používal posun o tři místa, obecně je ale za Caesarovu šifru označováno jakékoli šifrování na principu prostého posunu písmen (znaků) o konstantní hodnotu. I když je tato šifra z dnešního hlediska snadno rozluštitelná a pro jednoduchost šifrování/dešifrování bývá často používána dětmi, Julius Caesar ji s úspěchem používal při svých vojenských taženích. Pro ’vážné’ úkoly se tato šifra dnes neužívá a slouží pouze k školním demonstracím slabin jednoduchých substitučních šifrovacích systémů. Hlavní a neodstranitelnou slabinou této šifry je, že každý konkrétní znak zdrojového textu odpovídá jednomu konkrétnímu znaku šifrovaného textu, tj. např. u klíče číslo 3 písmeno ’A’ zdroje odpovídá vždy písmenu ’D’ šifrované zprávy.
Formální zápis [editovat]
Caesarovu šifru můžeme nadefinovat pomocí Modulární aritmetiky, protože posun písmene o k pozic můžeme zapsat pomocí modula. Pokud si nadefinujeme abecedu jako posloupnost čísel od 0 do 25, kde a=0, b=1, c=2, …, z=25, pak můžeme nadefinovat funkci Posun(o, k), kde o je znak, který se bude šifrovat a k klíč, kterým bude text šifrován, takto: Posun(o, k) = (o + k) mod 26. Funkci Ek(x), která vrátí zašifrovaný text x pomocí klíče k nadefinujeme takto: Ek(x) = Posun(x[i], k) pro všechna i menší nebo rovna než délka vstupního řetězce x, kde x[i] znamená písmeno na i-té pozici. Na popis dešifrování budeme potřebovat funkci PosunZpet(c, k), která posune zašifrované písmeno c zpět o k písmen. Nadefinujeme ji takto: PosunZpet(c, k) = (c - k + 26) mod 26. Dešifrovací funkci pro klíč k a šifrový text x definujeme takto: Dk(x) = PosunZpet(x[i], k) pro všechna i menší nebo rovna než délka vstupního řetězce x.
Příklad šifrování [editovat]
Mějme otevřený text „čas jsou peníze“. Vzhledem ke zvyklostem[zdroj?] v kryptografii odstraníme české znaky: „cas jsou penize“. Volitelně můžeme také odstranit mezery: „casjsoupenize“. Tento připravený text budeme chtít zašifrovat Caesarovou šifrou pomocí klíče „d“, tedy posun o tři písmena. Pokud máme klíč „d“, znamená to, že se písmeno „a“ zobrazí na písmeno „D“, ostatní záměny pak vychází z této. Všechna písmena v otevřeném textu tak posuneme o tři písmena dále v abecedě, vzniknou nám zobrazení: c→F, a→D, s→V, …
casjsoupenize FDVMVRXSHQLCH
Výsledné zašifrované slovo je FDVMVRXSHQLCH, případně FDV MVRX SHQLCH, pokud ponecháme mezery, v pěticích FDVMV RXSHQ LCH.
Luštění [editovat]
Tato šifra je vzhledem k omezenému, nízkému počtu možných klíčů snadno napadnutelná tzv. Útokem hrubou silou, kdy jsou prostě zkoušeny všechny možné varianty klíče. K tomuto způsobu útoku je dobré znát použitou abecedu. Proto někdy bývá školní úloha ztížena použitím například anglického/českého pořadí písmen abecedy. V případech použití neobvyklého pořadí písmen abecedy bývají dobře úspěšné jednoduché metody založené na porovnávání relativní četnosti výskytu písmen(znaků) šifrovaného textu s tabulkou relativní výskytu četnosti písmen v předpokládaném jazyce zdrojové zprávy.
Související články [editovat]
Reference [editovat]
- Kryptografie; Fred Piper, Sean Murphy ISBN 80-7363-074-5
- SINGH, Simon. Kniha kódů a šifer. [s.l.] : Dokořán, 2009. 384 s. ISBN 978-80-7363-268-7.