# Kryptoanalýza klasických šifer

### Ústav telekomunikací, FEKT VUT Brno

## Aplikace pro šifrování a luštění

Po spuštění aplikace se otevře její hlavní okno. Skládá se ze dvou textových oblastí, menu + tlačítek a informativních oblastí:

Vstupy, výstupy a formát textu

Aplikace pracuje s textovými vstupy a výstupy. Vstupem (ať už jde o otevřený nebo šifrový text) může být textový soubor (menu Soubor -> Otevřít), nebo se dá přímo zapsat/vložit do pracovního okna. Veškeré vstupy se směrují do levého textového okna.
Program umí pracovat pouze s tzv. mezinárodní abecedou - tedy základních 26 znaků. Před jakoukoliv operací nad vloženým textem je třeba jej upravit (tzn. zbavit veškerých znaků kromě znaků a - z). Pro toto odstranění slouží funkce Text -> Edit. V případě požadavku na provedení operace (např. zašifrování textu) bez předchozí úpravy aplikace sama upozorní na tuto skutečnost a nabídne možnost editace - bez této volby nedojde k provedení požadované operace.
O bsah levého okna je také možno vybrat, kopírovat a nebo do něj vkládat - vše pomocí příslušných funkcí v menu Text.
Výstup jednotlivých funkcí se zobrazuje v pravém textovém okně. Jeho obsah je možno uložit do textového souboru pomocí volby Soubor -> Uložit (2.okno), případně pomocí klávesové zkratky Ctrl + S.

Parametry jednotlivých šifrových systémů jsou vždy omezeny (např. délka hesla pro šifru Vigénere je max. 30 znaků).

Šifrování

Menu šifrování umožňuje zašifrovat vstupní otevřený text. Zahrnuje jednotlivé typy šifer: monoalfabetická substituce, polyalfabetická substituce a jednoduchá transpozice; u většiny z nich uživatel zadává na vstupu parametry šifrového systému.

- Monoalfabetická šifra - zadaný text (v textové oblasti Vstup) lze zašifrovat jednou z těchto možností: posun o zadaný parametr, afinní šifra, použití klíče, náhodně vygenerovaná abeceda a abeceda zadaná uživatelem.

- Polyalfabetická šifra - zadaný text (v textové oblasti Vstup) lze zašifrovat jednou z těchto možností: Vigénere nebo Vigénere autoklíč.

- Jednoduchá transpozice - vstupní text (v oblasti Vstup) lze zašifrovat pomocí zadání klíče. Šifrový systém je jednoduchá transpozice s úplnou tabulkou, to znamená že v případě chybějících písmen v otevřeném textu jsou nahrazeny znaky x.

Šifrový text je je upraven do tzv. telegrafické konvence - rozdělen po pěticích. Zároveň se po zašifrování textu nastaví v informačním panelu nově vytvořená abeceda šifrového systému.

Dešifrování

V případě, že se uživateli podaří zjistit pro zadaný šifrový text typ a parametry použitého šifrovacího systému, pomocí tohoto menu si může ověřit jejich správnost. Jednotlivé metody provedou nad vstupním textem operace inverzní k šifrování (jedinou výjimkou je afinní šifra, u které se nezadávají původní parametry a,b, ale a-1,b).

Nástroje

Aplikace slouží nejen pro šifrování a dešifrování vybraných druhů klasických šifer, ale je nápomocná i jejich luštění. Teoretické metody luštění jsou více popsány zde. Jednotlivé položky menu Nástroje jsou:

- Index koincidence (IC) - po zavolání funkce IC se zobrazí nové okno s vypočítaným IC. Pomocí něj lze rozhodnout, jakým typem šifry je text šifrován. Průměr IC subtextů souží pro určení délky hesla v případě šifry Vigénere. Funkce E(IC) rovněž.

- Euklides - toto menu je používáno v případě luštění afinní šifry. Obsahuje dvě funkce - NSD (zjištění největšího společného dělitele dvou čísel (funguje na základě Euklidova algoritmu) a dále rozšířený Euklidův algoritmus, pomocí kterého je možno určit multiplikativní inverzi čísla. NSD je možno mj. využít při zjišťování délky hesla u šifry Vigénere.

- Výměna znaků - v případě luštění monoalfabetické substituce se může uživatel pokoušet zaměnit za sebe dva znaky šifrové a otevřené abecedy, k čemuž slouží menu Výměna jednoho znaku. Pokud zná luštitel již celou šifrovou abecedu (resp. její mapování na otevřenou), může pro dešifrování textu použít položku menu Výměna všech znaků.

- N-tice - položky v tomto menu slouží pro vyhledání n-tic (dvojic až desetic) v analyzovaném textu a zároveň určení vzdálenosti shodných n-tic. Využívá se při určování délky hesla u šifry Vigénere.

- Frekvenční analýza - po této volbě dojde k zobrazení nového okna s grafem a třemi tabulkami.

  Jedná se o sloupcový graf zobrazující četnosti písmen v české abecedě (modré sloupce) a zároveň četnost písmen (procentuelní) v analyzovaném textu (zelené sloupce). Dále okno zobrazuje několik tabulek: tabulku obsahující četnost znakù v českém jazyce, setříděných sestupně podle výskytu; tabulku obsahující četnost znaků v českém jazyce a zároveň četnost znaků v analyzovaném textu (v podstatě se jedná o data, kterými je naplněný graf); tabulku mapující znaky upraveného šifrového textu na znaky mezinárodní abecedy podle výskytu četnosti. Tato tabulka zároveň obsahuje údaj o posunutí jednotlivých znakù vůči sobě. Je použitelná při luštění jednoduchého posunu.

- Rozklad na prvočísla - vrací prvočíselný rozklad zadaného čísla.

- Převod do tabulky - v případě, že uživatel chce luštit zadaný šifrový text jako jednoduchou transpozici, je potřeba převést ho do podoby tabulky. Po vyvolání této nabídky dojde k převodu textu v okně Vstup do tabulky o rozměrech zadaných uživatelem. Tabulka je zobrazena v novém okně; lze v ní vzájemně zaměňovat sloupce a řádky a tím postupně šifrový text luštit (na vstupu je očekávána šifra typu jednoduchá transpozice s úplnou tabulkou).

- Vytvoření subtextu - znamená, že aplikace z textu v okně Vstup vytvoří menší skupinu, a to na základě uživatelem zadaných parametrů. Těmi jsou vzdálenost jednotlivých písmen v původním textu a dále odsazení (tzn. na které pozici leží první vybíraný znak).

- Informace - toto menu umožňuje zobrazit některé pomocné informace o českém jazyce: jedná se o tabulku výskytu nejčetnějších bi- a trigramů a dále tabulku zobrazující index písmen v české abecedě.