Feltörték az elnöki kódot
2009. július 7. 12:39
Közel kétszáz évig lapult Thomas Jefferson, az Egyesült Államok egykori elnökének hagyatékában az a titokzatos kód, amelyet egész mostanáig nem sikerült megfejteni. A titkosírás bár egyszerű, mégis számítógépre volt szükség a dekódolásához.
1801 decemberében Robert Patterson, a Pennsylvaniai Egyetem matematika professzora kódolt üzenetet küldött barátjának, Jefferson elnöknek. Ez magában nem is lenne szokatlan, hiszen az Amerikai Filozófiai társaság tagjaiként mindketten lelkesedtek a kódok és titkosírások iránt, és gyakran leveleztek ezekről. Jelen üzenetében azonban Patterson a szinte teljesen tökéletes, majdnem feltörhetetlen kódot mutatta be az elnöknek.
Patterson szerit a tökéletes kódot négy dolog jellemzi: minden nyelvre alkalmazható, egyszerűen megtanulható, könnyen írható és olvasható, és mindenek felett talán a legfontosabb, hogy abszolút megfejthetetlen legyen a kódolás mikéntjét nem ismerők számára. A férfi a levélben mellékelte az általa tökéletesnek tartott titkosírást is.
Bár a kód feltörésére és megfejtésére nincs bizonyíték, az elnök azonban annyira hitt ennek erejében, hogy utasította a Belügyminisztériumot annak használatára, és továbbította a franciaországi nagykövetnek, Robert Livingstonnak is. A titkosítást végül a Princeton Egyetem kommunikáció-kutatási intézetének matematikusa és kódfejtője, Lawren Smithline fejtette meg 2007-ben; a folyamat lépéseit és az így kapott szöveget az American Scientist című folyóiratban, valamint a Harward Magazine legújabb számában jelentette meg.
Kódfejtés a Wall Street Journal interaktív bemutatójában
A kód - ahogy azt már Patterson is megírta - nem pusztán a betűk felcserélésén alapult, és a karakterek gyakoriságának elemzése sem segített. Ez érthető is, hiszen a korban már nagyon jól ismerték a gyakoriságelemzést, így a kriptográfusok inkább más technikákat alkalmaztak. Ilyen volt az a gyűjtemény is, ahol minden kifejezést vagy éppen betűt más-más szám jelölt. Jeffersonnak több ilyen nomenclator-könyve is volt, ám Patterson szerint ezzel az volt a baj, hogy memorizálása lehetetlen. A valamikori elnök emellett egy olyan forgó készüléket is használt, amely véletlenszerű karakterekkel kódolta be a szöveget.
Pattersonnak más trükkje volt: szövegeit függőleges sorokban, jobbról balra írta, központozás, valamint kis- és nagybetűk nélkül. Ezen esetben ez 40 sorban átlagosan 60 karaktert jelentett. Ezután a szövegrészeket maximum kilenc sorra osztotta fel, megszámozva őket egytől kilencig. Következő lépésként minden számozott sort átírt, új szövegrészeket létrehozva, és emellett az eredetileg számozott sorrendet is összekeverte, ahol minden szövegszakasz szabályosan ismétlődő sorrendbe rendezett sorokká állt össze.
Patterson levele szerint a kirakóst úgy lehet összerakni, ha tudjuk, hogy egy adott részben hány sor van, és a sorok milyen sorrendben lettek átírva, illetve hogy hány véletlenszerűen számozott részből áll össze az egész szöveg. Szerinte a kódolt üzenet lényegében kétszámjegyű számok összességéből tevődik össze, ahol az első szám a sor számát adja, a második pedig az oszlopok elejéhez hozzáadott betűk számát jelöli. A kód összetettségére jellemző, hogy Patterson szerint ha valaki a megoldó kulcs nélkül próbálná feltörni a kódot, akkor "90 millió a milliomodikon" kombináció közül választhat.
Smithline a kód megfejtésekor közel 80 ezer szám-betű kombinációt próbált ki, ám a megoldás során a nyelvi szabályokat is segítségül hívta. Munkájához egy speciális számítógépes algoritmust is felhasznált: a dinamikus programozás nevű eljárás során a program minél apróbb feladatokra bontotta le a kirakós elemeit, és oldotta meg a feladványt. Smithline szerint ha ezen eszközt nem használta volna fel, a közel 100 ezer kombináció végigpróbálgatása sok idejét felemésztette volna.