Kódfejtő blog

Villámesküvő

2012. november 19. 08:05 - L. B. Alberti

 

7. Fejezet        Villámesküvő (Mitnick-Simon A legkeresettebb hacker)

 

A kód:

 

Rm k rxzq apfkk f Tkgbjuc Dwvl ryxotxmrufkk fosrxo m kgrobj oovnpfem

s leqwy jxpveiqjexiu es eyavgb rfhssl lmcmwvexisqksx?

 

Első pillantásra nem is tűnik túl bonyolultnak a fejezet elején található rejtvény. Nagybetű, kérdőjel, szóközök… Gyorsan eresszük rá a Caesar-fejtő programot.

Hamar érkezik a kiábrándító valóság, ez bizony nem ilyen egyszerű.

Akkor nézzük meg egy kicsit alaposabban is a feladványt. Így alaposabb vizsgálódásra feltűnhet, hogy számos egyedül álló karakterrel találkozunk, ráadásul ezek nem is egyformák. Ez bizony polialfabetikus rejtjel. Ha kutakodunk egy keveset a polialfabetikus rejtjelek között, rátalálhatunk az egyik legismertebb fajtájára a Vigenère-rejtjelre. Erről bővebben olvashatunk itt és itt. Ha inkább papír alapon szeretünk olvasni tudom ajánlani Simon Singh Kódkönyv-ét illetve T. Dénes Tamás remek TitokTan Trilógiáját. Ha valaki inkább vizuális típus ezen a videón megnézheti a kódolás eljárását. Vigenère az eljárást 1586-ban „publikálta”. Az eljárás „bonyolultsága” miatt azonban közel 200 évre feledésbe merült.

Miután kiműveltük magunkat a kódolással kapcsolatban, ideje foglalkozni egy csöppet a feltörésével is. Mindenek előtt, hajtsunk fejet Charles Babbage és Friedrich Wilhelm Kasiski előtt. Mindketten elsők e rejtjellel kapcsolatban. Babbage törte fel először 1854-ben, viszont Kasiski publikálta elsőnek 1863-ban. Lehetséges, hogy Babbage a brit hírszerzés nyomására tartotta titokban, így a nem sokkal korábban kitört krími háborúban hatalmas előnyhöz juttatta a briteket az oroszokkal szemben, mivel ekkor már általánosan használták a „feltörhetetlen” rejtjelzést.

No, akkor nézzük miről van szó. Egy adott szöveg egy-egy betűjét egy kulcs szó adott betűjével kódoljuk, az adott Vigenère-táblázat alapján. (lásd a videóban).

A megfejtés bonyolultsága abban rejlik, hogy ugyan az a betű többféleképpen sifrírozható. Vagyis a nyílt és a rejtjelezett szöveg betűstatisztikája eltérő. Babbage felismerése az volt, hogy egy betűnek annyi kódolása lehetséges amilyen hosszú a kulcs szó. Ha a nyílt szövegben ez a szó sokszor fordul elő, akkor igencsak valószínű, hogy a rejtjeles szövegben a kulcsszó hosszának megfelelő számú kódbetű ismétlődni fog.  Íme egy példa:

Legyen a kulcs: BAL és a nyílt szöveg: VALAMI VAN AMI VALAKIE

 

kulcs B A L B A L B A L B A L B A L B A L B
nyílt V A L A M I V A N A M I V A L A K I E
rejtjel w a w b m t w a y b m t w a w b k t f

 

Valóban a táblázat harmadik sorában szereplő rejtjeles szövegben két ismétlődő betűcsoportot is találunk. (waw illetve bmt). Babbage észrevette, hogy a fenti hipotézise alapján, az ismétlődésnek az az oka, ha a nyílt szövegben a kulcs hosszának (esetünkben: 3) többszöröse két azonos betű távolsága. Példánkban az 1., 2., 3. betűkből álló betűcsoport „VAL”, és a tőlük 12 pozíciónyira lévő betűcsoport is „VAL”, ebből következik, hogy a nekik megfelelő rejtjeles betűcsoportok is megegyeznek.

