Přeskočit na obsah

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í.

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.

  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]