Caesarova šifra je jednou z nejjednodušších a nejznámějších šifer na světě. Je pojmenována podle Julia Caesara, který ji použil pro vojenskou komunikaci.
Patří do kategorie substitučních šifer. Pro názornost máme otevřený text (OT) a šifrovaný text (ŠT). A provádíme substituci, tzn., že písmeno z OT zaměníme za jiné písmeno a tím nám vznikne ŠT. Tento postup neprovádíme nahodile, ale podle nějakého klíče, postupu apod. U této šifry se používá klíč, podle kterého se posunujeme v abecedě. Například bude číslo 3 je našim klíčem, potom se písmeno A zašifruje na písmeno D. Analogicky B je E. Pracujeme s písmeny anglické abecedy, těch je 26. A jsou číslována od 0, A=0, B=1 atd.
S předchozím slovním popisem algoritmu bychom dlouho nevydrželi, proto musíme použít trochu matematiky. Ale nebojte není to těžká věc. Použijeme proměnné OT, ŠT a přidáme k, jako klíč. Text šifrujeme vztahem ŠT = (OT + k) mod 26. Až na slovo “mod” je to doufám jasné. Ihned vysvětlím: K písmenu z otevřeného textu přičteme klíč a vydělíme 26. Právě 26, protože tolik je písmen v abecedě, kterou používáme. A pozor, nás výsledek je zbytek po celočíselném dělení! Potom šifrujeme B=1 s klíčem 3, jako (1+3) / 26 = 0 a zbydou 4. Čtyřka je náš výsledek, naše písmeno v zašifrovaném textu. Tímto způsobem funguje tajemný matematický zápis. Dešifrivání je analogické OT = (ŠT – k) mod 26.
Je důležité říci, že nám musí vyjít něco v rozsahu 0 – 25, abychom to mohli převést na text. Ale co když nevyjde? Pomoc je jednoduchá, prostě přičteme číslo 26. Tato situace nastává typicky při dešifrování. Velice důležité je používat klíč v rozsahu 1 – 25, jinak by nedošlo k zašifrování. Příklad: 1+26 = 27 a 27/ 26 = 1, zbyde 1. Nic jsme nezašifrovali.
Ukázkové texty: OT: AHOJ
ŠT: elsn
Nutno poznamenat, že Caesarova šifra je velmi snadno prolomitelná, ať už hrubou silou, prostě vyzkoušíme všechny klíče, není jich moc. Nebo frekvenční analýzou. Proto se k reálnému nasazení rozhodně nehodí, ale pro výukové účely postačí.
Pro snadné šifrování a dešifrování jsem si udělal malý prográmek v Javě. Můj prográmek umožňuje šifrovat i číslice, moje abceda má tedy 36 znaků. Použití je doufám velice snadné.