Legújabb hírek, cikkek a DoclerWeb életében

Informatikai biztonság I. - Kriptográfia, titkosítás kulcs nélkül vagy egyszerű kulccsal

Ha elhangzik az informatikai biztonság szóösszetétel, mindenki valami másra gondol először. Egyeseknek a vírusok, malware-ek, internetes kártevők világa ugrik be, mások a hackerekre asszociálnak. Akik kevesebb hollywoodi filmet néznek, vagy nem volt még szerencséjük személyes adatuk eltulajdonításához, eszükbe juthat az adatvesztés, az adattárolás biztonságának problematikája, akár beszéljünk itt meghibásodásról vagy környezeti csapások okozta vészhelyzetekről, a szerverek fizikai megsemmisüléséről.

Bármelyik lehet jó megoldás, de leginkább mindegyik együtt: az informatikai biztonság számtalan különálló területen igyekszik megvédeni az információt, adatot.

Talán mind közül a laikusok számára is legérdekesebb, legnagyobb és legkalandosabb múlttal rendelkező ága az információbiztonság tudományterületének a kriptográfia, vagyis a titkosítás. Az a cél, hogy az információt csak meghatározott személyek kezébe jusson, illetéktelenek azonban ne férjenek hozzá.

A harc a kódoló és kódtörő között már a középkorban elkezdődött. Sőt már az ókori kelet történelmében is találkozhatunk a virágokat az udvarlás szimbólumaként felhasználó módszerekről, később ennek egész könyveket szenteltek: bár hogy mit jelent a bazsalikom, a nárcisz vagy a cseresznyelevél, egészen jól meg tudta fejteni az udvarlón és a választott, tőle elzárt hölgyön kívül más is.

Titkos szótárak aztán sorra készültek a nemesi középkorban, szintén csak a könyv ismerői tudták megmondani, az egyes mozdulatok, kéztartások mit jelentenek. Egyúttal létrejött az igény arra, hogy egy adott üzenetet csak egy vagy néhány ember legyen képes megérteni, és itt kezdődött el az igazi csata. Egy titkosított üzenet megfejtése ugyanis a mai napig annyi izgalommal - persze sokszor egyúttal anyagi jellegű motivációval - tölti el a kódfejtőket, hogy alig volt olyan üzenet, ami felett ne görnyedt volna szívesen valaki, hogy kitalálja, mit rejtenek a furcsa karakterek. Hogy mi az az információ, amit ennyire titokban akarnak tartani. Ezt a tevékenységet a hatalmi- és anyagi érdekek mellett a mohó emberi kíváncsiság, a leskelődésre és a rejtélyek megoldására serkentő egyéni ösztönök is erősítették.

Egy idő után tehát elvetették, hogy terjedelmes, könnyen ellopható rejtjel-táblázatokat készítsenek, amik az egyes szavak, szimbólumok, később az ABC egyes betűinek felcserélésére vonatkozó utasításokat tartalmazzák. Kitaláltak egy olyan eljárást, amivel a betűket jól meghatározott rend szerint megkeverik (fejlesztettek egy algoritmust), majd ebbe a képletbe egy változó behelyettesítésével meg lehetett fejteni az üzenetet (ez a kulcs). Így tett már Julius Caesar is, ő a később róla elnevezett módszert alkalmazta: négy karakterrel eltolta az ABC betűit, így minden A helyére D került, a B-k helyére E és így tovább. Ebben az esetben tehát a karaktercsúsztatás folyamata az algoritmus, a +4-es szám pedig a kulcs.

Caesar úgy gondolta, hogy a titkosírása kétszeresen is védett: egyrészt ismerni kell az algoritmust, másrészt ismerni kell a kulcsot, hogy megfejtsék az üzeneteket. Valójában egy ilyen titkosítás megfejtéséhez semmi szükség ilyen eszközre. Az üzenet megfejthető egy olyan "hátsó ajtón", ami kikerüli a kód kitalálójának csapdáit, és egy csapásra megfejti az üzenetet. Egyetlen egyszerű karaktersorra van ehhez szükség: a latin ABC karaktereinek nyelvben előforduló gyakoriságára. Aki ugyanis tudja, melyik a legtöbbször előforduló karakter a rejtjel saját nyelvén, az a rejtjelezett szövegben egyszerűen kicserélheti a leggyakrabban előforduló betűt ezzel a karakterrel (hiszen valószínű, hogy a titkosított szövegben is ugyanaz a karakter fordul elő legtöbbször, de legalábbis a leggyakrabban felbukkanók között van). Kellően hosszú szöveg esetén nagyon gyorsan működik, és a Caesarnál bonyolultabb, karaktercserélő algoritmusok is kijátszhatóak vele.

