Tag Archives: Java

Caesarova šifra

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

Učebnice jazyka Java

Pokud se chcete naučit programovat v jazyku Java určitě budete potřebovat učebnici. A pro začínající programátory bych určitě doporučil knihu Učebnice jazyka Java od Pavla Herouta. Autor je docentem na Západočeské univerzitě v Plzni a učit rozhodně umí. Proto je knížka velice dobře napsána. Určitě se v ní neztratí ani úplní začátečníci. Vše je podrobně vysvětleno na příkladech, které jsou dostupné i na Internetu.
Existují 3 díly. První se zabývá úplnými začátky programování v Javě, základy syntaxe a psaní kódu. Ve druhém se naučíte vytvářet grafické rozhraní k programům. A v posledním díle jsou popsány důležité knihovny jazyka Java. Doporučuji koupit všechny díly. Dostanete kvalitní materiály ke studiu. Knihy se obzvláště hodí pro studenty vysokých škol, když vám nestačí materiály a přednášky ve škole.
Autor knihy ještě napsal Učebnici jazyka C, 2 díly a také knihu Java a XML, kterou nemám, ale může být také užitečná.
Kromě úplných základů, jako jsou řídící struktury if, cykly while a for, se samozřejmě naučíte objekty, na kterých je Java založená. V knize nechybí popis práce se soubory a adresáři, vlákna a ošetřování výjimek. Bohužel chybí popis práce se síťovými sokety, který by se celkem hodil. Vytváření apletů se řeší až ve druhém dílu, takže, rozhodně doporučuji koupit všechny díly, vyplatí se to. Jeden díl stojí kolem 200Kč, nic závratného.