Ilustrace: Nenad Vitas
Nakladatelství Mladá fronta vydalo na počátku letošního léta knihu Kybernetické hlavolamy Dr. Ecca – 36 hlavolamů pro hackery a ostatní matematické detektivy (autor Dennis E. Shasha). Nejde o kybernetické či hackerské hlavolamy v úzce počítačovém slova smyslu, tj. nedozvíte se zde, jak hacknout router od Cisca ani jak efektivně provést rozklad na prvočísla. Nicméně za přečtení kniha rozhodně stojí.
Zájemci se mohou s úryvky z knihy seznámit také v online podobě v textech Vysoká cena bezpečné krve a Drobné pro Mudžikistán. My se ovšem pustíme do slíbených šifer a teroristů. Eccova úloha v pořadí 27 se jmenuje Rozpletení rosettské sítě a pojednává – jak jinak – o tom, jak se FBI a NSA snaží dopadnout teroristy komunikující prostřednictvím webových stránek.
V popsaném případě teroristé používají jednoduchou substituční šifru. Ta je prolomitelná samozřejmě snadno, zločinci se ovšem snaží v síti webových stránek své pletichy dále maskovat a zašifrovaný text skrýt. Stránky jsou tak mezi sebou různě provázány odkazy, zprávu je ale třeba samozřejmě číst v určitém konkrétním pořadí, a ne všechny darebné stránky přitom musejí být v posloupnosti využity. Kromě převodní tabulky určující, jaké písmeno se má zaměnit za jaké, je klíčový (a tedy distribuován jako klíč) i způsob, jak mezi stránkami skákat – tedy „hrany grafu“. Netřeba dodávat, že před sebou máme stále velmi jednoduchý systém a jedná se o hru, v reálu jsou k dispozici mnohem účinnější metody. Dr. Ecco a jeho brilantní spolupracovnice Liana také dokáží FBI její problém hravě vyřešit.
V naší obdobné ilustrační úloze (ještě trochu jednoduššího typu než ta z Kybernetických hlavolamů) máme před sebou opět text rozházený po více stránkách. Začínáme stránkou 1. Z každé stránky vedou odkazy na všechny stránky další, ale ne všechny jsou součástí zakódované zprávy. Způsob přeskoků znají jen teroristé a sdělují si ho podobně jako tabulku substitucí. Ve chvíli, kdy přeskoky zavedou čtenáře opět na stránku 1, je utajený text u konce.
Tady je třeba dodat, že luštitel přesně neví, jakou podobu mají další stránky použité v grafu. Může jít o náhodně generované znaky, ale třeba i o nějaké jiné sdělení, které bude aktivováno změnou pravidel pro pohyb grafem. A samozřejmě může jít také o texty záměrně vytvořené tak, aby komplikovaly frekvenční analýzy „smysluplných“ pasáží (tj. texty, které přednostně vytvoříme z méně frekventovaných znaků, abychom celkovou statistiku co nejvíce „zprůměrovali“).
Texty na jednotlivých vzájemně prolinkovaných webových stránkách v naší ukázkové úloze vypadají takto:
1. stránka yoqdqmiylčg jmp io ňičňyojpm 2. stránka řžoiťdb svažochom č sžřiypmuň dqeřpmiuň 3. stránka xqewt eď mfmč w pužčf 4. stránka fřč yocht smchpd ťňfcho d yoqdqmiylčg řčy sičňyčň vždsdžpg 5. stránka ďjt wewea řďljch bdazc ljtv 6. stránka chedht pdeab mťňfru m řžymilgčg xafuřčy čňičň džepagu 7. stránka čcho ďňcho ťdiyňťpo sgťmyd choioy ťms 8. stránka župb fyxam bydyš ňužamčefw džu 9. stránka ř včdpvňusřpg sřhčoqo přďmvopo sřqmřpyg iuřnopoad igqř 10. stránka s fmiyo pofuosřpo qoiyřňqřlm 11. stránka gdašan chamťqe mťňfru dozqcfl
- jedná se o jednoduchou substituční šifru typu písmeno za písmeno.
- Text je v češtině (oblíbený to jazyk všech kryptologů hned po jazyce Navahů :-) ).
- Délky samohlásek se nezaznamenávají.
- Ch je považováno za jedno písmeno jak v původním, tak zašifrovaném textu.
- Souhlásky s háčky jsou samostatné znaky jak v původním, tak zašifrovaném textu.
- Interpunkce je vynechána.
- Mezery odpovídají mezerám.
Připomínám, že začínáme první webovou stránkou, která tedy obsahuje smysluplné sdělení. Pak musíme oddělit zrno od plev a text určitým způsobem proskákat. V tomto konkrétním případě je sdělení rozházeno po šesti stránkách, pět z nich má luštitele pouze zmást a zahltit. Takže: co si to tedy naši teroristé chtějí sdělit?
Kromě vlastního řešení a především postupu, který k němu vede (což je ještě zajímavější), nabízí uvedený příklad samozřejmě námět k řadě dalších úvah. Využili naši teroristé způsob utajení textu tak, že ho rozházeli po více webových stránkách, využili dobře možnosti, které jim nabízí Internet? Jak takovýhle systém dále vylepšovat? Lze třeba měnit pravidla pohybu, lze aktualizovat i jednotlivé stránky (a současně zřejmě změnit všechny ostatní, aby slídilové nepřišli na to, jaké stránky obsahují vlastní zprávu). Ještě jednou je třeba zdůraznit – pohybujeme se na úrovni hry, ne profesionální kryptografie.
Děkujeme všem zúčastněným, soutěž je v tuto chvíli již uzavřena. Po pravdě řečeno, příjemně jste nás překvapili svými schopnostmi i zájmem o netradiční trávení volného (před)víkendového času :-) Vítězem se stává uživatel William Walker, kterému pošleme tričko Lupy.
A nyní ještě správné řešení:
Teroristický čin se uskutečnív jisté nejmenované restauraci
kde bude postupně vypito deset piv
a zkonzumovány veškeré nabízené varianty smaženého sýra
jak tedy vidno, půjde o teroristický akt vskutku zlovolný
alespoň vzhledem k vlastnímu organismu
Odpovídající „použité“ webové stránky jsou
yoqdqmiylčg jmp io ňičňyojpm
s fmiyo pofuosřpo qoiyřňqřlm
čcho ďňcho ťdiyňťpo sgťmyd choioy ťms
ř včdpvňusřpg sřhčoqo přďmvopo sřqmřpyg iuřnopoad igqř
fřč yocht smchpd ťňfcho d yoqdqmiylčg řčy sičňyčň vždsdžpg
řžoiťdb svažochom č sžřiypmuň dqeřpmiuň
Způsob přeskoků je pak následující:
1 – 10 – 7 – 9 – 4 – 2 – 1
Nic neznamenající text – vata (stránky 3, 5, 6, 8, 11):
xqewt eď mfmč w pužčf
ďjt wewea řďljch bdazc ljtv
chedht pdeab mťňfru m řžymilgčg xafuřčy čňičň džepagu
župb fyxam bydyš ňužamčefw džu
gdašan chamťqe mťňfru dozqcfl
Stránky použité pro zašifrovaný text (s čísly, „vata“ bez čísel) jsou tyto: 1. yoqdqmiylčg jmp io ňičňyojpm
2. řžoiťdb svažochom č sžřiypmuň dqeřpmiuň
xqewt eď mfmč w pužčf
4. fřč yocht smchpd ťňfcho d yoqdqmiylčg řčy sičňyčň vždsdžpg
ďjt wewea řďljch bdazc ljtv
chedht pdeab mťňfru m řžymilgčg xafuřčy čňičň džepagu
7. čcho ďňcho ťdiyňťpo sgťmyd choioy ťms
župb fyxam bydyš ňužamčefw džu
9. ř včdpvňusřpg sřhčoqo přďmvopo sřqmřpyg iuřnopoad igqř
10. s fmiyo pofuosřpo qoiyřňqřlm
gdašan chamťqe mťňfru dozqcfl
A konečně kompletní převodní tabulka:
(původní text-kódovaný text)
A – Ř
B – Ď
C – L
Č – J
D – CH
Ď – T
E – O
F – W
G – E
H – A
CH – X
I – M
J – F
K – Č
L – Ž
M – U
N – P
Ň – B
O – D
P – Ť
Q – Z
R – Q
Ř – C
S – I
Š – H
T – Y
Ť – K
U – Ň
V – S
W – Š
X – R
Y – G
Z – V
Ž – N