Transpoziční šifra je specifický typ (třída) šifer postavených na principu transpozice, tedy přehození pořadí symbolů vstupního slova dle určitého vzoru.

Transpoziční šifra

též permutační šifra, představuje jiný typ šifer, nežli šifry substituční. Její princip je postaven na permutaci (přeuspořádání) znaků ve vstupním slově dle určitého vzoru.

Z matematického hlediska stačí na úplné zadání permutační šifry znát přepis permutace, obvykle zadávaný tabulkovou metodou, viz ZDE.

Poměrně známá permutační šifra fungovala na principu, kdy se vstupní řetězec přepsal po řádcích do obdélníku, ten se otočil o 90 stupňů a výstup se z něho opět přečetl po řádcích (říká se jí též obdélníková transpoziční šifra):

Šifruj("nazdar")
na
zd
ar
adr
nza
adrnza

Takto zapsaná permutační šifra se dá jednoduše přepsat pomocí tabulkového zápisu (definujícího permutaci), stačí si uvědomit, jak se mění pořadí jednotlivých symbolů:

Šifruj("123456")
12
34
56
246
135
246135

Šifrování a dešifrování

Z uvedeného tedy vyplývá, že předpis permutace lze zapsat jako (permutace se obvykle značí řeckými písmeny):

χ =
123456
246135

Ze znalosti tohoto předpisu lze již snadno vytvořit algoritmus pro šifrování daného vstupu. Pokud je vstup delší, rozdělí se na úseky o vhodné délce, případně se poslední úsek doplní vhodným počtem znaků.

Dešifrování lze snadno provést ze znalosti předpisu permutace tak, že se zjistí inverzní permutace (popsáno v příslušné sekci ZDE) a ta se použije na zašifrovaný výstup.

Historie

Ve středověku byla oblíbená permutační šifra postavena na principu, kdy se namotal tenký list kůže (lze to i s papírem) kolem tyče s určitým průměrem, přes jednotlivé proužky se napsal vzkaz. Po rozmotání se papírek poslal dál. Pro dešifrování bylo potřeba namotat papírek na tyč se správným průměrem (té se říkalo skytalé).

Transpoziční šifra na tyči
Skytalé - ukázka transpoziční šifry v praxi. Zdroj zde.

Kryptoanalýza

Se provádí ze znalosti pravidel daného jazyka (například v latině se často vyskytují písmena a a e vedle sebe apod.). Obecně však neexistuje jednoduchá cesta, jak dosáhnout rychle správného výsledku.

Úlohy k vyřešení

Napište program realizující transpoziční šifru tak, aby mohl zároveň šifrovat i dešifrovat zprávy dle zadaného předpisu permutace (včetně delších zpráv než je předpis permutace).