May
2008
Tuesday
Dan Brown je diletant…
Ja viem. Príde vám to ako nevhodné slová na adresu človeka, ktorý možno predá za deň viac kníh, ako má môj blog návštevníkov, odkedy funguje. Nechajte ma však vysvetliť, ako som to myslel a ako som k tomuto názoru prišiel.
Histórii organizácie Opus dei, svätému grálu a konšpiračným teóriám okolo Katolíckej cirkvi nerozumiem – nerozumel som teda ani povyku okolo Da Vinciho kódu. Dnes nadránom som však dočítal Brownovu knihu Digitálna pevnosť a v jej téme cítim pevnejšiu pôdu pod nohami.
Nebojte, budem sa snažiť písať tak, aby som vám zápletku prezradil čo najmenej a koniec už vôbec.
Je to o šifrovacom superalgoritme, ktorý sa nedá prelomiť ani hrubou silou – to je ona Digitála pevnosť. Bežné šifrovacie algoritmy spoliehajú na to, že na vyskúšanie všetkých možností povedzme 256bitového kľúča by i najvýkonnejšie počítače sveta potrebovali podstatne dlhší čas, než bude povedzme svietiť naše Slnko. A čo viac, predĺžením kľúča o jeden bit, na 257 bitov, sa doba vykonávania nezväčší o 1/256, ale rovno zdvojnásobí. Ak by prelomenie 10bitového kľúča na nejakom stroji zabralo sekundu, 11bitový by zabral dve, 20bitový 17 minút a 64bitový pol miliardy rokov, 65bitový miliardu (aj „drobné“ :-) ). V Teórii zložitosti sa tomu hovorí exponenciálny rast. Dnešné šifrovacie algoritmy sú teda prelomiteľné, ale ich prelomenia by sa nemusel dočkať ani vesmír, nie to jeden človek.
EDIT: Odstavec bol opravený na základe upozornenia na chybu. Ďakujem Janovi Erbenovi, že si ju všimol :-). Viac v komentároch pod článkom
V knihe sa však hrdinovia, kryptoanalytici americkej NSA (National Security Agency) potýkajú s algoritmom, ktorý sa nedá dešifrovať vôbec. Ani vyskúšaním všetkých možností od 00000…00000 do 11111…11111.
Dan Brown je však diletant. Úplne prd rozumie celej kryptografii. Poviete si… „prečo diletant, to by bolo 99 % ľudí.“ Ono to tak chodí, že 99 % ľudí sú diletanti: Slovo diletant má iste veľmi negatívny náboj. V skutočnosti to však môže byť aj inak. Berme to teda teraz v tom prvotnom význame, čiže
kto nemá na vykonávanie istej činnosti odb. prípravu
A na písanie o informačných technológiách teda Dan Brown odbornú prípravu nemá. V texte sú faktické chyby.
Tak napríklad – v knihe Dan Brown načrtáva funkciu anonymizačných serverov. Asi by nebolo úplne ideálne, aby som pri objednávaní zaručene pravých rolexiek či gumenej Anče uvádzal adresu oprendek@mayl.muni.cz. Pre takéto delikátne prípady vznikli anonymizačné servery. Je to niečo ako P.O. box: predplatím si službu a dostanem adresu napr. LordOfEarth@ anonymizer.com. V skutočnosti mi poskytovateľ e-maily preposiela na oprendek@mayl.muni.cz a je zmluvne zaviazaný moju totožnosť neprezradiť. Dnes význam anonymizačných serverov význam pomaly upadá s nástupom webových freemailov (post.sk, GMail…) – „uživili“ sa hlavne v dobách, keď mali ľudia e-mail iba v škole či v práci. V popise anonymizačných serverov sa autor (zatiaľ) drží faktov.
V knihe má však hlavná hrdinka počítačový program, Stopára, ktorý vyzerá ako obyčajný e-mail, ale po preposlaní remailerom a dorazení do skutočnej schránky vyšle informáciu, o akú adresu ide, a hneď sa vymaže.
Neviem, no. Všetky e-mailové RFC (dokumentáciu protokolu) som nečítal, ale keď je niečo text, tak je to text a snáď ani M$ Windows sa ho nepokúša vykonávať ako program a posielať niečo niekam. Toto platí už od pradávnych dôb počítačov – v počítači máte dokumenty (ako sú e-maily, videá, pesničky či obrázky) a programy. Programy sa spúšťajú a vykonáva ich procesor, môžu byť dobré a zlé. Ale dokumenty sú proste len dáta.
Ja viem, mnoho ľudí si zavírilo počítač sťahovaním sexi obrázkov Anny Kurnikovovej, ale tam bol fígeľ v inom – to, čo sa tvárilo ako odkaz končiaci na kurnikovova_nude.jpg, odkazovalo v skutočnosti na súbor kurnikovova_nude.jpg.exe. A exe je program. Vírus. Čokoľvek.
Áno, niektoré systémy obsahujú bezpečnostné diery, ktoré umožnia spustiť neželaný program bez vedomia užívateľa. Najčastejšou takouto dierou je prítomnosť myši a klávesnice.
Chyba, že Dan Brown nerozlišuje medzi programom a dátami, sa tiahne celou knihou, dej sa o ňu na mnohých miestach opiera a znižuje pre zorientovaného čitateľa dôveryhodnosť zápletky.
Pri tom to všetkom je veta
Jest-li je to standardní, čtyriašedesátibitový klíč, nikdo nemohl stihnou přečíst a zapamatovat si všech čtyřiašedesát znaků….
už iba taká perlička. Dan Brown, zdá sa, prehliada rozdiel i medzi bitom a bytom.
Totiž, 64bitový kľúč by mal 64 znakov, ak by bol zapísaný iba nulami a jednotkami. Napríklad
1001011001101011011101001101011001111101100110100100110101101011
Z predchádzajúceho textu však vyplýva, že sa text podobal skôr na nejaký cudzí jazyk a šlo o latinku. Použitie väčšej „abecedy“ ako je tá dvojprvková, z núl a jednotiek, však znamená zníženie počtu znakov (ak má ísť stále o 64 bitov). Keď si napríklad zoberieme len písmená, číslice, + a / (kódovanie Base64), zapíšeme tento kľúč pomocou 11 znakov, hexadecimálny zápis bude dlhý 16 znakov.
Detail…
Niektoré chyby možno pripísať na vrub prekladateľovi – napríklad používanie slov kód a šifra ako synoným. Pritom, kódovanie je technika, ako zmeniť nejakú informáciu (text, obrázok, hudba, video…) na postupnosť signálov (núl a jednotiek, bodiek a čiarok, polôh vlajok) tak, aby sa dala informácia preniesť či uchovať, a potom získať nezmenená spať. (Či dokonca opraviť chyby. Napríklad na CD sú dáta kódované tak, aby sa dala chyba spôsobená malým škrabancom ešte opraviť. (Keď rozsah alebo početnosť chýb prekročí určitú medz, oprava možná nie je a hudobné CD preskakuje, kým dátové sa „nedá prečítať“). Starším príkladom je morseovka – kódovanie písmen (anglickej) abecedy, jednoduchej interpunkcie a niektorých riadiacich znakov do postupností kratších a dlhších impulzov („bodiek“ a „čiarok“). Ti ti ti – tá tá tá – ti ti ti.
Spôsob, akým sa kóduje hudba do jamôk na CD či abeceda do bodiek a čiarok, je všeobecne známy a každý, kto túto schému pozná, si môže správu prečítať.
Naproti tomu, šifrovanie je technika, ako zaručiť dôvernosť informácie – aby som ju vedel prečítať iba ja a tí, čo ja chcem.
Zamieňanie kódovania a šifrovania pochádza zrejme z doby, keď armáda používala kódovacie tabuľky najmä pre rozkazy a správy z predných línií. V tabuľkách boli jednoduché slová popisujúce počasie (jasno, dážď…), situáciu na bojisku (útok, ústup…), vojenské jednotky (pechota, delostrelectvo…), zemepisné strany atď. a každému slovu bol priradený niekoľkoznakový kód. Pomyselný špión za frontovou líniou z týchto slov zostavil hlásenie a odoslal kódy napríklad už zmienenou morseovkou na veliteľstvo. Tam disponovali rovnakou tabuľkou a správu rozkódovali. Hlavná výhoda spočívala v redukcii počtu prenesených znakov a tým v úspore času.
Keďže nepriateľ túto tabuľku nemal, nevedel, čo je obsahom komunikácie, a tak tento systém plnil i šifrovaciu úlohu. Neskôr sa kódové tabuľky každý deň menili (menili sa kódy, nie slová samotné), aby bolo odhalenie obsahu správ zložitejšie, a tak vznikli kódové knihy i problém s (ne)rozlišovaním kódovania a šifrovania.
Dnes už však pomenováva každé slovo inú činnosť s iným cieľom. Kódovacie tabuľky i šifrovacie algoritmy sú (teda, aspoň by mali byť) verejne známe. Jediné, čo sa snažíme utajiť, je kľúč. Dan Brown si však neuvedomuje ani toto.
A posledný príklad: V knihe píše o staršom prípade šifrovacieho algoritmu, ktorý sa mal stať všeobecne používaným v americkej administratíve, a preto ho vytvárala NSA. Autor však do algoritmu dopísal „jenom kratičkú podproceduru“, vďaka ktorej mohla NSA správy zašifrované týmto algoritmom poľahky dešifrovať: zadné vrátka. Viem na čo naráža – na DES (Digital Encryption Standard) z polovice 70. rokov. NSA vtedy mierne pozmenila časť algoritmu, a neskôr (o desiatky rokov neskôr) sa ukázalo, že vedeli niečo, čo kryptografický svet nevedel, a čo im potom umožnilo dešifrovať tieto správy.
Opäť však Dan Brown odkrýva svoju neznalosť. V čom je problém? Štandardizované šifrovacie algoritmy (ako zmienený DES) sa neuverejňujú ako hotové programy (ktoré sa skladajú z procedúr, podprocedúr). Tieto algoritmy sa vyjadrujú matematicky, schematicky či pomocou prirodzeného jazyka (Zober toto, prenásob to s týmto…). Keď NSA zasiahne do špecifikácie algoritmu, zmení pár čísel v nejakej matici, nie „kratičkou podproceduru“.
Tak, ako nemusí autor vyštudovať matematiku a fyziku (hoci Arthur C. Clarke vyštudoval) či mať Ph.D. z biochémie (ako Isaac Asimov), aby mohol písať sci-fi, nie je pre napísanie strhujúceho príbehu zo sveta šifier nutné univerzitné vzdelanie v tejto oblasti. Mohol však dať prečítať rukopis niekomu erudovanému. Týmto chybám by sa vyhol a nekazili by dojem z knihy.
Autor by mal byť zodpovedný za to, čo píše. Keď si knižku prečíta človek, čo sa v tejto oblasti orientuje ešte menej ako napríklad ja, môže ho ľahko pomýliť. A rozširovať tak chybné domnienky o tom, čo môže byť vírus (šifra, kľúč, kód…) a čo nie, a čo taký vírus (šifra, kľúč, kód…) dokáže.
A možno sú práve tieto chybičky fajn reklama. Ako historické nepresnosti v Da Vinciho kóde. Musím sa priznať, nečítal som to, len som počul, že tam mieša fakty s fikciou, k ozajstným postavám, organizáciám a vzťahom pridáva vymyslené. Rovnako je to aj v Digitálnej pevnosti, len tu sa dotýka matematiky, čím sú tie chybičky ľahko odhaliteľné. „Reklama?“ spýtate sa. „Ako môže byť chyba dôvodom pre kúpu…“ A predsa. Tieto chybičky vyvolali určitú vlnu diskusií a tá dobre spropagovala knižku aj film. Škandalózne, to sa totiž predáva najlepšie. Ako keby to nepoznáte z obrazovky či novinového stánku.
A dosť. Dosť kritizovania.
Veď celý text až potiaľto vyváži pár slov: knihu som čítal na stoličke, v autobuse, v škole i v posteli, dva krát až do štvrtej ráno. Nevedel som sa odtrhnúť.
Nech je Dan Brown v informačných technológiách bárs i diletant, písať vie.
kazdy musi z niecoho zit, niekto zvara potrubia, niekto pise knihy. remeslo ako remeslo. ma predsa zlate dno :)
par autorov ale opustilo pole remesla a chceli aj nieco (podla nich) dolezite povedat, vdaka im.
porovnaj si to s galapágami – taky vonnegut s evolucnou teoriou, to je celkom ina kapitola.
no misko, kedze ja som sa vobec ale vobec nerozumela do tych veci o ktorych rozpravas, tak som si knizku vychutnala az do poslednej bodky a jednym dychom dalo by sa povedat…vobec ma netrapili veci, ktore si tu opisal…
No tedy, s tím exponenciálním kódem se mi to nějak nezdá. Pokud se přidáním bitu prodlouží doba prolomení nikoliv dvakrát ale n+1 krát, pak je to cosi jako hyperexponenciální, ne? Pro velká n se to blíží funkci n^n, což není exponenciála. Mě se zdá, že exponenciální by bylo právě, pokud by se délka prolomení zdvojnásobila a skoro bych si tipl, že to tak bude.
To Simona:
Jedna věc je čistá beletrie, druhá věc je dokumentární fikce. Není-li tato pečlivě připravena po konzultaci s odborníky, je znehodnocena v rámci svého žánru. Dokumentární fikci (v rámci sci-fi) bravurně zvládali nejen Asimov a Clark, ale zejména Lem. Ten ani nemusel díky svému polyhistorickému přehledu příliš často chodit za odborníky.
> No tedy, s tím exponenciálním kódem se mi to nějak nezdá. Pokud se
> přidáním bitu prodlouží doba prolomení nikoliv dvakrát ale n+1 krát,
> pak je to cosi jako hyperexponenciální, ne? Pro velká n se to blíží
> funkci n^n, což není exponenciála. Mě se zdá, že exponenciální by bylo
> právě, pokud by se délka prolomení zdvojnásobila a skoro bych si tipl,
> že to tak bude.
sypem si popol na hlavu :-) – je to presne tak.