Lucifer DES néven hódított
2013/12/03 14:12
1737 megtekintés
A cikk már legalább egy éve nem frissült, az akkor még aktuális információk lehet, hogy mára elavultak.

Az utóbbi időben egyre többet hallani az NSA, az amerikai titkosszolgálat kódfejtő részlegének tevékenységéről. Azt már kevesebben tudják, hogy nemcsak a megfejtésben, hanem a titkosítási módszerek alkalmazhatóságában is meghatározó szerepet játszik és játszott a cég már korábban is.

A második világháború és a rá következő időszak fő titkosító eszköze az Enigma volt, ami Lorenz szabadalma alapján végezte el a nyílt szöveg titkosítását, és ami fő erénye volt, képes volt a titkosított szöveg visszaalakítására is nyílt szöveggé. A szövetséges erők együtt fejtették meg az Enigma titkát, amiben nagy szerepet játszott a Colossus nevű, Bletchley Parkban használt, rugalmasan alakítható, tehát ha nem is teljesen szabadon, de részben programozható számítógép, amelyből több példány is készült. Ennek első példányát különben 1943. december 8-án szállították le Londonból, amit a posta Dollis Hill-i kutatóközpontjában készítettek el tíz hónap alatt. A berendezés 1975-ig titkos volt, a készítőit megeskették, hogy nem beszélnek róla, sőt még az eredeti tervrajzokat is megsemmisítették. Az első ismertté vált és sokak által ma is elsőként tudott amerikai építésű elektronikus készülék, az ENIAC technikailag sokkal fejletlenebb volt e számítógépnél.

Mechanikus gépek helyett számítógép

Az ötvenes és hatvanas évekre a számítógépek már olyan mértékben elterjedtek, főleg az államigazgatás és a hadsereg körében, hogy felmerült annak az igénye, hogy a kódolást végző célgépeket a sokkal rugalmasabban használható számítógépekre írt titkosító algoritmusokkal váltsák le, azaz virtuális kódolókat alkalmazzanak, amelyek a mechanikus szerkezetekkel soha meg nem valósítható módon is képesek a jelek átalakítására.

Az egyik lényeges különbség azonnal új lehetőségeket is nyitott: amíg a mechanikus kódolók általában a betűkkel végeztek átalakításokat, addig a számítógép számára ezeket először számokká kellett alakítani, majd a számokat újra szöveggé. Eközben viszont a számokon már szinte bármilyen matematikai algoritmust el lehetett végezni. A szöveg számokká alakítása 1965-re vált általános szabvánnyá: ASCII lett a neve, azaz American Standard Code for Information Interchange, magyarul az információcsere szabvány kódja.

Az üzleti élet szereplői is egyre inkább igényelték, hogy egymás közötti üzenetváltásuk is titkosítva valósuljon meg. Bármely két cég viszont csak akkor tud szabadon és egyszerűen titkosan üzeneteket cserélni, ha a maga a titkosítás módszere szabványosított.

Szabvány kell

A számítógépes algoritmusok egyik úttörője Horst Feistel volt, aki 1915. január 30-án Németországban született. 1934-ben kivándorolt az Egyesült Államokba, de sokáig nem kapta meg az állampolgárságot, és amikor már majdnem megkapta volna, kitört a háború, ami alatt még házi őrizetbe is került egy ideig, hasonlóan sok német bevándorlóhoz.

Horst Feistel

Feistel türelmesen kivárt, és végül 1944. január 31-én kapott amerikai állampolgárságot. Ezideig titkolta a titkosítás iránti érdeklődését is. Amint megbízhatónak nyilvánították, szinte azonnal az amerikai légierő cambrige-i kutatóközpontjában, az US Air Force Research Center Cambridge-ben ( AFCRC ) kezdett el dolgozni. Ez a központ foglalkozott a külföldi kommunikáció figyelésével és megfejtésével is. Feistel időközben diplomát szerzett a MIT-n, és mint fizikus a Harvardon is végzett tanulmányokat.

Az NSA úgy érezte, hogy a központ konkurencia a titkosítás területén, és az NSA-ban alkalmazott számos kiváló matematikus dacára is komoly kihívást jelent annak eredményessége, így viszonylag gyorsan ellehetetlenítették munkáját, Feistel kutatási programját konkrétan töröltették. A hatvanas években ezért Feistel a MITRE vállalathoz ment át, ami az MIT egyik kutatóbázisa volt, de itt is hamarosan utolérte az NSA, és rákényszerítették munkájának abbahagyására.