A Babbage féle kriptoanalízis első fázisában tehát olyan karaktersorozatokat kell keresni amelyek többször előfordulnak a szövegben. Miután megszámláltuk az ismétlődésük közötti távolságokat, megállapíthatjuk az ismétlődés faktorait, azokat a számokat, amelyekkel a távköz betűhelyei által meghatározott szám, maradék nélkül osztható. Példánkban a waw betűcsoport közötti távolság 12, míg a bmt csoportok közötti távolság 6. Mindkét távolság osztható 3-mal és 6-tal, ebből következik, hogy a kulcsszó hossza 3 vagy 6.” (T. Dénes Tamás TitokTan Trilógia – Újkori RejTények 128.-129. o)

Ha megvan a kulcsszó hossza (példánkban: 3), szükség lenne a kulcsszó betűire(L1-L2-L3). A rejtjelzés feltehetően a nyílt szöveg első betűjénél kezdődött a kulcsszó első betűje L1 által meghatározott  Vigenère-táblabeli sor szerint. Mikor a második betű kódolására kerül sor, a rejtjelző a Vigenère-tábla  L2 sorának monoalfabetikus helyettesítését alkalmazza, és így tovább az L3-ig. A nyílt szöveg negyedik betűjére viszont ismét a Vigenère-tábla L1 sorának megfelelő kódábécével lesz kódolva, az ötödik az L2 sor szerint, s így tovább: a ciklus ismétlődik. A polialfabetikus kód, tehát három monoalfabetikus kódból áll, amely utóbbiak mindegyikét a nyílt szöveg egyharmad-egyharmad részének rejtjelzésére használják.

Tudjuk tehát, hogy a L1 sorral kódolták az üzenet 1., 4., 7., 10. … betűjét, ennélfogva ha ezekre a betűkre elvégzünk egy gyakoriság elemzést meg tudjuk fejteni a kérdéses kódábécét. A gyakoriság táblázat eredményeinek egyezniük kell a normál ABC betűelőfordulási viszonyaival, csak a kódábécét az eredetihez képest néhány betűhellyel elcsúsztatták. 

Tehát az első feladat keressünk a szövegben ismétlődő betűcsoportokat. Találunk is kettő ilyet, az egyik az EXI  másik az FKKF. Mindkettő távolsága 24, tehát az adott kulcs 1, 2, 3, 4, 6, 8, 12, 24 karakter hosszú lehet. Praktikus okokból dobjuk ki az 1-et, mert az Caesar rejtjel lenne, azt meg ugye az elején már kizártuk. Dobjuk ki a 24-et is, mert ez nem kulcsszó, hanem kulcs mondat lenne. Foglalkozzunk most csak a 6, 8, 12 karakteres kulcsokkal. Van egy nagy segítségünk, ami Babbage-nek nem állt rendelkezésre. Mégpedig az, hogy szóközökkel tagolt a szövegünk. Ebből kiindulva, feltételezhető, hogy az egyedül álló betűk valójában a betűnek felelnek meg. Ha megnézzük a Vigenère-táblát, látható, hogy az a betű kulcsolásánál a kulcsszó adott betűjét kapjuk eredményül. Jelöljük meg tehát az egyedül álló betűket, szórjuk ki a szóközöket,és rendezzük 6-os csoportba a szöveget:

R m k r x z
q a p f k k
f T k g b j
u c D w v l
r y x o t x
m r u f k k
f o s r x o
m k g r o b
j o o v n p
f e m s l e
q w y j x p
v e i q j e
x i u e s e
y a v g b r
f h s s l l
m c m w v e
x i s q k s
x

Látható, hogy az f és az m egy oszlopba került. Ez nem jó, ugyanis az adott oszlopot a kulcsszó ugyan azon betűjével kódolták, így nem lehet különböző.

