# Kryptoanalýza klasických šifer

### Ústav telekomunikací, FEKT VUT Brno

## Transpozice

Transpozice je obecně přeuspořádání pořadí písmen otevřeného textu podle nějakých pravidel, výsledkem čehož je šifrový text. V současné době se používá mj. jako součást moderních algoritmů (DES, AES). Protože jednotlivé znaky otevřeného textu se ničím nenahrazují, zůstává při této šifrovací metodě zachována četnost hlásek. Naopak nezachovávají se vazby mezi hláskami (bigramy - dvojhlásky a trigramy - trojhlásky).

### Jednoduchá transpozice

Nejjednodušším transpozičním systémem je jednoduchá sloupcová transpozice (někdy nazývaná krátce jednoduchá transpozice). Pochází z 16.stol., byla vytvořena kardinálem Richelieu, prvním ministrem francouzského krále Ludvíka XIII. Richelieu dokonce údajně založil šifrovací oddělení, které se zabývalo šifrováním předávaných informací.

Vlastní šifrování spočívá ve výběru klíče a následně vytvoření transpoziční tabulky, do které se vepíše po řádcích otevřený text. Poté se zamění pořadí sloupců tabulky podle zvoleného klíče. Klíčem je v případě této šifry skupina čísel, která znamenají pořadí sloupců. Je tedy možné zvolit si přímo řadu čísel jako klíč (např. 6 4 1 3 2 5), nicméně pro snazší zapamatovatelnost je lépe zvolit si nějakou frázi. Může to být například slovo luštění, které je třeba zbavit diakritických znamének, tedy LUSTENI. Jednotlivá písmena klíče se očíslují tak, jak odpovídá pořadí písmen pořadí jejich výskytu v abecedě. V našem případě tedy písmenu E přiřadíme číslo 1, písmenu I přiřadíme číslo 2, písmenu L přiřadíme číslo 3 atd. Výsledkem je klíč 3756142. Tomuto způsobu získaní klíče se říká tzv. permutační vyčíslení. Pokud se některá písmena ve frázi opakují, přiřazují se jim čísla vzestupně dle pořadí ve frázi. Pokud se opakují přímo dvě písmena za sebou, druhé se obvykle vynechává - nicméně tyto konvence lze po dohodě s druhou stranou samozřejmě změnit. V praxi je vhodné volit klíč alespoň o délce 20 [1].

Z délky klíče vyplývá počet sloupců, které bude mít šifrovací tabulka - v případě klíče LUSTENI jich tedy bude 7. Následující příklad (tab.1.7) demonstruje zašifrování otevřeného textu diplomová práce. Text se vepíše po řádcích do tabulky o sedmi sloupcích, nad níž je zapsán permutační klíč.

3 | 7 | 5 | 6 | 1 | 4 | 2
D | I | P | L | O | M | O
V | A | P | R | A | C | E

Tab. 1.7: Otevřený text před zašifrováním jednoduchou transpozicí

V dalším kroku se vymění pořadí sloupců tak, aby odpovídalo pořadí čísel klíče (tab.1.8). Výsledný šifrový text se získá čtením znaků tabulky po sloupcích a v tomto případě je to tedy OAOEDVMCPPLRIA. Při šifrování lze samozřejmě vynechat krok výměny pořadí sloupců v tabulce a šifrový text rovnou zapisovat dle pořadí klíče. Šifrový text se ještě obvykle dělí na menší skupiny znaků, např. po pěti (což je pozůstatek telegrafické konvence), takže výsledek by potom vypadal OAOED VMCPP LRIA.

1 | 2 | 3 | 4 | 5 | 6 | 7
O | O | D | M | P | L | I
A | E | V | C | P | R | A

Tab. 1.8: Výměna sloupců při transpozici dle zvoleného klíče

V případě, že se otevřený text nedá rozdělit přesně podle počtu sloupců, nabízí se dvě možnosti. V prvním případě se doplní potřebný počet míst v tabulce o různé - předem domluvené - znaky. Jedná se o tzv. jednoduchou transpozici s úplnou tabulkou. Naopak, pokud tabulka na konci šifrování těmito znaky doplněna není, jedná se o jednoduchou transpozici s neúplnou tabulkou. Pro šifrování a dešifrování se při systému s neúplnou tabulkou nic nemění, ovšem pro luštění je náročnější druhá varianta. Důvodem je obtížnější určení rozměrů tabulky, což je prvním krokem při luštění této šifry.

Jednoduchou transpozici lze dále modifikovat, aby byla vůči luštění odolnější - například je možné použít ji dvakrát za sebou: otevřený text se zapíše do úplné tabulky a je přeuspořádán dle permutačního klíče. Výsledek je potom znovu zapsán do - tentokrát již neúplné - tabulky, a opět dojde k přeházení sloupců dle jiného domluven ého klíče. Tento systém se nazývá dvojitá neúplná transpozice a její prolomení je velmi nesnadné (nikoliv však nemožné).

Pro dešifrování jednoduché transpozice musí druhá strana znát klíč. Ten určuje počet sloupců tabulky a zároveň jejich pořadí. Pokud se počet znaků šifrového textu vydělí počtem sloupců (odvozených z klíče), dešifrant získá informaci o počtu řádků - a tím pádem zná rozměr transpoziční tabulky. Do ní se pak po sloupcích zapíše šifrový text, který se po přeuspořádání podle klíče čte po řádcích.