Biztonság, védelem a számítástechnikában Wagner György Általános Informatikai Tanszék 4. előadás
Szteganográfia Görög szó: szteganosz: fedett grafein: írni Célja:
Nevezetesebb esetek Perzsa támadás Görögország elleni.e. 480-ban. Egy száműzött görög értesíteni akarta honfitársait a várható támadásról. Minden határátkelőn komoly ellenőrzések voltak. Megoldás: a viasztábláról levakarta a viaszt. A fába véste az üzenetet, majd bevonta viasszal. Az üzenet majdnem elsikkadt, ők is üresnek vélték a táblát Lázadásra bíztatás a perzsa király ellen. A küldönc fejét leborotválták, ráírták az üzenetet. Amikor a haj megnőtt a küldönc elindult. Sikeresen megérkezett. Kínaiak finom selyemszövetre írtak, kis labdává göngyölték, viasszal borították, majd lenyelték
Nevezetesebb esetek (2) XVI. század: Giambattista della Porta: tímsó + ecet-tel kemény tojás héjára írni. Az oldat behatol a tojás pórusain, a héján azonban nem hagy nyomot. Feltörve, az üzenet olvasható. Pitypang tejével, vizelettel, tejjel üzenetet írni. Höhatására az üzenet előtűnik. II. világháború: mikropontok. Dél-Amerikában tevékenykedő német ügynökök fényképészeti eljárással egy gépelt oldalnyi szöveget 1 mmnél kisebb pontra zsugorítottak. Azt a pettyet egy levél valamelyik mondatának végére tették. Az FBI csak füles útján vett róla tudomást 1941-ben. (fényes, filmre utaló sima felületet kerestek) Azóta szinte bármi: festményen fűszálak hosszával morze jelek, levélben minden szó első betűje, sakkjátszmák lépései levélben, stb, stb. Digitális módszerek...
Kriptográfia Görög szó: krüptosz: rejtett grafein: írni Kriptográfia: Az üzenet titkosításának és megfejtésének tudománya Kriptoanalízis: A kódszövegből az eredeti szöveg kulcs nélkül történő visszaállítása Sifrírozás (kódolás): Az eredeti üzenet kódszöveggé történő alakítása. Desifrírozás (dekódolás): A kódolt szöveg visszaalakítása eredeti szöveggé
Módszerei Átrendezés (keverés) Behelyettesítés Kerckhoff-elv (1883, Auguste Kerckhoffs von Nieuwenhof): A kódolási rendszer megbízhatósága nem függhet a titkosítás algoritmusától, azt csak a kulcs titkának megőrzése garantálja
Átrendezés A betűket egyszerűen átrendezik: 1. Aki aki, aik, iak, ika, kai, kia (Hosszabb mondat esetében rengeteg variáció! elakaromrejteni e a a o r j e i l k r m e t n eaaorjeilkrmetn. Persze lehet három, vagy több sor is). Spártai szkütalé: hadvezéri pálca i.e. 404-ben. (szabályos sokszög alapú hasáb) (rajz )
Behelyettesítés Legrégebbi előfordulása a IV. században volt. Vátszjajána, brahmin tudós 200 évvel korábbi kézirat alapján megadta, milyen művészeteket kell tanulmányozniuk a nőknek. Címe: Kámasutra Ebben főzés, öltözködés, illatszerek, masszírozás, stb. A 45. tétel: rulekhita-vikalpa titkosírás
1. Példa a d h i k m o r s u w y z v x b g j c q l n e f p t meet at midnight cuuz vz cgxsgibz
2. Példa Julius Caesar több félét is használt. 1. latin szöveg, de görög betűk a latin helyett kevesen tudnak oroszul кэвэшэн туднак оросул Meglepően hatékony volt! 2. Betű eltolás 3-mal a d b e c f d g Pl: attack dwwdfn
Behelyettesítés általánosságban Feladó: Algoritmus (Nyílt szöveg, kulcs) Kódolt szöveg Címzett: Algoritmus (kódolt szöveg, kulcs) Nyílt szöveg
A kulcsok A Caesar-kódolás esetén a probléma, hogy mindössze 25 lehetséges kulcs van (1-gyel, 2-vel, stb-vel való eltolás) Hiába titkos a kulcs, ha könnyű az összes variációt végig próbálni, mert csak eltolás-t használunk. Ha általánosabb módon készítjük a kód abc-t, vagyis teljesen keverjük az abc-t, akkor: 400 000 000 000 000 000 000 000 000 lehetséges variáció van!! Pl: a j, b l, c p, d a, e w, attack jxxjpr
Probléma Nehéz megjegyezni a kód abc-t, leírni veszélyes. Megoldás: kulcsszó használata, pl: matyas kiraly Eltávolítani a helyközöket, és az ismétlődő betűket. Ezzel indul a kód abc, majd folytatódik a rendessel, de mondjuk magánhangzók nélkül: a b c d e f g h i j k l m n o p q r s t u v w x y z ma t y s k i r l m n p q r s t v wx z b c d attack mzzmtn
A monoalfabetikus behelyettesítés Rengeteg a kulcs, hátrányban a feltörők. Pedig a megoldás már régen kész! i.sz. 750: Keleten virágzik a titkosítás. Rutinszerűen, széles körben használják a közigazgatásban! A használt titkosítás szintén a nyílt abc átrendezése. Ennek másik neve: monoalfabetikus behelyettesítés. De képesek voltak megfejteni is azt. A megoldás a betűgyakoriságon alapuló kriptoanalízis.
A megfejtés Az angolban a leggyakoribb betű az e, majd a t, majd az a, stb. A kódolt szövegben kikeresni, melyik betű fordul elő leggyakrabban. Az lesz az e, a második lesz a t, stb. Persze ésszel használni, a módszer NEM automatikus! Probléma: rövid szövegek (kb. 100 betű alatt) esetében nem igazán érvényes a statisztika.
Európa Ugyanaz, csak mintegy 800 év késéssel. Miután kitudódott a megfejtés módszere, jött a védekezés: A betűket számokkal helyettesítették, 1-től 25-ig. 26-tól 99-ig semmilyen valós betűt nem jelentő számok véletlenszerűen beleírogatva a kódolt szövegbe. Nem igazán hatékony.
( a feltörhetetlen sifre ) Alberti ötlete alapján, aki nem dolgozta ki teljesen az elvet: Ez 26 db kód abc. Ha ebből csak egyet használunk, az a Caesar kódolás. Most választunk egy kulcsszót: pl: diag Az ezekkel a betűkkel kezdődő kód abc-ket fogjuk felváltva használni. Kulcsszó: d i a g d i Nyílt: a t t a c k Kódolt: DB TG F S A Vigenere kódolás nyílt a b c d e f g h.. t.. z B C D E F G H I.. U.. A C D E F G H I J.. V.. B D E F G H I J K.. W.. C E F G H I J K L.. X.. D F G H I J K L M.. Y.. E G H I J K L M N.. Z.. F H I J K L M N O.. A.. G I J K L M N O P.. B.. H........................ Z A B C D E F G.. S.. Y A B C D E F G H.. T.. Z
A Vigenere kódolás Másik neve: le chiffre indechiffrable feltörhetetlen kódolás A polialfabetikus kódolások közé tartozik. Előnye: mivel több kód abc van, ezért ugyanazok a betűk máshogy kódolódnak! Hátránya: viszonylag nehezen használható. Következménye: oda a gyakoriság alapján történő megfejtés Érdekesség: kb. 200 évig még használták, mert nem hitték, hogy a monoalfabetikus kódolás feltörhető!!
Homofonikus behelyettesítéses kód Görög szó: homosz ugyanaz, fonosz - hang Minden egyes betűnek több sifréje lehet. Az a az angol szövegben 8% gyakoriságú, ezért 8 különféle sifrét rendelünk hozzá. A b 2% gyakoriságú, ezért 2 sifrét rendelünk hozzá. Következmény: a kódolt szövegben minden betű kb. azonos gyakorisággal fog előfordulni. Valójában: monoalfabetikus, mert miután kialakították a kód abc-t, a sifrírozásnál mindvégig azt használják.
Homofonikus behelyettesítéses kód a b c d e f g h i.. z 09 48 13 01 14 10 06 23 32 02 12 81 41 03 16 31 25 39 70 33 62 45 24 50 73 47 79 44 56 83 53 46 65 88 67 55 68 93 78 57 92 64 74 82 87 98
A monoalfabetikus kód javítása XIV. Lajos (Napkirály) nagy kódja (grand chiffre). Két évszázadig nem tudták megfejteni! Kidolgozói:Antoine és Bonaventure Rossignol (apa és fia). (Haláluk után a rossignol jelentése: álkulcs, tolvajkulcs lett) A kódban 587 féle szám! Vagyis 1 szám nem egy betű. Talán betűpárok? Talán szótagok? Megfejtője: Etien Bazeries, 1890-ben Sok csapda: voltak számok, amik betűket jelentettek, voltak amik azt jelentették, hogy az előtte levő számot törölni kell.
A Vigenere kód feltörése Feltörője: Charles Babbage, 1854-ben Alapja: az ismétlődések kikeresése. Az ismétlődés oka: vagy az, hogy a nyílt szöveg adott karaktersorozatát a kulcs ugyanazon része alapján sifrírozták, vagy csak véletlenül kaptuk ugyanazt. Keressük a legalább 4 karakter hosszúságú ismétlődéseket. Megszámoljuk, hány karakter van két ismétlődés között. Pl: 95 karakter. Akkor a kódszó ezzel osztható hosszúságú, azaz vagy 5, vagy 19 karakter hosszú. Egy másik ismétlődés 20 karakter után ismétlődik, ebből a kódszó 4, vagy 5, vagy 10 karakter hosszú. A közös a kettőben az 5. A kódszó tehát 5 karakter hosszú. A kérdés: mi a kódszó?
A Vigenere kód feltörése Nem tudjuk, de az biztos, hogy a nyílt szöveg 1. betűjét a kódszó első betűje által megadott kód abc-vel kódolták. De a 6. és a 11. és a betűjét is. Ekkor már lehet gyakoriság alapján megkeresni a lehetséges megoldást. Majd ugyanezt a 2., 7., 12., betűkkel is, illetve a 3., 8., 13.,, a 4., 9., 14., végül az 5., 10., 15., betűkkel is. Megfejtését nem publikálta, ezért senki nem is tudott róla. A Vigenere kódot végül 1863-ban Friedrich Wilhelm Kasiski is feltörte, és publikálta is. Babbage-ra csak a XX. Században derült fény, jegyzeteinek átvizsgálása után.
A feltörhetetlen kód A Vigenere gyengesége a kódszó ismétlődése. Ha az nem ismétlődne, akkor nem lehetne feltörni. Megoldás: OTP (Szovjetunió Amerika forródrót ezzel titkosítva) Elterjedt? Nem, mert: nem olyan könnyű nagy mennyiségű véletlen kulcsot előállítani és ezt még el kell juttatni mindenkihez. Hogyan????
Gépesített kódolás Scherbius Enigma-ja A britek, franciák 13 évig nem tudták feltörni. Feltörője a lengyel Rejewski Érdekesség: a főnökének meg volt a megfejtéshez szükséges információ, de nem adta oda neki, hagy legyen formában. Amikor tovább bonyolították az Enigma működését, nem volt elég pénz a feltörésre. A módszert átadták a briteknek. Ott Alan Turing építette meg a Turing-bombát (12 összekapcsolt Enigma). Értéke 100.000 font volt. Működött, de lassan. Két újabb változat. A második neve: Agnes. Ez bevált. 1.5 év múlva 16 ilyen bomba működött párhuzamosan.
Gépesített kódolás Az ellenfelek is használtak hasonlót (Amerika: SIGABA). Ugyan nem törték fel, de nem szerették, mert lassú volt. Kis hadszíntér esetén a csata olyan gyors, hogy nincs idő sifrírozásra és desifrírozásra.
A navahó kódolás A navahó volt az egyetlen törzs, ahol nem jártak a háború előtt legalább 20 évig német turisták. A nyelvet a navahókon kívül mindössze 28 amerikai beszélte. A na-dene nyelvcsaládba tartozik. Az igét nem csak az alanya, hanem a tárgya alapján is ragozzák. Milyen kategóriába tartozik a tárgy: hosszú (pipa, ceruza), vékony (kígyó), szemcsés (cukor, só), stb. Az ige a határozószót is kifejezi, És azt is, hogy a beszélőnek személyes tapasztalata van-e a dologgal, vagy csak hallomásból tudja. Következésképp az ige egy egész mondat szerepét is be tudja tölteni.
A navahó kódolás Probléma: voltak lefordíthatatlan szavak: vadászgép, bombázó, romboló, stb. Megoldás: kódszavak: vadászgép kolibri bombázó keselyű romboló cápa, stb. Feltörhetetlennek bizonyult.
Számítógépes titkosítás Lucifer, későbbi neve: DES Egyelőre hagyjuk Működése: egy kulcs segítségével sifrírozza, ill. desifrírozza az üzenetet. Ha ketten ezzel akarnak kommunikálni, előtte a kulcsot el kell juttatni mindkettőjükhöz. De hogyan? A kódolás (DES) publikus. Aki elcsípi a kulcsot, meg tudja fejteni az üzenetet. Az egyetlen biztonságos mód a személyes kézbesítés. Az pedig lassú.
A kulcs szétosztása Az amerikai kormány kulcsait a COMSEC kezeli. A hetvenes években naponta tonna számra gyártottak, és juttattak el kulcsokat kormányzati szervekhez. A polgári életben ez kivitelezhetetlen. A kriptográfusok mind egyetértettek abban, hogy megbízhatatlan közegen nem lehet kulcsot terjeszteni.
A kulcs szétosztása Tényleg, miért nem megy? Alice és Bob levelezni akarnak. Minden üzenetet sifríroznak, mindig más kulccsal (ne legyen ismétlődés). Ha Alice titkosított üzenetet küld, el kell juttatnia a kulcsot Bob-hoz. Hogyan? Mondjuk hetente egyszer találkoznak, és megosztják egymással a következő hétre elegendő kulcsot. De megbetegedhet valamelyikük, Kerülhetnek egymástól igen távol, Lehet, hogy sose találkoztak
A kulcs szétosztása Elvileg megoldható? Alice mondjuk egy ládába teszi a kulcsot, és lezárja a saját lakatával, majd feladja postán Bob-nak. Bob-hoz érkezve, ő nem tudja leszedni, de a saját lakatát rá tudja tenni. Ráteszi, és visszaküldi Alice-nek. Két lakat van a ládán. Alice leszedi a lakatát és visszaküldi Bob-nak. Bob leszedi a lakatát és kinyitja. Igen, elvileg megoldható a kulcs csere személyes találkozás nélkül. Probléma: a lihegő postás
A kulcs szétosztása Nézzük az előző esetet a kriptográfiában: Alice a maga kulcsával elkódol egy üzenetet, és elküldi Bob-nak Bob a saját kulcsával elkódolja, és visszaküldi Alice-nek Alice a maga kulcsával dekódolja, és visszaküldi Bob-nak Bob a maga kulcsával dekódolja és ott az üzenet. Hurrá! Húzzunk zoknit, vegyünk rá cipőt, vegyük le a zoknit, vegyük le a cipőt. Ajjaj, baj van! A sorrend nem mindegy!
A kulcs szétosztása Sajnos a lakatok esetében mindegy a sorrend, a kódolás-dekódolásnal nem. Reménytelen, tényleg nem megy
A kulcs szétosztása Whitfield Diffie Martin Hellman RalphMerkle A megszállottak Az alapgondolat a maradékképzés: 99:13=7 marad 8, vagyis 99 mod 13 = 8. Ismerjük a 8-at, ismerjük 13-at. Mit osztottunk el? 21-et? 34-et?, 138-at????
A Diffie-Hellman-Merkle módszer 1. Telefonon megegyeznek két számban, pl: 7 és 11-ben. Nem baj, ha más is hallja őket. 2. Alice választ egy titkos számot, pl: 3 3. Bob is választ egyet, pl: 6 4. Alice kiszámolja: 7 3 mod 11-et. Ez 343 mod 11 = 2 5. Bob kiszámolja 7 6 mod 11-et. Ez 117.649 mod 11 = 4 6. Alice elküldi az eredményt (2) Bob-nak 7. Bob elküldi az eredményt (4) Alice-nek. Nem baj, ha más is hallja őket. 8. Alice kiszámolja 4 3 mod 11-et. Ez 64 mod 11 = 9 9. Bob kiszámolja 2 6 mod 11-et. Ez 64 mod 11 = 9 10. Mindkettőjüknél előállt a 9 Ez a kulcs! 11. Mit tud a lehallgató? 7, 11, 2, 4. Ebből nem jön ki a 9!!
A Diffie-Hellman-Merkle módszer Egyszerűbben: 1. Alice-nek és Bob-nak van egy 3 literes edénye, amiben 1-1 liter sárga festék van. 2. Mind Alice, mind Bob önt 1-1 liter valamilyen festéket rá. Nem árulják el, milyen színt. 3. Elküldik egymásnak az edényüket, benne a kevert festékkel. 4. A megkapott edénybe mindenki újra ráönti a titkos festékét. 5. Mindkét edényben ugyanolyan színű festék kell legyen. 6. A lehallgató ha látja is a közbenső színeket, nem tudja mi lesz a végső szín. Ha mintát vesz az edényből, se jó, mert a festék keverés egyirányú folyamat.
Az eredmény Sikerült mindkét oldalon ugyanazt a kulcsot előállítani. Mivel mindkét helyen ugyanazt a kulcsot használják (sifrírozásra, desifrírozásra), ezért ezt SZIMETRIKUS titkosításnak nevezzük.
A nyilvános kulcs Diffie, Hellman-tól függetlenül szintén a problémán gondolkozott. Az ő megoldása a következő: Más kulcsot használjunk a sifrírozásra, és mást a desifrírozásra. Hogy hogyan? Azt még nem tudom, de a működése a következő legyen: Mind Bob, mind Alice rendelkezzen két-két kulccsal. Az egyiket nevezzük titkos kulcsnak, a másikat nyilvánosnak. A titkosat nem adjuk senkinek, a nyilvánosat osztogatjuk. Aki nekünk titkosan akar írni, az a mi nyilvános kulcsunkkal sifrírozzon, és mi desifrírozzuk a titkos kulcsunkkal.
A nyilvános kulcs A lakatos példánál maradva: Legyenek posta hivatalok, ahova mindenki letesz olyan lakatokat, amiket a kulcsával ki tud nyitni. Aki Bob-nak titkosan akar küldeni, az elmegy a postára, és kér egy Bob lakatot. A ládára ráteszi a lakatot. Kinyitni már nem tudja. Elküldi. Bob a kulcsával ki tudja nyitni. Ezt kéne valamilyen matematikai függvénnyel megvalósítani.
A nyilvános kulcs 2 évig semmi eredmény. Ronald Rivest Adi Shamir Leonard Adleman A módszer szintén a moduláris aritmetikára épül. Nézzük leegyszerűsítve:
A nyilvános kulcs 1. Alice választ két prímszámot, és összeszorozza őket. Ez a nyilvános kulcsa. Aki neki küld, ezzel fog sifrírozni. 2. A szorzatból nehéz megállapítani, melyik két prímszám összeszorzásából adódott, (faktorizáció: törzstényezőkre bontás) de Alice ismeri azokat. 3. Azok segítségével meg tudja fejteni a neki küldött üzenetet. A prímszámoknak igen nagyoknak kell lenniük. A szorzatuknak bankügyletek esetén legalább 10 308 nagyságúnak kell lennie. A feltörése 100 millió PC esetén kb. 1000 évig tart.
A nyilvános kulcs James Ellis: kulcs megosztás Clifford Cocks: nyilvános kulcsú kriptográfia Az angol katonai kriptográfiával foglalkozó szervezet alkalmazottai. Titoktartás miatt nem szabadalmazhatták, nem publikálhatták (?)
Szimetrikus-Aszimetrikus A szimetrikus titkosítás gyors, rövid kulcsok is nagy biztonságot adnak Az aszimetrikus titkosítás számításigényes, lassú, ráadásul nagy kulcsokra van szükség. Akkor ez a polgári életben nem fog elterjedni egyhamar
A PGP Phil Zimmermann: védeni kell az állampolgárok személyiségi jogait. A jelenlegi, használható titkosításokat a kormány rutinosan töri (kicsi a kulcs, speciális hardver). Nagy kulcsokat nem szabad használni. Megszületett az RSA. De lassú, a magánszférában nincs ilyen gyors gép. Zimmermann elképzelése: felgyorsítani az RSA-t. Sikerült, de nem eléggé.
A PGP Áthidaló megoldás: Az üzenetet szimetrikus titkosítással kódoljuk (IDEA) A szimetrikus titkosítás kulcsát aszimetrikus titkosítással (RSA) a címzett nyilvános kulcsával kódoljuk. Feladjuk. A címzett a titkos kulcsával az aszimetrikus titkosítást (RSA) megfejti, hozzájut a szimetrikus titkosítás kulcsához. A szimetrikus titkosítás kulcsával az üzenetet megfejti.
A PGP Problémák: Az RSA szabadalom védett A kormány szerint ez túl erős, nem tudja megfejteni A megoldás: Odaadja a programot egy barátjának, hogy az tegye fel az Usenet-re. Onnan ingyen le lehetett tölteni. A következmény: Az FBI szerint ez illegális fegyverkereskedelemnek számít. Bíróság, hercehurca 3 évig