Caesarova šifra

Z Wikipedie, otevřené encyklopedie
Caesarova šifra spočívá v posunu každého písmena o pevný počet pozic v abecedě. Obrázek ukazuje posun o tři pozice a je v něm zvýrazněno zakódování (zašifrování) písmene B do znaku E.

Caesarova šifra je v kryptografii označení pro celou skupinu substitučních šifer.[1]

Princip Caesarovy šifry[editovat | editovat zdroj]

Princip Caesarovy šifry je založen na tom, že všechna písmena zprávy jsou během šifrování zaměněna za písmeno, které se abecedně nachází o pevně určený počet míst dále (tj. posun je pevně zvolen).

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 | editovat zdroj]

Tuto šifru používal pro vojenskou komunikaci Julius Caesar a popsal ji v Zápiscích o válce galské (odtud je odvozen její název). 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. Například u klíče velikosti 3 je každé písmeno A ze vstupu (zdroje) převedeno (zašifrováno) na písmeno D, každé písmeno B je zašifrováno na písmeno E atd., takže lze zašifrovaný text snadno při kryptoanalýze statisticky zpracovat na výskyt jednotlivých písmen v daném vstupním jazyce (viz článek frekvenční analýza a kapitola níže).

Formální zápis[editovat | editovat zdroj]

Caesarovu šifru můžeme definovat 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 | editovat zdroj]

Mějme otevřený text „čas jsou peníze“. Pro zjednodušení odstraníme české znaky a tím získáme vstupní (zdrojový) text: „cas jsou penize“. Pro ztížení šifry (viz kapitola Kryptoanalýza níže) můžeme odstranit mezery, čímž získáme text „casjsoupenize“. Tento připravený text budeme chtít zašifrovat Caesarovou šifrou pomocí klíče „d“, tedy posun o tři písmena. Pokud je klíč tři (3), znamená to, že je písmeno a vstupujícího (zdrojového) textu zašifrováno na písmeno D, písmeno s je zašifrováno na znak V a tak dále (zašifrovaný text je na spodním řádku následujícího příkladu). Všechna písmena v otevřeném textu jsou tedy posunuta o tři písmena dále v abecedě a tím nám vznikne 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) nebo při organizaci v pěticích „FDVMV RXSHQ LCH“.

Kryptoanalýza[editovat | editovat zdroj]

Caesarovu šifru lze poměrně snadno vyluštit (tj. pomocí metod kryptoanalýzy zjistit neznámý klíč, což je zde počet míst posuvu v abecedě). Vzhledem k prostému posuvu je v zašifrovaném textu možné odhadnout, některá písmena pomocí odhadu jejich statistického výskytu (což může dále zjednodušit ponechání mezer v šifrovaném textu), tedy použít na zašifrovaný text tzv. frekvenční analýzu. Vzhledem k omezenému (nízkému) počtu možných klíčů je šifra snadno napadnutelná též útokem hrubou silou, kdy jsou prostě zkoušeny všechny možné varianty klíče, avšak 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.

Reference[editovat | editovat zdroj]

  1. SINGH, Simon. Kniha kódů a šifer. [s.l.]: Dokořán, 2009. 384 s. ISBN 978-80-7363-268-7. 

Literatura[editovat | editovat zdroj]

Související články[editovat | editovat zdroj]

Externí odkazy[editovat | editovat zdroj]