Luštění jednoduché transpozice - úplná tabulka (metodika)

Jednoduchá transpozice je jedna ze základních metod šifrování. Po jednoduché záměně se tak seznámíme s druhým nejdůležitějším systémem. Troufám si tvrdit, že většina šifrových systémů vychází právě z těchto dvou postupů. Ostatně vždyť prvky typu SHIFT apod. v blokových šifrách jsou vlastně jen transpozicí jednotlivých bitů. Vraťme se však k tomuto systému. Transpozice je "přeskupení" otevřeného textu podle nějakých pravidel - tato pravidla se nazývají klíčem. Výsledný šifrový text zachovává frekvenci hlásek příslušného jazyka. Zpřetrhány jsou pouze bigramové vazby a tím je ukryt význam původního textu. V takovémto textu se tedy nevyskytují dlouhá opakování, je zachována frekvence hlásek příslušného jazyka, neodpovídají bigramové frekvence, nelze provést dělbu na samohlásky a souhlásky. Poměr samohlásek a souhlásek je v textu zachován a je přibližně v poměru 40 : 60. Tento systém se používal ještě za druhé světové války a v některých méně vyspělých státech i v celkem nedávné době. Používala se však určitá modifikace, která velice znesnadňuje luštění - tzv. dvojitá neúplná transpozice. Text je nejprve vepsán do tabulky určitého rozměru, zde jsou podle prvého klíče sloupce rozházeny a dále je text převeden do tabulky o jiných rozměrech, která není ovšem v posledním řádku zcela vyplněna (!) a opět jsou sloupce podle druhého klíče přeskupeny. V případě, že rozměry tabulek (počet sloupců) jsou 30 a více, je ke zpětné transformaci nutné použít složitější postupy, kde se již bez počítačů neobejdeme a v některých případech může být tento systém (např. ve spojení s jednoduchou záměnou) celkem použitelnou šifrou určenou např. pro náhradní spojení, kdy nelze z nějakého důvodu použít kvalitní speciální šifrátor.

Vraťme se k jednoduché transpozici využívající úplnou tabulku. Získáme šifrový text rozepsaný jako obvykle do pětimístných skupin. Pořídíme frekvenci a zjistíme, že odpovídá frekvenci jazyka. Nejsou zde velká opakování a jsou zde skupiny samohlásek a souhlásek. Toto by mohlo naznačovat, že se jedná o transpozici. V případě, že se jedná o jednoduchou transpozici s úplnou tabulkou, postupujeme takto:

Určení rozměru tabulky

Spočteme délku šifrového textu a snažíme se určit pravděpodobný rozměr tabulky. Ten zjistíme tak, že délku šifrového textu rozložíme na součin prvočísel a z nich kombinujeme pravděpodobnou velikost tabulky. Máme-li např. šifrový text délky 120, pak jsou možné následující velikosti tabulek :

120= 2*2*2*3*5

Tabulky :

počet sloupců * počet řádků

málo pravděpodobné (bylo by příliš lehké k řešení) : 1*120, 2*60 , 3*40, 4*30, 6*20

složité : 120*1, 60* 2 ,

tabulky : 8*15, 15*8, 12*10, 10*12, 20*6, 30*4, 40*3

Šifrový text se vepíše do "podezřelých" tabulek. Poznamenejme, že text se vepisuje po sloupcích (!), viz. příklad na konci textu.

Dříve, než přejdeme k vlastnímu luštění, můžeme si do značné míry ověřit, zda námi zvolená tabulka je správná. Zjistíme to na poměru souhlásek a samohlásek v jednotlivých řádcích tabulky. I zde by měl být přibližně zachován poměr samohlásky : souhlásky - 40 : 60. Která z tabulek splňuje tento poměr pro většinu svých řádků, ta je nejpravděpodobnější tabulkou a zde začneme s pokusem o vyluštění původního textu.

Luštění

Samotné luštění není nijak složité. Ti z vás, kteří luští tzv. lištovky v různých časopisech, tento postup již prakticky znají. Pokud nemáme k dispozici vhodný program a jsme příliš pohodlní si jej napsat, nezbývá než sloupce tabulky rozstříhat a přeskupovat tak, abychom se snažili zohlednit bigramové četnosti (např. PR, ST) a samohláskové a souhláskové vazby, a to ve všech řádcích najednou. Postupně tedy k sobě přikládáme vhodné sloupky, až dostaneme celé bloky otevřeného text (čte se po řádcích). Bloky pak jen přeskupíme a máme hledaný výsledek.

Vše si prakticky ještě zopakujeme na následujícím cvičném příkladě.

Cvičný šifrový příklad na jednoduchou transpozici - úplná tabulka

OTSEC NCNUX ATONO TOUTO KXUJU AILBX UVPTD HSEOL KYREN EPSUK ZELID RZPAU (60 znaků)

Určení velikosti tabulky

ne : 1*60 , 2*30, 3*20, 4*15,

možné tabulky : 15*4, 20*3, 10*6, 6*10

Prozradím, že tento text byl úmyslně volen tak, aby ani poměr samohlásky: souhlásky nedal zcela jednoznačnou odpověď na rozměr tabulky, v praxi ovšem takovéto příklady většinou nenastávají, tento příklad měl pouze komplikovat samotné luštění žákům, kterým jsem příklad předložil a nechtěl jsem, aby jednoduše zjistili velikost správné tabulky. Sledujte, jak se šifrový text plní do tabulky. Začátečníkům někdy toto činí potíže a zapisují jej omylem do řádků místo do sloupců.

 

rozměr 20*3

očekávaný poměr 8/12

OECXOTTXULUTSLREUEDP 8/12

TCNANOOUABVDEKEPKLRA 8/12

SNUTOUKJIXPHOYNSZIZU 8/12

 

rozměr 15*4

očekávaný poměr 6 / 9

OCUOOKUBPSKNULZ 6/9

TNXNUXAXTEYEKIP 6/9

SCAOTUIUDORPZDA 7/8

ENTTOJLVHLESERU 5/10

 

rozměr 10*6

očekávaný poměr 4/6

OCOTUUSRUD 5/5

TNNOAVEEKR 4/6

SUOKIPONZZ 4/6

EXTXLTLEEP 3/7

CAOUBDKPLA 4/6

NTUJXHYSIU 4/6

 

ukázka 6*10

očekávaný poměr 2,4 / 3,6

OAKUKZ 3/3

TTXVYE 2/4

SOUPRL 2/4

ENJTEI 3/3

COUDND 2/4

NTAHER 2/4

COISPZ 2/4

NULESP 2/4

UTBOUA 4/2

XOXLKU 2/4

Nejpravděpodobnějšími tabulkami jsou rozměry 20*3 a 6*10, následují rozměry 10*6 a nejhůře z testu vyšel rozměr 15*4.

Správný rozměr je 6*10. Vzhledem k malému počtu sloupců již není problém je správně seřadit a dostaneme příslušný otevřený text :

UKAZKO

VYTEXT

PROLUS

TENIJE

DNODUC

HETRAN

SPOZIC

ESUPLN

OUTABU

LKOUXX

Takže hledaným textem je :

UKAZKOVY TEXT PRO LUSTENI JEDNODUCHE TRANSPOZICE S UPLNOU TABULKOU XX

Klíčem je pak postup jak přeskupit sloupce otevřeného text na sloupce šifrového textu.

Na příkladě si můžeme všimnout, že při zápisu do tabulky byl doplněn text tak, aby zcela vyplnil i poslední řádek pomocí XX. Pro různé uživatele, které systém používají může být doplnění tabulky na úplnou tabulku charakteristické. Text by měl být doplněn náhodně, ale často se používá nějaký ustálený způsob, který kryptoanalytikovi (pokud jej zjistí) pomáhá v luštění. Např. se používá doplňování pomocí X nebo písmena abecedy nebo se doplní podpis apod. Všechna tato doplnění jsou špatná a mohou vést ke snadné kompromitaci systému (určení velikosti tabulky a umístění některých sloupků). Znalost takovýchto maličkostí usnadní chápání podstatně složitějších problémů se kterými se v kryptologii můžeme setkat. Připomeňme v této souvislosti analogii s nevhodným doplňováním dat pro šifrování symetrických klíčů podle normy PKCS#1, v 1.5 .

Nyní již můžeme vyhlásit soutěžní úlohu III.kola

Úlohou třetího kola je vyluštění přiloženého šifrového textu. Jedná se o jednoduchou transpozici - použita byla úplná tabulka. Rozměr tabulky musíte určit. Text je v češtině, v mezinárodní abecedě = 26 znaků A-Z (bez háčků a čárek) a bez mezer, je rozdělen do skupin po 5-ti znacích. Prozradím, že se jedná se o text, který se vyskytl na stránkách našeho e-zinu.

SIFROVY TEXT

IRJYE VDIPI AVIVZ NTUKM EORZN EOTYE KKLPI TTNNC EIPAE COSMN EOPRL KEPEP LAPTE NNEDO SOTNK ENOPT LBOAO TROVR OEEIN REEEK UTSHX EOORM YIJAJ PZOED DEDOD UCSTS ONZOA IKSCU JPPES NISBV FEIIK AEUVU EJOOO DNMKS EORKB YMOAU ELPNO DKOOO JUNST ZIUOU EEJVG EEDZA ACEDM KKEEI RNETV

Zaslání celého textu 10 bodů.

Losování III.kola bude 8.12.2000 (18.00 hod).