Végül az IBM J. Watsonról elnevezett laboratóriumában kötött ki, ahol végre megkapta a szükséges támogatást és védelmet a saját titkosítási módszere kidolgozásához. A hetvenes évek elejére elkészült a Lucifer rendszer. Feistel munkája volt az egyik legkorábbi a nem-kormányzati kutatók által tervezett és megvalósított blokktitkosítások között.

Megszületik a szabvány

Feistel által kitalált módszer végül is tehát az IBM-nél nyerte el végleges formáját. Az itt eredetileg kidolgozott Lucifer nevű eljárás 128 bites kulcsot használt, amit viszont az NSA sem tudott az akkori eszközeivel valós időben megfejteni, így újra beavatkozott, és csak 56 bites kulcsok használatára adott engedélyt, mert az így kódolt üzenetekkel már könnyeb dolga volt speciális gépeivel. A végleges szabvány neve DES lett, azaz a Data Encryption Standard, magyarul szabványos adattitkosítás.

A DES a szimmetrikus titkosító algoritmusok egykor népszerű típusa. Első lépésként az üzenetet bináris számsorrá alakítjuk, konkrétan a betűk helyett azok ASCII kódjait írjuk le. Ezután második lépésként a bináris számsort 64 hosszúságú szakaszokra bontjuk. A titkosítás gyakorlatilag az ezt követő lépéssor 16-szori megismétlésével történik meg. Egy cikluson belül ezekkel a szakaszokkal egyenként 3 lépést hajtunk végre. Itt elsőként a szakasznak nevezett 64 számjegyet megkeverjük, és két részre bontjuk: Bal_0 és Jobb_0 félszakaszra. Ezután a Jobb_0 32 számjegyét a megbeszélt kulccsal „kiforgatjuk”, azaz titkosítjuk. A „kiforgatás” nem más, mint egy bonyolult behelyettesítési rendszer, ami valójában azért alapjaiban a Caesar-féle betűeltolás továbbfejlesztett, a de Vigenère kódolás számokon végzett változata. Ezután a Jobb_1 a Jobb_0 és Bal_0 bináris összege, a Bal_1 pedig az eredeti Jobb_0 lesz. Ez utóbbi 3 műveletet végezzük el tehát 16-szor a félszakaszokkal.

A címzett az üzenetet ugyancsak szakaszokra bontja, és a megbeszélt kulcs használatával az algoritmus fordított irányú végrehajtásával tudja megfejteni azt.

des

A DES jelene

A Lucifer saját korában olyan erős volt, hogy az NSA sem tudta volna megtörni, ha nem az ő nyomásuknak szabványként elfogadott 56 bites kulcsot használták volna. A gyakorlatban a módszer alkalmazása azt jelentette, a titkos üzenetet váltani kívánó két cég dolga az volt, hogy a lehetséges 2 az 56-ikon, azaz a nagyjából 72 000 000 000 000 000, kiolvasva 72 billiárd, szám közül kiválaszt egyet kulcsnak, amit a titkosításhoz fel kíván használni. A lehetőségek száma ugyan óriásinak tűnik, de azt éreznünk kell, hogy a hetvenes években egy átlagos számítógépnek több év kellett volna ahhoz, hogy megtalálja a kiválasztott kulcsot, de már ekkoriban volt olyan kapacitása az NSA-nak, hogy egyszerű próbálgatással is meg tudta határozni!

Kulcsgondok

Mind a kódolás, mind a dekódolás gyors a DES esetében, évtizedekig használták is emiatt eredményesen, később 64, 96 és 128 bites kulcsokkal is, annak ellenére, hogy egyre körülményesebbé vált a használata, aminek az oka a kulcs megosztásának szükségessége volt. A tényleges üzenetváltáshoz ugyanis a két félnek valahogy meg kellett állapodnia a közös kulcsban. Ez megoldható volt személyes találkozóval, ami a legbiztonságosabb módszer volt, de ha már találkoztak, akkor beszélhettek is. Ha futár vitte a kulcsot, az már kockázatot jelentett, mivel nem volt ellenőrizhető, hogy a futár nem adta-e másnak is át útközben. Épp emiatt a hetvenes évekre már azon gondolkodtak, hogy a kulcsmegosztás problémáját hogyan oldják meg.

De ez megint egy újabb történet.

További érdekes oldalak:

Rozgonyi-Borus Ferenc cikke