A magyar nyelv betűgyakorisági sorrendje (ékezetes betűk nélkül):
E A T O L N K S I R M Z G D U B V H J Y P F C Q X W

Vannak persze olyan módszerek is, amik nem a karakterek egymásra (vagy más, idegen karakterre) történő kicserélésével működnek. A transzpozíciós titkosítás például állandó hosszúságú blokkokra szabdalja a szöveget, és egyszerűen felcseréli a nyílt szöveg betűit. Ebben az esetben a betűk nem változnak, csak helyet cserélnek - így pontosan ugyanannyi "A", "B", stb. betű van a titkosított szövegben, mint az eredetiben, és a fenti módszerrel semmit nem tudunk meg. A megfejtéshez pedig - a kód elhelyezője szerint legalábbis - ismerni kell a blokkok méretét, valamint a permutáció módszerét.

Van azonban a nyelvnek számtalan más ismérve, tulajdonsága, amit minden jó kódtörő ismer. Ha például a gyakorisági sor mellett ismerjük azt az állítást, hogy egy nyelvben a betűk egymásutániságának valószínűsége állandó, és ismerjük ezeket az állandókat, viszonylag könnyen visszafejthetjük az üzenetet.

Még többet tudunk elérni, ha ismerjük a kódolt üzenet nyelvének betűgyakorisági súlyait. Vagyis nem csak azt, hogy a leggyakoribb betű a magyarban az E, utána következik az A, stb., hanem megismerni azt is, ezek mennyivel gyakoribbak a többinél. A vizsgálat során kiderül, hogy az első három leggyakoribb betű (E,A,T) előfordulási aránya több mint 25 százalékos a nyelvben. Három betű elfoglalja a karakterek negyedét. Ha nem hisszük el, könnyen meggyőződhetünk róla: itt találunk egy viszonylag gyors algoritmust használó szövegelemző oldalt, ahová tetszőlegesen hosszú magyar szöveget beilleszthetünk. A kapott "individual letters" eredményt egy táblázatkezelőbe másolva kiszámolhatjuk az egyes szövegben a betűk összes előfordulását, így százalékos megoszlásukat is.

http://jumk.de/wortanalyse/word-analysis.php

De miért jó ez? Tegyük fel, hogy egy ismert (már megfejtett) hosszúságú kulccsal rejtjelezett szöveget vizsgálunk, amiben a karaktereket a kulcs adott sorszámának megfelelő mértékben csúsztattak el (Ha a kulcs az "123" vagy "ABC", akkor a nyílt szöveg első karakterét eggyel, a másodikat kettővel, a harmadikat hárommal csúsztatják el a Caesar-módszer szerint). Ekkor az összekeveredett betűsornak már saját, az eredeti nyelvre nem jellemző betűgyakorisága és gyakorisági súlya lesz. Ha azonban elkezdjük csúsztatni a szövegben a karaktereket, az összsúly kiszámításával megláthatjuk, hol látunk kiugró értéket. Egy nagy számítási igényt nem igénylő módszerrel tehát, akár papíron megfejthetjük a kulcsot.

A számítógépek használatával természetesen megváltozott a kódfejtés menete. Ahogy egyre gyorsabbak lettek a processzorok, egyre gyorsabban voltak képesek behelyettesíteni akár az összes kulcsot az összes lehetséges hosszban az adott titkosított karaktersoron. A brute force módszerével nem a kifinomult csapdák még kifinomultabb elkerülése lett a cél, hanem a teljesítmény az egyre hosszabb és bonyolultabb kulcsokkal szemben.

« Vissza az előző oldalra

ITbiztonság titkosítás