Nézzük meg a 8-as felosztást is. Most a k és az m került egy oszlopba, így ez sem lesz jó. Jöhet a 12-es.

R m k r x z q a p f k k
f T k g b j u c D w v l
r y x o t x m r u f k k
f o s r x o m k g r o b
j o o v n p f e m s l e
q w y j x p v e i q j e
x i u e s e y a v g b r
f h s s l l m c m w v e
x i s q k s x

Na, ez már használhatónak tűnik. Ha jól gondolkoztunk akkor máris van 4 betűnk a kulcsból:

f*k***m**s**

Az adott oszlopokat ezekkel eltolva ezt kapjuk:

M * a * * * e * * n * *
a * a * * * i * * e * *
m * n * * * a * * n * *
m * i * * * a * * z * *
e * e * * * t * * a * *
l * o * * * j * * y * *
s * k * * * m * * o * *
a * i * * * a * * e * *
s * i * * * l

Most mehetünk tovább Babbage elméletével, azaz a második oszlop betűgyakoriságát rávetítjük a normál betűgyakoriság táblázatra, és így keressük meg az eltolást, de kihasználhatjuk a szóközök nyújtotta előnyt. Tegyük vissza őket, és vessünk egy pillantást így visszafejtett szövegre:

M* a ***e **n** a *a***i* *e** m*n***a**n** a*i*** a **z**e *e***t** a **l*o ***j**y**s*k ** *m**o* *a*i** *a**e**s*i***l?

Már adja is magát, hogy a második betű i lesz. Tehát kulcsszónak a második betűje az lesz, ami a nyílt szöveg i betűjét m-re változtatja. Az adott oszlop betűire ráengedjük a Caesar fejtő proginkat, ami ki is dobja, hogy +22 eltolással lesz az m-ből i. Ezután azt kell megnézni, hogy az i +22-es eltolása hová visz. Ez pedig az e betű lesz. Az L2 tehát e. A kulcs (fek***m**s**) meglévő betűivel visszafejtett szöveg pedig így alakul:

Mi a ***e **n** a Pa***i* *e** mun***a**n** aki*** a **z**e ke***t** a **lso ***j**y**sek ** *m**o* *adi** *a**e**sei***l?

Ismét mázlink van. A nagybetűvel kezdődő (Tkgbjuc Dwvl) „név”ből kisilabizálhatóvá vált néhány részlet. (Pa***i* *e**). Ezzel lehet kezdeni valamit. Ha szorgalmasak voltunk és elolvastuk előre a fejezetet, máris derenghet, a Pacific Bell, aminek a hackelése szóba kerül. Nosza, keressük meg azokat a kulcsszó részleteket, amivel visszaállíthatjuk ezt a szövegrészletet. Ahogy szép lassan fejtegetjük vissza a kulcsszó betűit egyre több részletre derül fény. Végül megtudjuk, hogy a kulcs nem más, mint az előző rejtvény megoldása (feketemacska). Ellenőrzésként, használjunk egy online Vigenère kódoló-dekódoló programot. A felső mezőbe bemásoljuk a kódolt szöveget, a kulcshoz beírjuk a kulcsszót (feketemacska) és nyomunk egy dekódolás gombot. Az eredmény már érkezik is:

Mi a neve annak a Pacific Bell munkatarsnak akinek a kezebe kerultek

a belso feljegyzesek az amator radios hackeleseimrol?

A nagy mellkidüllesztés mellett, hogy sikerült megfejteni a szöveget, azért azt ne feledjük el, hogy rengeteget segített, az hogy a szóközöket, és nagybetűket benne hagyták a szövegben. Ezek nélkül, a szöveg viszonylagos rövidsége miatt azért egy kicsit tovább tartott volna a munka.

Következő fejezet

Szólj hozzá!

A bejegyzés trackback címe:

https://kodblog.blog.hu/api/trackback/id/tr94907051

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása