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