SFandF
Dalsi
Seznam
Predchozi
Autor: Daimon (Ecce daimon...) on 'SFandF'
Cas: So 18.12.1999 22:51.51
Titulek: Reseni sifry z "Tajemstvi pralesa"

                                                                                 
 
    Protoze me nekteri lide pozadali o vysvetleni, jak jsem se dostal
k reseni sifry z "Tajemstvi pralesa", rozhodl jsem se to sem mailnout.
 
    Resit sifru jsem zacal v okamziku, kdy jsem se docetl k tomu, jak
soudce Jariquez prisel s domenkou, ze se jedna o tzv. pricitaci kod,
tedy takovy, kde je klicem urcite cislo, jehoz cifry udavaji, o kolik
se "posune" kazde pismeno zpravy (pr. zprava bude kodovana podle klice
532, pak prvni slovo "Varovani" bude zakodovano na "Adttycsl", protoze
V "plus" 5 je A, a "plus" 3 je d, r "plus" 2 je t, o "plus" 5 (klic se
samozrejme opakuje) je take t atd.).
    Mimochodem, takovato sifra je sice daleko slozitejsi nez proste
zameneni pismen (treba a->h, b->z, c->a ...), ale ve srovnani se siframi,
ktere se v soucasne dobe pouzivaji (i s temi jednoduchymi) je znacne
primitivni, protoze ji lze s pomoci pocitace a dobreho programu rychle
rozlustit.
    Mym zakladnim predpokladem, na kterem vlastne vse stalo bylo to,
ze je ve zprave zakodovano jmeno "Dacosta", popr. "Joam Dacosta".
Narozdil od dosti nelogicky postupujiciho soudce Jariqueze jsem ale
nepocital jen s tim, ze by jmenem Dacosta dokument zacinal nebo koncil.
Chtel jsem proverit cely zasifrovany dopis s tim, ze jmeno Dacosta
muze zacinat kterymkoliv pismenem v nem.
    Teoreticky by znel algoritmus takto: spocitat, o kolik mist se lisi
pismeno zakodovane a pismeno "D", pak druhe zakodovane a pismeno "a",
treti zakodovane a pismeno "c" atd., tyto rozdily by pak daly klic,
podle ktereho bych zkusil vylustit zpravu a v momente, kdy by bylo jasne,
ze dekodovana zprava nedava smysl, pokracovat dalsim pismenem zpravy.
Avsak uz po kratkem zamysleni musi logicky uvazujici clovek prijit na to,
ze pokud se pri kodovani kazde pismeno posune o cislo, ktere udava cifra
klice, pak toto cislo nemuze byt vyssi nez 9 (popr. 10, pocitala-li by
se nula jako 10) a tim padem nemuze byt pri jakemkoliv klici tohoto
typu kodu pismeno D zakodovano "vys" nez M (popr. N) a "niz" nez D (popr.
E), pismeno A nemuze byt zakodovano na pismena od L do Z atd. Pokud je
tedy prvni pismeno zpravy (zacatek: Phyjslyddq...) P, je jasne, ze jmenem
Dacosta zprava nemuze vubec zacinat (samozrejme za predpokladu, ze je
zprava kodovana vyse popsanym pricitacim klicem a my se prave zabyvame
vyhradne touto moznosti).
     Jmeno Dacosta je vubec nadhernou informaci. Prvni tri pismena 
jsou velmi "nizko" v abecede, coz usnadnuje rychlou kontrolu. P tedy ne,
h - to by slo, ale za nim je y, takze zase nic, y nepasuje ani na d, takze
jseme rovnou na j, to by slo, ale zase ne s na a atd. atd...
     Mimochodem, pravdepodobnost, ze by zakodovani sedmipismeneho retezce
"sedelo" ciste nahodne je u jednoho pismena rovna (10/26)^7, coz je 0.12%
a u zkontrolovanych sto pismen zpravy je pravdepodobnost takove nahody
11.81%. Nebudeme-li tedy mit smulu a nebude-li zprava prilis dlouha, pak
se pravdepodobne ani nekona falesny poplach a proverovani nespravneho klice.
     "Kupodivu" jsme narazili hned napoprve na spravnou kombinaci. "edgruzb"
muze byt zakodovanym "dacosta" a klic zni: 1343251. Jednicka na konci dava
otazku: mame cely klic 134325 nebo 1343251 nebo je jeste delsi? Pokud by
byl, pak by se veci komplikovaly. Co takhle zkusit, jestli ctyri pismena
pred "edgruzb" pasuji na zakodovani slova "Joam"? Zkusime klic 134325...
pasuje! Nyni mame skoro stoprocentni jistotu ze perioda klice je 134325
- ano, perioda, nikoli samotny klic, ten muze zacinat libovolnou cislici,
muze tedy jit o klice 134325, 343251, 432513, 325134, 251343 nebo 513432.
Zjistit, o ktery z nich se jedna uz je naprosta trivialita, bud je postupne
vyzkousime (134325 nedava na prvnich sest pismen smysl, vysledek je "oetgqg"
a u 343251 "mduhnk" take nic souvisleho nevytvorilo, at 432513 "leveri",
to by slo, jedeme dal a objevuje se "leveritableauteur...", z ktereho jiz
snadno vytvorime (pokud umime francouzsky, samozrejme :) ) jednotliva
slova) NEBO si proste spocitame kolik pismen je pred jmenem "Dacosta",
rozdelime je do sestic a pokud vyjde nejaky zbytek (v nasem pripade 4),
udava poradove cislo cifry kodu od konce (v nasem pripade tedy zacina 
na 4, kod je 432513), v opacnem pripade by 134325 byl primo hledany kod.
 
     Takhle jednoduse by vse zjistil i soudce Jariquez, uvazoval-li by
logicky. Mel klicovou informaci a prisel (i kdyz to samozrejme mohla byt
jen nespravna domenka) na zpusob kodovani - tedy vse, co potreboval.
Teprve o par let pozdeji jsem se dozvedel, ze klicova informace je vubec
nejdulezitejsi veci pri odhalovani sifer, kterou nemuzou nahradit ani
sebelepsi znalosti.
     V teto souvislosti doporucuji zajemcum o sifrovani a lusteni sifer
knihu Jiriho Janecka "Odhalena tajemstvi sifrovacich klicu minulosti".
Najdou v ni obecne postupy pri kodovani a dekodovani jednoduchych
i slozitejsich sifer a take spoustu uzitecnych informaci.
 
 
 
 
Daimon
 

Dalsi Seznam Predchozi


[ Domu | Prstik | O Piskovisti | Deticky | Nastenky | Koutky ]