Julijus Cezaris ir duomenų šifravimas

Savaitės knyga – Codes and ciphers: Julius Caesar, the Enigma and the internet, R. F. Churchhouse. Cambridge University Press, 2004. ISBN 0-521008-90-5.

Legenda ar ne, bet vos ne pirmuoju duomenų šifruotoju laikomas Romos imperatorius Julijus Cezaris, siųsdavęs savo laiškus, užšifruotus paprastai keičiant vienus raidyno ženklus kitais, dažniausiai „perstumtais“ per sutartą pozicijų kiekį. Dabar tokiu pat būdu vaikai mokyklose iš suolo į suolą perduoda raštelius, bet kriptografija nuo Romos laikų labai patobulėjo, nors esminiai principai išliko tokie patys.

Raidžių keitimas kitomis ar sutartais ženklais išliko dažniausiai naudojamas šifravimo būdas daugybę šimtmečių, ir daugeliui mūsų yra pažįstamas bent jau iš Šerloko Holmso ir Daktaro Votsono nuotykių. Deja, toks šifravimas, ypač jei tarp žodžių yra paliekami tarpai ar skyrybos ženklai, yra labai lengvai iššifruojamas.

XX amžiaus pradžioje žvalgybose buvo paplitęs kitas, daug sunkiau ar net visiškai neįveikiamas šifravimo būdas, ištisus žodžius žymint nuorodomis į tam tikros knygos puslapį, eilutę ir poziciją joje. Tokiu būdu žodis knyga, jei naudotumėmės šiuo rašiniu šifravimui, būtų užrašomas kaip 1-1-2. Jei pranešimo perėmėjai nežino, kokia knyga remiasi šifras, tai jo perskaityti neįmanoma, ypač jei šifruotojai vengė tą patį pasikartojantį žodį žymėti ta pačia knygos nuoroda.

Toks šifravimas turėjo ir didelių trūkumų: vos pačiupus priešo žvalgą, žinantį kokia knyga naudojama šifravimui, kaip mat jis būdavo įveikiamas. Bet dar didesnis minusas buvo tai, kad šifravimas vyko labai lėtai, mat knygoje reikėjo surasti visus reikalingus žodžius, taigi kaskart ją skaityti iš naujo.

Todėl grįžta prie to paties Julijaus Cezario principo, tačiau vietoje paprasto perstūmimo per kelias raidyno pozicijas, imta naudoti daug sudėtingesnius ir ilgesnius, keičiamus šifro raktus. Tokiu principu II pasaulinio karo metais veikė ir pirmoji „neįveikiama“ šifravimo mašina – Enigma.

Taip veikia ir modernios šifravimo sistemos RSA ir DES bei, su tam tikromis variacijomis,  viešoji PGP šifravimo sistema. Šių sistemų atsparumas iššifravimui labai priklauso nuo šifravimo rakto ilgumo (bitais) ir unikalumo (kuriam labai svarbi atsitiktinės sekos, generuojančios raktą, kokybė). Nesigilinsiu čia, pasakodamas, kaip generuojami raktai, nors įdomu, kad jiems pasitelkiami netgi prietaisai, sekantys kosmoso spinduliavimą.

Beskaitant knygą man ramybės nedavė dvi mintys. Pirma, dabartinis šifravimo rakto ilgis ir patikimumas kels juoką jau po 10 metų. Kompiuterių galingumas taip sparčiai didėja, kad duomenys, kurie šiandien yra užšifruoti patikimai, netrukus bus iššifruojami vaikišku kompiuteriu, nebent šifravimas bus nuolat kartojamas progresyviai sudėtingesniais raktais.

Nesu kriptografas ir net perskaitęs šią knygą tokiu nesijaučiu, bet turiu idėją, kaip išspręsti teksto žinučių šifravimą taip, kad jo niekas neįveiktų. Tereikia tik pasinaudoti tuo pačiu senu žvalgų metodu su knygomis, tik paspartinti jį naudojant grep paiešką ir elektronines knygas, o ne spausdintas. Pasirašyti programėlę, pagal bet kurį tekstą iš Project Gutenberg, užkoduojančią laiškus, galėčiau netgi aš. O įveikti to kodo, nežinodamas knygos, negalėtų net galingiausias kompiuteris. Ypač jei su knyga yra atlikta sutartinė manipuliacija (pvz., poriniai-neporiniai puslapiai sukeisti vietomis arba perstumti tam tikra tvarka).

Neturiu ko slėpti – kriptografija domiuosi iš smalsumo. Kai kurias „Codes and ciphers“ knygos vietas dėl matematinių teorijų neišmanymo netgi teko skaityti kelis kartus, bet šiaip ji yra puikus skaitinys visiems, besidomintiems duomenų šifravimu.

P. S. Tuo pačiu tikiuosi atgaivinti ir apmirusį Skaitinių skyrelį, kuriame kiekvieną penktadienį pristatysiu po vieną naujai perskaitytą knygą. Tikiuosi, jums patiks.

This entry was posted in rinktiniai, skaitiniai. Bookmark the permalink. Both comments and trackbacks are currently closed.

5 Comments

  1. Posted 2007.7.27 at 18:37 | Permalink

    am, jei mano žinios teisingos, norėčiau pastebėti vieną labai didelį skirtumą tarp RSA ir kitų asimetrinių šifravimo sistemų ir Cezario šifro: antruoju būdu užšifravimo ir atšifravimo raktai nesiskiria. Tuo tarpu pirmuoju skiriasi – žinodamas, su kuo buvo užšifruotas tekstas, negalėsi atšifruoti.
    Šiaip kriptografija labai įdomus dalykas. Yra tekę perskaityti knygą „The Code Book“ (nežinau nei autoriaus, nei leidyklos, nei metų, nei dar ko) – viskas apie kodavimą, su išsamiais paaiškinimais. O tada pradėjau leisti laiką svetainėje Net-Foce, [gyvas pavyzdys, kada nofollow atributas netinka ;)] kur galima atlikinėti daug su kriptografija (ir ne tik) susijusių užduočių.

  2. vienastoks
    Posted 2007.7.27 at 19:01 | Permalink

    Tai tų skirtumų ir daugiau esama. Atkreipdamas dėmesį į panašumą, turėjau galvoje, kad visi jie įveikiami „brute force“ metodais, nes yra pakaitiniai, tegu ir netiesioginiai.

    (O pavyzdys su Nofollow netinkamas, nes tavo nuoroda nėra knygos recenzijos dalis, bet kuo puikiausiai dera prie komentaro :) )

  3. Posted 2007.7.27 at 21:27 | Permalink

    mano mėgiamiausias – matricinis kodavimas. tik gaila, kad kartu su žinute reikia siųsti ir raktą. nors galima susitarti tiek dėl rakto, tiek dėl pačio duomenų siuntimo kodavimo ,)

  4. Krafas
    Posted 2007.12.7 at 11:03 | Permalink

    Manau, kad RSA ir Cezario sifro nera net ko lyginti… Naudojant RSA ir imant kokiu 256 bitu rakta, galima -jaustis saugiu, o vat cezari, manau, galima ir be rakto issifruoti…

  5. Posted 2009.1.5 at 4:29 | Permalink

    Radau seną beveik rebusą:
    http://www.rzu.lt/?2009-01-04
    :)