Informatika Biztonság Alapjai Tételek 1. Történeti titkosítási módszerek. 2. Szimmetrikus titkosítási módszerek. Vigenere módszer és törése 3. Véletlen átkulcsolás módszere. 4. Transzpozíciós módszer és törése 5. Shannon keverő transzformációja. Lavinahatás 6. DES módszer és törése. 7. Shamir módszer 8. Diffie-Hellman módszer 9. Nyilvános kulcsú titkosítási módszerek. Az RSA módszer működése 10. PGP módszer és működése 11. Hasító függvények. Működés, alkalmazási területek. 12. Blokkos rejtjelezés. Hibák. ECB, CBC módszer 13. CFB, OFB, CTR módszerek 14. Többfokozatú kódolók TripleDES 15. Folyamattitkosítás. 16. PRNG 17. CSPRNG (ANSI X9.17, RSA án alapuló) 18. Hitelesítési módszerek 19. Titokmegosztási módszerek. 20. A jó jelszó tulajdonságai. Jelszókezelés. Jelszó feltörési módszerek 21. Szteganográfia. 22. Támadás fajtái. Kódfeltörés eredményessége 23. Rejtjelbiztonság, egyértelműségi pont. A tételsort mindenki csak saját felelősségére használhatja. Garantáltan vannak benne hibák, amit igyekztem majd kijavítani. A kidolgozás során felhasználtam saját jegyzeteimet és levlistára felrakott tételsort(amit ez úton is köszönök), valamit Tóth Ákos által ajánlott kötelező irodalmat. Sok sikert mindenkinek a tanuláshoz: Koletár Dávid 1
Tartalomjegyzék Tételek... 1 Tartalomjegyzék... 2 1. Történeti titkosítási módszerek.... 3 2. Szimmetrikus titkosítási módszerek.... 6 3. Véletlen átkulcsolás módszere, Verman 1920... 10 4. Transzpozíciós módszer és törése... 12 5. Shannon keverő transzformációja. Lavinahatás... 14 6. DES módszer és törése IBM 1977.... 16 7. Shamir módszer... 19 8. Diffie-Hellman módszer 1976... 21 9. Nyilvános kulcsú titkosítási módszerek. Az RSA módszer működése... 23 10. PGP módszer és működése... 26 11. Hasító függvények. Működés, alkalmazási területek.... 28 12. Blokkos rejtjelezés. Hibák. ECB, CBC módszer... 30 13. CFB, OFB, CTR módszerek... 33 14. XIV. Többfokozatú kódolók: TripleDES... 36 15. Folyamattitkosítás.... 38 16. PRNG... 40 17. CSPRNG (ANSI X9.17, RSA án alapuló)... 42 18. Hitelesítési módszerek... 44 19. Titokmegosztási módszerek.... 46 20. A jó jelszó tulajdonságai. Jelszókezelés. Jelszó feltörési módszerek... 48 21. Szteganográfia.... 49 22. Támadás fajtái. Kódfeltörés eredményessége... 51 23. Rejtjelbiztonság, egyértelműségi pont.... 53 2
1. Történeti titkosítási módszerek. Kinek mikor milyen szintű biztonságra van szüksége? Katonaság Állam Egyház Bank Tudomány Nagyvállalatok Internet széles körű használata, megjelenik rajta a pénz Mindenki Informatikusok Átlagember o 70 % olvas o 30 % nem Ókor Ma Cracker vs. Hacker Hacker: Egy rendszer feltörésével próbálkozik (jó szándékú). A védelem növelése a cél. A Hackerek egy részének ez a szakmája, ők a professzionális hackerek, ők a tudásukból élnek, mint biztonságtechnikai tanácsadók. Kracker: Hasonló a hackerhez, ős is a rendszer feltörésével próbálkozik, de a lényeges különbség az, hogy szándéka a rombolás, pénzszerzés. Script Kiddie: Nem célja hogy hekkeljen vagy crackeljen hanem csak ész nélkül kárt okoz. Tudásuk gyakran nagyon csekély, ezért gyakran nem is tudják, hogy kárt okoznak. Történelmi módszerek: Demaratusz, Xerxész - Karcoljuk bele Titkosítás - Fessük le Csatorna Fejtés - Lakkoldó lak, festék leszedése bármilyen módszerrel - Tudás kell hozzá, hogy megfejtsük az üzenetet - A hordozó birtoklása 3
Fejbőr algoritmus A módszer: végy egy rabszolgát, borotváld le a fejét, írd rá az üzenetet, várd meg, amíg kinő a haja és küldd el az üzenettel! Kell hozzá: borotva, rabszolga, haj, toll Átviteli közeg: az út Visszafejtés: borotva Adathordozó: rabszolga Titkosítás erőssége: a módszer ismerete kell a visszafejtéshez. Az I világháborúig használták. Probléma: kiismerhető módszer A módszer tovább fejlesztése: a csatorna telítése. Nem egy, hanem egyszerre több rabszolgát küldünk el. Az adathordozót nem különböztetjük meg => az információ elrejtése Lüszandrosz A módszer: Adott egy definiált átmérőjű bot. Szalagot csavarunk rá és tengelyirányban felírjuk rá a szöveget, majd lecsavarás után az üresen maradt helyeket véletlenszerű karakterekkel töltjük fel. Kell hozzá: két azonos átmérőjű bot. Egy a bot a küldőnél, egy a fogadónál. Polibiusz (Pülobiusz) A módszer: Egymástól távol őrtornyokat építenek, és sötétben lehetőség van arra, hogy kommunikáljanak egymással, fény segítségével. A küldő elküldi egy kódtábla sorának és oszlopának sorszámát, ami így meghatároz egy betűt. Őrtornyok Kódtábla 1 2 3 4 1 a b c d 2 e f g h 3 4 A módszer problémája: a tikosítás a kódtáblán múlik. Ha valaki egyszer hozzájutott a tálához anélkül lehallgathatja a beszélgetést, hogy arról bárki tudomást szerezzen. 4
Caesar-módszer Betűeltolásos módszer: a nyílt üzenet minden karakterét k karakterrel toljuk odébb az ábécében Probléma: gyakoriságvizsgálattal törhető Törése: Például: H A L Megnézzük a titkosított szövegben a leggyakoribb karaktert, ekkor a gyakorisági statisztika alapján megkapjuk az eltolás mértékét, a k-t. Ha ezzel a k-val visszafejtve az üzenetet, nem kapunk értelmes szöveget, akkor megnézzük a titkosított üzenet második leggyakoribb karakterét és azzal próbálkozunk tovább. Ezt addig csináljuk, amíg nem kapunk értelmes üzenetet Brute force: A teljes kulcsteret szisztematikusan végig próbáljuk és az eredmények közül kiválasztjuk a megoldást. Probléma: kicsi a kulcsméret, kicsi az eredményhalmaz, ezért nem valószínű, hogy egy titkosított üzenetből két értelmes nyílt üzenetet is elő lehet állítani I B M Egy karakteres eltolása esetén. k=1 5
2. Szimmetrikus titkosítási módszerek. Szimmetrikus titkosítás Szimmetrikus titkosítási módszerek: az üzenetet váltó felek ugyanazt a kulcsot birtokolják, a titkosításhoz és a fejtéshez ugyanarra a kulcsra van szükség. Probléma: 1.) üzenetcsere előtt egyeztetni kell a kulcsot 2.) n résztvevő esetén n*(n-1)/2 kulcsra van szükség Ezekre a problémákra az aszimmetrikus titkosítási módszerek nyújtottak megoldást. Vigenere módszer és törése (1523-1596) A táblázatos módszer lényege: Egy mátrixot tartalmaz, melynek minden oszlopát és sorát az ábécé egy-egy karaktere jelöli, illetve minden sorban és oszlopban egy karakter csak egyszer szerepelhet. K/X A B C D E F G H I A a b c d e f g h i B b c d e f g h i j C c d e f g h i j k D d e f g h i j k l E e f g h i j k l m F f g h i j k l m n G g h i j k l m n o H h i j k l m n o p I i j k l m n o p q J j k l m n o p q r K k l m n o p q r s A négyzet kitöltése sokféleképpen történhet! e z t a k a r j u k t i t k osítani X (oszlop) k u l c s k u l c s k u l c s Y (sor) o k E*K ( a többi betű épp nem szerepel a táblázatban) A módszer ereje a kulcs megválasztásától függ. A feltöréséhez nem is szükséges a táblázat csupán a kulcs ismerete kell. X xor K xor K => az eredeti szöveg. 6
Törése Brute Force-al: Kipróbáljuk az összes lehetséges kulcsot => a kulcs méretétől függ a feltörés hossza: ha kulcs = n (a kulcs hossza = n), akkor a bonyolultság <= a kulcs ábécéjének számossága > n Nem a feltörés a probléma, hanem az eredményhalmazból a releváns infó kiválogatása. Törése az órán ismertettet módszerrel (Hasonlít a Kasiskira, de szerintem nem az) Betűgyakoriság: Egy adott betű sokkal gyakrabban szerepel magyarban, mint az angol nyelvben. Például: 1.) 10% 2.) e 7% 3.) a 6,5 % A nyelv rendelkezik redundanciával. Lehetőség van kb. 50% eltávolítására. Ezeket figyelembe véve: Gyakoriságot vizsgáljuk: Nyelvre jellemző gyakoriság Rejtett szöveg k -adik elemének gyakorisága 10% P 11% E 7% Q 6,72% A 6,5% S 6,71% Feladat a kulcs meghatározása A módszer: Az előbb bemutatott statisztikai módszer segítségével lehetséges. Csak a kulcshosszadig elem ad jó statisztikát, ezért elkezdjük a kulcs méretét változtatni, és megnézzük milyen eredményt ad. Minden 1. -re => nagyjából egyenletest ad, minden 2. -ra is, minden 3.-ra is,.egyszer csak nem lesz egyenletes (legnagyobb eltérés az egyenletestől. => annyi betűből áll akkor a kulcs A módszer részletezése: Ha nem jó a kulcs, akkor egyenletes a statisztika Sa Sd S z Sa: A b betűk darabszáma, Sb: A b betűk darabszáma 7
Jó kulcs esetén az egyenletestől eltérő (nagy eltérések vannak) Kiszámoljuk az átlagtól való eltérések mértékét i: hányadik elemre számoltuk ki Sa: A b betűk darabszáma Sb: A b betűk darabszáma N: a megszámolt betűk száma 26: angol nyelv karaktereinek száma (magyar esetén 43) K xi 2 (az átlagtól való eltérések mértéke) 1 2 3 4 5 A legnagyobbat kiválasztjuk 6 kulcshossz esetén => 26 6 10 kulcshossz esetén => 26 10 így megszereztük a kulcs hosszát: Ezután a fejtés felfogható egy többkulcsos Caesar-módszerként is. => Ekkor minden h-dik karaktert leírva már alkalmazhatunk betűgyakorisági vizsgálatot, majd ezeket visszafejtve leírjuk úgy, hogy a nyílt üzenet h-dik karakterei legyenek, majd folytatjuk a titkosított üzenet h+1-dik karaktereivel. Ezt addig ismételjük, amíg meg nem kapjuk a nyílt üzenetet. 8
A művelet végére megkapjuk a kulcsot is, mivel az egyes lépéseknél mindig megkapjuk az eltolás mértékét, ami a Vigenere-módszer mátrixában egy-egy sor indexe, amit egy-egy karakterrel jelölünk. Numerikus módszer: Titkosítás: 1. Az ábécé karaktereihez számokat rendeltünk 0-tól 25-ig: A-0, B-1,... 2. Írjuk egymás alá a nyílt szöveget és a kulcsszöveget, illetve azok számát. 3. Az egymás alatt álló karakterek számát adjuk össze, majd mod 26 (a 26-tal való osztás maradékára vagyunk kíváncsiak), ezt leírom, majd alá a hozzá tartozó számot. Fejtés: 1. Fejtéskor először kivonjuk a titkosított üzenet karaktereinek kódjából a kulcsszöveg megfelelő pozícióban álló karaktereinek kódját, majd mod 26. 9
3. Véletlen átkulcsolás módszere, Verman 1920 Véletlen átkulcsolás = One Time Pad= OTP =Verman módszer Elméleti alapok Elméleti titkosság: Egy módszer elméletileg fejthetetlen, ha tetszőlegesen nagy számítógépes kapacitás birtokában sem fejthető. Gyakorlati tikosság: Egy módszer gyakorlatilag fejthetetlen, ha irreálisan nagy számítógépes kapacitás birtokában fejthető meg csak. Valószínű szövegrészek keresése: adott szó, adott pillanatban, elhangzásának valószínűsége. adott nyelven való Nyelvi redundancia: Egy értelmes szöveg hány százalékát hagyhatom hogy a szöveg továbbra is értelmezhető maradjon. figyelme kívül úgy, A módszer lényege X E z t s z e r e t n é n k titkosítani n hosszúságú K p h o t a a s e q z t t p Y=X xor K A kulcsot, úgy válasszuk meg, hogy az egyenletes eloszlású véletlen karaktersorozat legyen. 26 n lehetőség(ha az angol abc vesszük), 256 n ha az összes karaktert Y Az eredmény véletlen eloszlású karaktersorozat. Elméletileg fejthetetlen: Az eredményhalmazból nem tudjuk kiválasztani a megfelelőt. A módszer problémája 1. A kulcs kezelése nehéz. 2. A kulcs eljuttatása ugyanolyan problémás feladat, mint maga az elküldendő adat. Megoldásai lehetőség, az hogy egy DVD cserélünk, amin a kulcsok vannak, vagy megegyezünk egy honlapon található képekben. Lényeg, hogy a kulcs biztosan titkos legyen Mi történik, ha egy kulcsot többször használunk? X1 + K = Y1 X2 + K = Y2 X1- X2 = Y1-Y2 Nincs is szükség a kulcs ismeretére. 10
Törése Brute Force megoldás: Végig megyünk a megoldás halmazon és megnézzük, hogyha találunk egy értelmes megoldást, akkor a másik ugyanazon a helyen értelmes megoldást ad. Erre azért van szükség, mert elméletileg fejthetetlen, tehát az összes lehetséges megoldás szöveg olvasható, evvel a megoldással ki lehet keresni melyik a jó. A jó megoldás: 1. Hogy lehet rájönni, hogy ugyanazt a kulcsot használjuk? Y 1 = X 1 xor K Y 2 = X 2 xor K Az xor helyett lehet más is. Y 1 Y 2 = X 1 X 2 X 1 = Y 1 Y 2 + X 2 X1 A B C O X2 C B A O K K E Y J L Ilyenkor itt nem lehet azonos betű Y1 X A H K Z Y2 Z A T K S Ha ugyanaz a kulcs és a betűk egymásalattiságát vizsgáljuk a rejtett üzenetben akkor, azonos alatt azonos, különböző alatt különböző. 2. A megfejtés Ha tudjuk, hogy azonos a kulcs és tudjuk, hogy milyen nyelven írt tudjuk, hogy kb. miről írt vannak ismétlődő szavak. pl. hogy X1 J E L E N T E M X2 H A D S E R E G E M K Y1 Y2 Előállítjuk a végét és kétirányú kiterjesztéssel (próbálkozások árán) oda vissza megfejtjük. 11
4. Transzpozíciós módszer és törése A módszer Betű-betű megfeleltetés módszere, majd permutálás. X E Z T A K A R J U K titkosítani n hosszúságú blokkok K 3 4 1 5 2 3 4 1 5 2 Y T A E Z R U K A J Az eredmény véletlen eloszlású karaktersorozat. X és Y betűgyakorisága megegyezik. Ha K =5, akkor blokkonként 5! lehetséges elrendezés van, n hosszú kulcsnál n! mennyiségű elrendezés van. Ezt lehetetlen végig próbálni, tehát a módszer gyakorlatilag törhetetlen. Gyakorlati titkosságot biztosít. A törése: 1. A töréshez szükséges tudás: Nem csak a betűgyakorisága adott egy nyelvnek, hanem a betűátmenet gyakorisága is. Ennél a módszernél a betűgyakoriság csak a nyelv meghatározására szolgál. _A _B _C... ZZ _ =space Ez az adott nyelvre jól definiálható folyamat. Sz=> az s után sűrűn lesz z. Ly => Az L után sűrűn lesz y. 2. Feladat az inverz permutáció előalítása. Rendezett párok. (1,3) (3,1) (1,3) (2,4) (4,2) (2,5) (3,1) (1,3) (3,1) (4,5) (5,4) (4,2) (5,2) (2,5) (5,4) Rendezem 12
3. Készítek egy átmenet mátrixot, melyet a főátlóba felöltök végtelennel 1 2 3 N 1 2 3 N L darab blokk N hosszú Kiszámolom a mátrix minden egyes elemét. i=sor j=oszlop Megnézzük a valószínűség táblázatban. Példa a számolásra: A tényleges betű pozícióba lévő betűátmeneteket összeadjuk=> így kitöltjük a táblázatot. Példa: 1sor 2 oszlop az jelenti, hogyha a titkosított szöveg a Taez akkor a t vajon az a követi, és ez az összes blokkra kiterjesztve. 4. Végül Minden sorban lesz egy elem, amit kiugróan magas lesz, legalább 15-20% magasabb. Az így megkapott átmenetek megadják a permutáció inverzét. Szükséges idő: l * n 2 + max kiválasztás= l * n 2 + n 2 művelet (l: a blokkok száma) 5. Összefoglalva: A permutált üzenetünkben egy adott pozícióban levő betűt mekkora valószínűséggel követhetnek az adott kulcshosszúságú szakaszon belül levő karakterek? Ezt megnézem minden kulcshosszúságú szakaszon és karakterenként összeadom a valószínűségeket, majd a legnagyobb valószínűségű - látható különbség lesz - permutációkat kiválasztjuk. Létrehozunk egy átmenetmátrixot, főátlóját végtelenekkel kitöltjük. Kiszámoljuk a nyelvi statisztikát, az átmenetmátrix i-dik elemét konkrét értékekkel kiszámoljuk, ezután a sorokból a szignifikánsan különböző (min vagy max. eltérésértékek) fogják nagy valószínűséggel a permutáció inverzét adni Törés megakadályozása Ha a kulcs mérete megegyezik az üzenetével, vagy legalább fele akkora, akkor már fejthetetlen, de a kulcskezelés és - tárolás problémát vet fel. 13
5. Shannon keverő transzformációja. Lavinahatás Shannon keverő transzformációja Bevezetés Betűhelyettesítés A A B C B C Z Z Helyettesítő táblát alkalmazva Nem betűket feleltetünk meg, hanem betű párokat AA BB AA BB CX ZZ ZZ Probléma, hogy nagy a táblázat, nehéz a kulcs átjuttatása, tárolása Feltörése statisztikával lehetséges. Ha 7 betűt helyettesítünk, akkor már a nyelvi inhomogenitás megszűnik Eben az esetben már nagyon hosszú adat kell, hogy feltörhető legyen A kulcs átküldése viszont még nehezebb A kulcstárolást megoldja a kulcs eltolása. AAA AAB AAC AAB AAC AAD Csak az eltolás értékét beszélik meg Probléma viszont, hogy a támadónak irányultságot adok, hogy merre keressen. Ezáltal a kulcstár drasztikusan lerövidül. => Az erősség is gyengül Permutációs megoldás Vezessünk be egy permutációt P1 * Sk * P2 (x) Kulcsfüggő helyettesítés 14
Példa: AAB => ABA vagy BAA lesz. A közel levő szavak távolra kerülnek. Előző esetben: Ha a permutációt használjuk: Shannon transzformáció A keverő transzformáció felhasználja ezt az ötletet Rövid blokkok helyettesítése Permutációk használatával Kulcsfüggő helyettesítés Nem függnek a kulcstól, csak elő permutációk Példa: AAAA AAAB AAAC BBBB BBBC BBBD ZZZZ BBBA 1. Megkeverem AAAC-t, lesz belőle AACA (előpermutáció), 2. Ehhez tartozik a fenti tábla alapján a BBBD (kulcsfüggő helyettesítés) 3. Majd megkeverem megint (utópermutáció), így mondjuk pl. kapom azt, hogy: DBBB. Egymás után alkalmazott permutációk és helyettesítések segítségével a közeli üzenetből távoli üzenetet képzek. A támadó dolga nehezebb lett, mert nem látja, hogy közeledett-e a megoldáshoz ( hideg - langyos - meleg - tűz ) Lavinahatás A bemenet 1 bitjének megváltoztatása a kimenet bitjeinek közel a felét változtassa meg. Kis változások nagy hatást eredményezzenek. 15
6. DES módszer és törése IBM 1977. A módszer NSA: National Security Agency dolgozta ki A módszer kidolgozásakor a kulcs 128 bit, majd ezt leszűkítették 64bitre, végül az 56 bites kulcsot fogadták el. A módszer kidolgozásakor figyelembe vett célok: 1.) Rendszerek közötti kommunikáció megvalósítása 2.) Legyen egyszerű és gyors (emiatt cél hardverrel törhető) 3.) Áramkörökben megvalósítható legyen 4.) Csak a kulcstól függjön a biztonsága 5.) 64 bites üzenetből 64 bites üzenetet állítson elő 6.) 56 bites kulcsot használjon (igazából 64, de 8 bit speciális dolgokra) 7.) Nagy gépkapacitás birtokában törhető legyen, de szokványos gépkapacitás birtokában ne. Ezért szűkítették le valószínű a kulcsméretet. A DES vázlatos felépítése és az iteráció egy lépése 64 bites input L i-1 R i-1 Keverés 32 32 1. iteráció 5 6 2. iteráció b i t e s 32 K i f 48 16. iteráció 2*32 bites csere k u l c s L i R i Inverz keverés 64 bites output 16
A DES körfüggvénye T 48 E R i-1 32 Kiterjesztés Ki 48 B1 1 2 1 1 B2 T 48 S1 s2 s8 B8 8* 4 bites blokkok 8* 6 bites blokkok összesen 48 bit Helyettesítés S dobozok 32 32 Keverés SP hálózat A 6 bit kiterjesztésnél nem bántja a sorrendiséget ezáltal globálisan megmarad A DES valószínű backdooros méghozzá a S dobozoknál Titkosítás lépései 1. Az első lépésben kulcstól függetlenül a 64 bites bemenet bitjeit összekeveri, az utolsó ennek pontosan az inverz művelete. 2. Az iterációs lépések mindegyike 2db 32 bites értékként értelmezi a bemenetére kapott adatokat, és ennek megfelelő kimenetet ad. 3. Az utolsó előtti lépésben felcseréli a bal oldali 32 bites rész a jobb oldalival. 4. A maradék 16 lépés működése egységes és mindegyik paramétere egy Körkulcs a. A Körkulcsot két 28 bites részre osztja az algoritmus, mindegyiket a körkulcs sorszámának megfelelő bittel jobbra forgatva. b. A K i -t ezekből a darabokból egy újabb leképezéssel képzi A körfüggvény négy lépése: 1. 48 bites számot képez Ri ből. (bitkeveréssel és duplázással). Ennek a résznek nagy szerepe van a lavinahatás eléréséhez. 2. A 48 bites szám és a körhöz tartozó Ki kulcs között XOR műveletet végez 3. A kapott eredményt 8 db 6 bites csoportra osztja (B1-B8). Ezeken helyettesítéseket végez. (S1-S8). Az eredmény 4*8 biten keletkezik 17
4. Az így kapott 4*8 bitet ismét összekeveri és eredményül kapott 32 bites szám a függvény kimenete. Törése Törés Brute force-al: megnézzük, hogy a bemenet karakterkészlete (betű- és szógyakoriság) szempontjából hasonlít-e a nyelvre Tömörítéssel nehezíthető ez a törési módszer, de ne szabványos tömörítést használjunk, mert az azokkal tömörített file-ok fejlécében meg van adva a tömörítés típusa. Használata 5-10 éve nem fogadják el banki szintű titkosító rendszernek, mert célhardverrel törhetőnek bizonyult, de a DES alapötletét beépítették a 3DES-be és a TripleDES-be. 18
7. Shamir módszer A módszer A küld üzenetet B-nek: 1. A eltitkosítja a saját módszerével, a saját kulcsával és elküldi B-nek 2. B eltitkosítja a saját módszerével, a saját kulcsával és visszaküldi A-nak 3. A visszafejti a saját módszerével, a saját kulcsával és visszaküldi B-nek 4. B visszafejti a saját módszerével, a saját kulcsával és megvan a nyílt üzenet Megcserélhető kulcsok kellenek A B A B A B Előny: 1. Nincs kulcscsere, nem kell ismerni egymás módszerét 2. Nem kell ugyanazt a tikosító módszert használni Hátrány: Háromszoros üzenetváltás Veszély lehetőségek A postás eljátssza a fogadót A P A P A P 19
A következmény súlyos, a küldő észre se veszi, hogy nem jó embernek küldte. A megoldás az, hogy egy másik csatornán kell kommunikálni. El kell érni, hogy A csak akkor vegye le a lakatját, ha tudja, hogy B már rátette a sajátját. A postás felkészül: A postás felkészül és A -nak eljátssza B szerepét, és B -nek meg az A. A P P A A P P A A P P A Az első csomag érkezésekor a postás valamit küld a B-nek majd utána már elcsúsztatva a megfelelőt küldi tovább. Nagy veszély, mert így már az előbb ismertet megoldás sem működik. Sem A sem B nem veszi észre. 20
8. Diffie-Hellman módszer 1976 Probléma: a kulcsot el kell juttatni a nem titkos csatornán. A módszer Moduláris aritmetika, egész számokkal kell operálni. 0. Előzetes lépés. A és B választ két speciális nagy prím számot n és q { 192-512 bit méretűt} 1. A kiválaszt egy véletlen x értéket és kiszámolja B kiválaszt egy véletlen y értéket és kiszámolja 2. A elküldi B -nek a k1 -et és B elküldi A -nak a k2 3. A kiszámolja a és B kiszámolja a k4 4. K3 = K4 => megvan a kulcs Példa 0. q=7 n=11 1. A kiválasztja x=3, B meg a y=6 és 2. A elküldi B -nek a k1 -et és B elküldi A -nak a k2 3. és 4. Mint lálthatjuk k3=k4. A példánkban a kulcs a 9 Ha több bites kulcs kell, akkor ezt a folyamatot kell ismételni. A támadó feladata A két nagy prím szám nyilvános az x,y az titkos <= ezeket ismeri a támadó x -et meghatározni nehéz feladat. Az x azt jelenti, hogy a q-t hányadik hatványra kell emelni, hogy megkapjuk az k1 et. Kis szám esetén könnyű, nagy számok esetén lehetetlen küldetés Megjegyzés: Az angol titkosszolgálat, már legalább 10 évvel a módszer kidolgozása(publikálása) előtt ismerte. Támadási lehetőség: A középen levő ember (man in the middle) támadás: Ha C azt állítja A -nak, hogy valójában B, B -nek pedig azt, hogy A, akkor megfigyelheti lehallgathatja az A és B közötti kommunikációt. 21
Diffie-Hellman több szereplős megoldása (3 vagy több) 1. Az n és a q megválasztása az előbbiekben megismert módon 2. 3. A kulcsszámolás 3 szereplős esetben A B C A B C A B C Diszkrét logaritmusnak hívják a feladatot. Megértést segítő példa: Tálcás példa (tekila, bor, sör körbe megy) Festékkeverős példa Az előbbi egy mondatban: a q szám addig vándorol (n példányban, ahol n a résztvevők száma) amíg az összes résztvevő titkos számát a hátára nem veszi. Egy megoldás a feltörésre Előre ki kell számolni X K Majd K szerint rendezni, végül keresésnél a logaritmikus keresést alkalmazni. Mivel a keresést sokkal gyorsabban el lehet végezni, mint megkeresni, hogy q hányadik hatványon lesz a k1. 22
9. Nyilvános kulcsú titkosítási módszerek. Az RSA módszer működése Nyilvános kulcsú titkosítási módszerek Bevezetés Szimmetrikus tikosítás: Ha y=e (X, K) => x= D (Y, K) A kódoláshoz ugyanazt a kulcsot használjuk, mint a fejtéshez. Aszimmetrikus tikosítás: y= E (x, K) => x= D(y, K*) A K!= K A lakatot csak az a személy tudja kinyitni, aki a kulcsot birtokolja Ha valaki kommunikálni akar, a személlyel akkor kell egy lakatot szerezni. Ha valaki bezárja, a lakatot akkor ő maga se tudja kinyitni. Nyilvános kulcsú titkosítás KA T,KA N, =>KA rendelkezik egy titkos és egy nem tikos kulccsal 1. Nyilvános és hiteles kulcstár (A, KA N),(B, KB N ) A kulcsot nagyon titkos helyen kell tárolni. Ha a kulcs elveszik nincs megoldás 2. B nyilvános kulcsát megszerzi A 3. Utána A küld B nek valamit B nyilvános kulcsával titkosítva E(X, K BN ). (Bezárja a lakatot) 4. B megfejti az üzenetet a tikos kulcsával Ez a séma alkalmas azonosításra hitelesítésre Digitális azonosításra A elküldi B -nek. B megfejti: Megkapjuk az X-et => Bizonyítja, hogy az A küldte és ezt küldte Ha nem X akkor nem A küldte A Digitális aláírás nem titkos, csak hitelesítésre szolgál A kettőt lehet ötvözni. Legyen titkos és hiteles is A küld üzenetet B -nek A. Titkosítás Hitelesítés B. (Nem biztos, hogy jó a képlet) Ha van X akkor tudjuk ki küldte és titkos 23
RSA Rivest, Shamir, Adleman Kulcsválasztás K1. véletlenszerűen választunk két NAGY prímszámot (decimális és 100 jegyű), ezek lesznek p 1 és p 2. K2. kiszámoljuk a két szám szorzatát. a. m=p 1 *p 2, b. Φ(m)=(p 1-1)*(p2-1) c. Választunk egy e számot, ami Φ(m)-hez relatív prím K3. e*d 1 mod Φ(m) ból kiszámoljuk d-t Központi nyilvántartásba betesszük m-t, e-t d, p 1, p 2, Φ(m) titkos marad Rejtjelezés R1. A kikeresi m B -t és e B -t R2. A titkosítandó szöveget számok sorozatává alakítjuk úgy, hogy a nyelvi szerkezetet szétziláljuk 0<= számok <= (m-1) R3. Ezen a számok sorozatán végezzük el a rejtjelezést R4. Fejtés D1. B kap 0 m -1 közé eső számok sorozatát y1, y2,y3 D2. Megkapott számsorozatot X=D B (Y)=Y D mod mb D3. Visszakódoljuk R2 inverzével a dekódolt üzenetet Nagy jegyű prím előállítása Egy szám prím, ha 1 és önmagán kívül nincs más osztója Hogyan vizsgáljuk, meg hogy egy szám prím? 1. Megvizsgáljuk 1-től n ig => Felesleges 2. Elég csak - ig megvizsgálni. Ha addig nem tálunk akkor utána sincs A > B > N=A* B = * > N Ellentmondás 24
Probléma p 1, p2 előállítása (hogyan?, van-e elég hely?) Milyen sűrűn vannak prímek a 10 100 -on tartományban? N M Fermat-tétel b S-1 1 mod S valószínűleg prím ha s: a vizsgált szám (p1, p2) b jól megválasztott szám Ha ez nem teljesül, akkor biztos nem prím. => Majdnem minden 300-dik szám prím Ha teljesül, akkor valószínűleg prím. => Valószínűségi prímtesztnek hívjuk. Példa: Ha b1-re teljesül, akkor 50%, hogy mégse prím. Ha b2-re teljesül, akkor 25%, hogy mégse prím. Ha b3-re teljesül, akkor 12,5%, hogy mégse prím. Ha b3-re teljesül, akkor 12,5%, hogy mégse prím. Ha b10-re teljesül, akkor 0,00009%, hogy mégse prím. Tehát ha kellően sokszor elvégezve a próbát tetszőlegesen kicsivé tehető a valószínűsége, hogy a szám mégse prím, Összefoglalva b 1, b 2,, b k Válasszunk egy másik számot és ha ezt is kiállja, kor (1/2) k -ra csökkenthető annak a valószínűsége, hogy nem prím. Érdekes: Vannak olyan számok, amik kiállják a Fermat próbát, de mégse prím 25
10. PGP módszer és működése Alapismeretek Zimmerman találta ki Szimmetrikus titkosítások: Aszimmetrikus A módszer Cél: Fejtéshez, rejtéshez ugyanazt a kulcsot használjuk Kell kulcscsere RSA, Elliptikus görbék Lassabb 2,3 nagyságrenddel Nem kell hozzá kulcscsere 1.) biztonságos levelezés 2.) biztonságos adatátvitel 3.) (lemeztitkosítás) A=> B A küld B -nek valamit. A küldemény két részből áll: 1. Szimmetrikus rész. Ksz: Session key Minden egyes üzenethez alkalmi kulcs 2. Aszimmetrikus rész Működés: Nagyobb rész Kisebb rész 1. Generál egy véletlen kulcsot (session key), ezzel eltitkosítja az üzenetet szimmetrikus titkosítással 2. Eltitkosítja a session key-t B nyilvános kulcsával 3. Összefűzi a két üzenetet 4. Elküldi K Az aszimmetrikus rész a szimmetrikus rész kulcsa 26
Kibontás Megjegyzés Előnyei: 1. Ötvözi a szimmetrikus és az aszimmetrikus tikosítás előnyeit 2. Lassú módszer csak a kulcshoz kell, a nagyméretűre a szimmetrikus módszer van Hátrányai: 1. A rendszer erejét csak az szimmetrikus része biztosítja. Viszont lehetőség van minden részt más kulccsal tikosítani. (session Key) Lehetőség van arra, hogy több embernek is küldjük? Igen, ha a session key-t több kulccsal titkosítjuk és mindegyiket az üzenet végéhez toldjuk. A B C Fontos cégek levelezésénél figyelni arra, hogy a főnök kulcs is rajta legyen. ADK ADK Addition Description Key Létezhet olyan helyzet, hogy egy vállalatnál minden üzenethez kötelező hozzátoldani egy adott kulccsal is titkosítva a session key-t. Probléma: veszélyes, mert mindent meg lehet vele nézni => nagyon körültekintően kell vele bánni. Megértést segíti: http://www.piksys.hu/termekek/pgp/npgp_tech.htm 27
11. Hasító függvények. Működés, alkalmazási területek. Elvárás a hasító függvények felé 1. X => MD(X) könnyen és gyorsan kiszámítható legyen. 2. - X MD(x) Mb 128bit 160bit Nagy értelmezési tartományból egy sokkal kisebb értékkészletre képezünk le, ezért rendkívül sok ütközést fog előállítani, ennek a számossága az értelmezési tartomány és az értékkészlet számosságától függ. 3. Kívánatos lenne, hogy ha x1!= x2 akkor MD(x1)!= MD(x2). Ez nem lehetséges 4. A feltöréskor nem szükséges a passwordot tudni, hanem egy hogy x1 kell keresni aminek ugyanolyan a hasító értékkel rendelkezik. x1=> MD(x1)= MD(x2) Cél az, hogy nehéz legyen ilyen x1-et előállítani Módszer veszélye A hasító értékek elmentése Szivárvány táblázat: Előre kiszámoljuk a valószínű jelszavak hasító értékét Működés X1 X2 X3 INIT X1,X2,X3 Az üzenet blokkjai H1,H2,H3 Tömörítő függvény H1 1 Üzenetet rögzített méretű blokkokra bontjuk. Felbontás előtt kiegészítéseket végzünk, hogy ne legyenek töredék blokkok (amúgy csak 448 bitre egészít ki, és hozzáteszi az üzenet hosszát 64 biten reprezentálva). A tömörítő függvényekben összekeveri a biteket elemi bitműveletek segítségével (ezt tudja a processzor gyorsan elvégezni), és még egy szinusz függvény értékeiből származtatott random táblázatot is felhasznál. Brute Force-al törhető, végigmegyünk a kulcstéren, mivel könnyedén eldönthető hogy megtaláltuk a keresett üzenetet. Szivárványtáblának hívják azt a táblát, ahol össze vannak gyűjtve a lehetséges jelszavak és az azok MD5 értékei. H2 H3 Ellenőrző összeg 28
Tudnivalók Rövidítések: MD: Message Digest=Üzenet Pecsét MDC: Modification Detect Code MAC: Message Autatication Code=Integritás és eredetvizsgálat Rivest találta ki: MD2 1989 MD4 1990 Átlagos PC-vel törhető MD5 1992 SHA 160bit,256 bit NSA dolgozta ki 1993-ban és 1995 szabvány lett belőle Alkalmazási területek 1. Adatbázis kezelő rendszerekben a keresés felgyorsítása a cél 2. Tikosítás esetén például Password tárolás Név: Jelszó: Ok Nem ok Szerver Enter leütése után a jelszót egyből titkosítani kell és a memóriából is törölni A szerveren nem a passwordot tároljuk, hanem a hasító értékét 3. Hitelesítés CRC Milyen hibákra jó? Véletlen bithibákra készül fel. A baj az, hogy meg lehet hamisítani A Küldendő üzenet(m) B Vett üzenet (m) x=md(m) x1=md(m) i x=x1 n, ) Igaz esetén hitelesíti, hogy ezt A küldte és tartalmilag is ezt küldte. 4. Aszimmetrikus tikosítás esetén lassú, ezért ha csak hitelesíteni kell, akkor csak a pecsétet titkosítjuk és küldjük el 29
12. Blokkos rejtjelezés. Hibák. ECB, CBC módszer Pl. DES 64bit => 64bit Egy kis elmélet A blokkos rejtjelezés azt jelenti, hogy az üzenetet rögzített méretű blokkokra bontjuk és a blokkokban külön végezzük a rejtjelezést. Bithiba: A küldött blokk tartalma megváltozik, de a bitek száma nem Bit szinkronhiba: Néhány bit kiesik vagy többszöröződik. Blokk szinkronhiba: Teljes blokk kimarad vagy ismétlődik. Mi tegyünk, ha az üzenetünk nem arányos a blokk méretre? Padding (Kitöltés). Egyértelműen felismerhető és eltávolítható legyen. Fontos szempont a sebesség és a párhuzamosíthatóság Sebesség: A tikosító algoritmus teljes sebességét kihasználjuk vagy nem. Párhuzamosság: Vizsgálni kell a titkosításnál Vizsgálni kell a fejtésnél. Ez a fontosabb ECB A módszer. Elsőként a Padding szükséges=kitöltés blokk méretre) X1 X2 X3 E(X1, K) E(X2, K) E(X3, K) Y1 Y2 Y3 30
Fejtése Y1 Y2 Y3 D(Y1, K) D(Y2, K) D(Y3, K) X1 X2 X3 Jellemzői: 1. Lehet szimmetrikus és aszimmetrikus módszer használni 2. Sebesség? Az algoritmus sebesség megegyezik a tikosítás sebességvel 3. Elrejti a szerkezetet? NEM. Például. Linux pingvin => Hátránya, hogy lehet statisztikával törni 4. Párhuzamosítható? Mind a tikosítás és a fejlés is. 5. Bithiba? Egy blokkot elront teljesen. 6. Bit szinkronhiba? Nagyon súlyos. Az utána levő össze blokk elromlik 7. Blokk szinkronhiba? Egy kiesik, de a többi titkosítható CBC (Chiper, Block Chaining) Rejtjeles blokkok láncolása Kódolás INIT X1 X2 X3 XOR XOR XOR E(, K) E(, K) E(, K) Y1 Y2 Y3 31
Dekódolás INIT Y1 Y2 Y3 D(, K) D(, K) D(, K) XOR XOR XOR X1 X2 X3 Jellemzők INIT vektor lehet: üres, véletlen érték, rögzített kulcs. INIT vektor növeli a tikosítást?: Nem, csak az elsőhöz kell 1. Sebesség? Az algoritmus sebesség megegyezik a tikosítás sebességével 2. Elrejti a szerkezetet? IGEN. Üzenet statisztikai jellegét elfedi hiszen x1=x3 akkor y1!= y3 Ugyanaz az üzenet különböző eredménybe megy át ha más az INIT vekor. 3. Párhuzamosítható? a. Kódolás: NEM b. Dekódolás. IGEN 4. Bithiba? a. Aktuális blokk teljesen tönkre megy b. Következő blokkban 1 hiba 5. Bit szinkronhiba? Teljesen tönkre megy 6. Blokk szinkronhiba? a. Aktuális blokk teljesen tönkre megy b. Következő blokk teljesen tönkre megy c. Azután már helyre áll 32
13. CFB, OFB, CTR módszerek CFB(Chipherest Feedbuck) A módszer ábrája S G M XOR Yi S Xi titkosítandó Regiszterek Titkosítás lépései 1. S regisztert feltöltjük egy véletlen kezdőértékkel (64 bit) 2. M regiszterbe rakjuk a titkosítandó szöveget, 64 bitjét. 3. G = E(S,K) 4. G regiszter és az M első 8 bitje XOR kapcsolattal adja az Yi-t 5. Elléptetjük 8 bittel balra S, M - et 6. S alsó 8 bitjébe beraktjuk az Yi-t 7. M alsó 8 bitjébe berakjuk Xi következő 8 bitjét Jellemzői Az eredmény Ismétlés a 3 ponttól kezdve 1. Kulcsgenerálás függ a szövegtől => előny 2. Sebessége: Lassabb, mint az eredeti algoritmusnak a blokkok számától függően (64 ). 3. Előnyös lehet, hogy bájtos egységekben dolgozza föl az adatfolyamot (pl terminál) 4. Aszimmetrikus titkosítás használható? NEM Mivel csak E használunk D nem 5. Bithiba? 8+1 kisblokkot elront, de utána helyreáll 6. Bit szinkronhiba? Teljesen tönkre megy 7. Blokk szinkronhiba? 8+1 blokk tönkremegy utána helyreáll 8. Párhuzamosítható? a. Kódolás: NEM b. Dekódolás. IGEN 33
Fejtés: 1. S regisztert feltöltjük ugyanazzal a 64 bittel. 2. G = E(S,K) 3. G első 8 bitje XOR Y első 8 bitje 4. Léptetés után, S alsó 8 bitje az előző művelet eredménye. OFB (Output Feedback) S G XOR Regiszterek M Yi S Titkosítás 1. S regiszterbe 64 bites véletlen szám generálás 2. M be berakjuk x első 8*8 bitjét 3. G=E (S,K) 4. G első 8 bitjét XOR M első 8 bitjével => Y 5. G első 8bitje rakjuk S alsó 8 bitjére 6. M alsó 8 bitjére berakjuk X következő 8 bijét Jellemzői 1. Sebessége: Lassabb, mint az eredeti algoritmusnak a blokkok számától függően 2. Bithiba? 1 bitet ront el. Nem nagy gond 3. Bit szinkronhiba? Teljesen tönkre megy 4. Blokk szinkronhiba? Megöli az egészet 5. Párhuzamosítható? Előre kiszámítható a kulcs a. Kódolás: IGEN b. Dekódolás. IGEN 6. Zajos csatornához ezt a módszert ajánlják 7. Aszimmetrikus titkosítás használható? NEM 34
Előny: Hátrány Üzenettől nem függ a kulcs A bithiba nem gond. Nagy előny A kulcsot, ha mi nem változtatjuk, akkor törhető Nem önszinkronizáló CTR (counter) A módszer 1,2,3 Nem felétlen egyesével növekszik, lehet pl. prímszám is Számláló E (, K ) S bit XOR Xi Yi Jellemzői 1. Bithiba? 1 bitet ront el. Nem nagy gond 2. Bit szinkronhiba? Teljesen tönkre megy 3. Blokk szinkronhiba? Megöli az egészet 4. Párhuzamosítható? A kulcsot előre ki tudom számolni, a kulcsgenerálás is párhuzamosítható (OFB-nél nem) c. Kódolás: IGEN d. Dekódolás. IGEN 35
14. XIV. Többfokozatú kódolók: TripleDES A DES algoritmus egy megerősítése a 3DES algoritmus. Ez tulajdonképpen a DES-nél használt kódoló és dekódoló eljárások háromszori megismétlése. Szintén 64 bites adatblokkon dolgozik, de a titkosításhoz a konkrét felépítéstől függően 64, 128 vagy 192 bites kulcsot használ. Kódolás A 64 bites bemeneti blokkból a következő módon állítjuk elő a szintén 64 bites kimenetet: X0 X1 X2 INIT1 Xor Xor Xor K1 E( ) E( ) E( ) INIT2 Xor Xor Xor K2 D( ) D( ) D( ) INIT3 Xor Xor Xor K1 E( ) E( ) E( ) Y0 Y1 Y2 Képletben megfogalmazva: Kimenet = K K3 (D K2 (K K1 (Bemenet))) ahol K Kn a K n kulccsal történő DES kódolást, D Kn a dekódolást jelenti. 36
Dekódolás A dekódolás a kódoláshoz hasonlóan működik, a 64 bites bemeneti blokkból a következő módon állítjuk elő a szintén 64 bites kimenetet: Y0 Y1 Y2 K1 D( ) D( ) D( ) INIT1 Xor Xor Xor K2 E( ) E( ) E( ) INIT2 Xor Xor Xor K1 D( ) D( ) D( ) INIT3 Xor Xor Xor X0 X1 X2 Képletben megfogalmazva: Kimenet = D K1 (K K2 (D K3 (Bemenet))) A kulcsok A kulcsok kiválasztása három módon történhet: 1. K1, K2 és K3 független DES kulcsok (3*56 bit = 168 bites kulcs) 2. K1 és K2 függetlenek, K3 = K1 (2*56 bit = 112 bites kulcs) 3. K1 = K2 = K3 (56 bites kulcs, ez az úgynevezett DES kompatibilis üzemmód) 37
15. Folyamattitkosítás. (Erről volt szó idén) Bevezetés X1 (64 bit) X2(64 bit) X3(64 bit) E(, K) E(, K) E(, K) Y1 Y2 Y3 A folyamat titkosításnál nem lehet az, hogy a blokk végéig várjunk. Példa: Két ember kommunikál. Alma a foci eredményt közli Körtével és mivel nem bőbeszédű csak annyit mond, hogy 1:0. Ha 8 bites blokkokról volna szó, akkor a következő helyzet lép fel. 1:0 Nem lehet várni a többi szövegre Kérdés? Milyen kicsi legyen a blokkméret? 1 bájt? 1bit? Miért nem alkalmazunk 8 bites titkosítókat? 1. Könnyen törhető(betűstatisztikával), kevés próbálkozás 2. Előnye lenne, hogy kisebb mennyiségekbe kéne feldolgozni => nem lehet ilyet készíteni 3. Ha lehetne akkor, meg könnyen törhető lenne Egy módszer 1 bájt is sok. Mit tegyünk ilyenkor? A megoldás X K Y=X xor K Probléma a kulcs kezelése Egyenletes eloszlású bitsorozat 38
(Ezt más tételsorában találtam) Folyamattitkosító az adatokat általában egybájtos vagy egybites egységekben kezeli a transzformáció az időtől függ (pontosabban az adat adatfolyambeli elhelyezkedésétől) ez azt is jelenti, hogy a folyamattitkosító emlékszik arra, hogy hol tart hardveres megvalósításuk jelentősebben könnyebb, mint a blokkosoké alkalmazás: ahol nincs lehetőség megvárni, míg egy blokknyi adat összegyűlik, pl. GSM, telnet elméleti törhetetlenséget biztosít probléma a kulcs szállítása OTP, mint folyamattitkosító véletlenszerű, üzenettel megegyező hosszúságú kulcs legegyszerűbb megoldás: generálunk egy jó hosszú kulcsot, ebből kivágunk egy üzenetnyi darabot és összegyúrjuk az üzenettel XOR művelet előnyös, mert: gyors és az inverze is ugyanaz Kulcsgenerálás ha nem tudjuk előre az üzenet hosszát, menet közben kell kulcsot generálni a folyamattitkosítás leglényegesebb pontja a kulcsgenerálás, ha az nem működik jól periodikussá válhat a generált kulcs és csökken a biztonság PRNG és CSPRNG lehetséges kulcsgenerátor Nyílt szöveg bájtjai (vagy bitjei) Folyamattitkosító Seed Kulcsgeneráto r Titkosított szöveg bájtjai (vagy bitjei) 39
16. PRNG Előzmény PNG (Random Number Generálás) Véletlen szám: 1. Az előállítás módjától véletlen 2. Akkor érezzük véletlennek, ha az előző szám nem befolyásolja a következőt Miből lehet számolni 1. Órajel 2. Fizikai jelenségek mintavételezése Pszeudó Number Generátor (PRNG) Egyenletes eloszlású eredményt ad, képlettel lehet más eloszlásút készíteni belőle. pl. Normálist Neumann féle négyzetközép módszer 1 8 8 1 1 4 5 8 1 1 2 Jellemzői: hátrány: könnyű ciklusba kerülni szám és négyzete lehet ugyanaz 0002 = 000 két különböző szám négyzetének közepe lehet ugyanaz előnye: gyors Lineáris kongruencia módszer R0= véletlen seed Jól megválasztott konstansok A seed et be kell állítani, vagy egy gép egy véletlen jelenségből állítja elő. A módszer hátrány, hogy ismétlődik. Állvéletlen: Véletlennek tűnik, a véletlenekkel szemben támasztott statisztikai próbákat kiállja, de mégse az. 40
A véletlen szám generátor próbaja: 1. Egyenletes eloszlású: közel ugyanannyi minden számból 2. A számpárok is egyenletes valószínűséggel vannak 3. Miden szám előfordul 41
17. CSPRNG (ANSI X9.17, RSA án alapuló) CSPRNG=Cryptographycally Securd Jellemzők: 1. Léptetőregiszter mentes kulcsgenerátorok. 2. Az hogy a bitsorozat mennyire alkalmas biztonságos alkalmazások készítésére az az előállítás módjától függ, ezért sokszor olyan algoritmust használnak, ami már bizonyította a biztonságát. 3. Jellemzően lassabbak, mint LFSR társaik Biztonsági követelmények 1. Brute Force támadást élőben ne lehessen megvalósítani 2. A kimenet statisztikailag ne különbözzön egy igazi véletlen sorozattól 3. Ha SEED-et nem ismeri a támadó, akkor gyakorlatilag ne lehessen megjósolni a következő bitet. CSPBRNG: Biteket generál Definíció: Ha a PRBG teljesíti a következő bit tesztet, ha nincs polinomiális algoritmus, ami az n bit megismerése után 50% -nál nagyobb valószínűséggel megjósolja a következő bitet ANSI X9.17, (szimmetrikus) Bemenet: Kimenet: véletlen és titkos 64 bites S n integer k kulcs 3Des N darab álvéletlen 64 bites sorozat x 1,x 2,..,x m Inicializálás ciklus i=1 től n ig ciklus vége redmény vissza: x1,x2.xn 42
RSA alapuló (véletlen generátor, asszimetrikus) Inicializálás: Kimenet: véletlenszerűen választunk két NAGY prímszámot (decimális és 100 jegyű), ezek lesznek p 1 és p 2. kiszámoljuk a két szám szorzatát. a. m=p 1 *p 2, b. Φ(m)=(p 1-1)*(p2-1) c. Választunk egy e számot, ami Φ(m)-hez relatív prím d. L a két bitsorozat hossza L darab ál véletlen bit: z1, z2,, z L 1. Válasszunk egy tetszőleges, de n-nél kisebb x0 kezdőértéket 2. ciklus i=1 től L ig a. b. zi=az xi legkisebb helyértékű bitje 3. Kimenet z1,z2,, z L Az algoritmus sebességének sarokköve a moduláris hatványozás melynek sebessége tudatosan választott e kitevővel előre számítható illetve optimalizálható. Például: e=3, e=17, e=65537 esetén rendre 2,5,17 moduláris szorzást kell elvégezni egy bitért cserébe. 43
18. Hitelesítési módszerek Hitelesítés csoportosítása: 1. Tudásalapú 2. Birtokalapú 3. Biometria 4. Ideiglenes azonosítás Párhuzamosan kell őket használni Tudásalapú Jelszó, pin kód. Nem elég, mert ellopható, lehallgatható. Használható a tulajdonosa nélkül. Birtokalapú Igazolvány Kártyák (aktív, passzív). Aktív kártyának nagy előnye: o Nem lehet beszkennelni o A feltöréséhez a primfaktorizácós problémát kéne megoldani Chipkártya=> jó ötlet Hátrányuk összefoglalva: Ellophatók, lemásolhatók. (A tulajdonos tudta nélkül használhatók, máslás után) Biometria Újlenyomat => másolható Aláírás => másolható Hangazonosítás => utánozható Retinaazonosítás = > egyenlőre jó DNS => egyenlőre jó Ideiglenes azonosítás Időalapú azonosítás Például kapok egy kódot smsbe Biztonságos bank legalább Tudásalapú és birtokalapút is használ (valamelyiknél Ideiglenes is va). Digitális aláírás Megkapjuk az X-et => Bizonyítja, hogy az A küldte és ezt küldte Ha nem X akkor nem A küldte A Digitális aláírás nem titkos, csak hitelesítésre szolgál 44
Titkosított és hiteles üzenetváltás A küld üzenetet B -nek C. Titkosítás Hitelesítés D. (Nem biztos, hogy jó a képlet) Ha van X akkor tudjuk ki küldte és titkos Digitális vízjel 1. Internetről letöltött jogdíjas anyagok lehet követni így. (tudjuk, hogy ki szivárogtatta ki) 2. Fajtái: Promo CD, {0,1} Pl.: kihagyunk valakit a stáblistából. 45
19. Titokmegosztási módszerek. A cél a kulcs biztonságba helyezése. Ne tudjon senki visszaélni a hatalmával. Miért szükség a kulcsot több emberre bízni? 1. Nem lehet egy emberre rábízni, mert visszaélhet a hatalmával. => pl. meglép a cég vagyonával, megváltoztatja a jelszókat és kilép. 2. Az üzenet hordozóját baleset érheti. Ha az valamilyen hordozó eszközön van, akkor az megsemmisülhet. 3. Két ember még nem elég. Ha A vádolja B és fordítva, nem lehet eldönteni ki, a bűnös. I. Kulcs megosztás A B Több részre osztjuk a kulcsot: Az egyik tudja az egyik felét a másik a másik felét. A teles kódot egy páncélszekrényben tároljuk úgy, hogy ne lehessen roncsolás nélkül megnézi. Az ötlet hibája: mi történik akkor ha A vagy B szabadságra megy? Több párnak adjuk ki a kulcsokat (Ez minimum kettő): A1 A2 A3 B3 B1 B2 Azért van, hogy nem ugyanolyan hosszúak, hogy A1 csak B1 el legyen elegendő a jelszava=> azonosítani lehet ki lépett be a rendszerbe. (Bár azonosítnia avval is lehetne, hogy melyik jelszó lett beírva. Saját megjegyzés). Hiba: 1. Minél több embernél van a kulcs, annál több adminisztrációra van szükség. 2. Legalább annyi embernek jelen kell lennie ahány részre osztottuk a jelszót. 46
II. Kulcs megosztás (polinomos) N részre osztjuk a titkot és elég tetszőleges K ember, hogy a titkot helyreállítsák. Y1 Y2 Y3 Titok X1 (A tudja) X2 (B tudja) X3 (C tudja) Például: egy egyenes egyenletének meghatározásához elég két pont koordinátáit tudni, de N pont koordinátáit oszthatjuk szét. A titok: Hogy X0 van az egyenes milyen értéket vesz fel. Hátrány: N emberből elég, ha két ember szövetkezik és ismét be tud jutni a rendszerbe. Hány ember kell, hogy lebuktassunk egy hamisítót. => Legalább 4 (ezt nem értem, de szerepel a füzetembe) III. Kulcs megosztás (polinomos) Nem csak egy egyenest veszünk, hanem egy n-ed fokú polinomot. Tanuláság: n -ed fokú polinom egyértelmű azonosításához n-1 paraméter kell. Lehetőség van súlyozni a kulcs ismerőit: Valaki több paramétert kap meg. Kérdés: Hogyan lehet ezt hitelesíteni? (csak a kérdés szerepelt az órán) 47
20. A jó jelszó tulajdonságai. Jelszókezelés. Jelszó feltörési módszerek A jó jelszó tulajdonságai: 1. Legyen hosszú, 8-14 karakter! Minél hosszabb annál jobb. 2. Legyen benne kisbetű, nagybetű, speciális karakter, szám. (legalább 3 mat ezek közül) 3. Ne legyen benne ismert szórészlet és számrészlet. 4. Gyakran változtassuk. 5. Ismétlés se legyen benne. 6. Legyen megjegyezhető! 7. Ne írjuk le elérhető helyre. (Páncélszekrénybe lehet) 8. Minden rendszernél különböző passwordot használjunk! 9. Ne használjuk kétszer ugyanazt! 10. Ne legyen ugyanaz az user nevünk és a passwordünk! 11. Ne legyen benne értelmes szó vagy szórészlet! 12. Ne mondjuk el senkinek! 70 8 A jelszó hossza Használt karakterek száma A megoldás: Master jelszó használata: Egy titkosított fájlban tárolom a passwordöket, amit a master jelszó véd. Ennek kezelése nem triviális feladat. Egy példány nem elég. => megsérülhet Ha fájlhoz hozzáférnek, akkor minden bukik. Jelszókészítési megoldás: Könnyen megjegyezhető szövegrész, ami nem jellemző ránk. pl. Egy napon mikor micimackó +1982 (évszám eltolva)=> Enmm + 2093 Jelszó feltörési módszerek: 1. Brute Force. 8 hosszúság után nehéz 2. Szótár alapú: az összes jelszó leírva, abból kell keresni. A keresés sokkal gyorsabb. 3. Szivárványfájl 4. Key logger 5. Bizalmába férkőzünk, megszerezzük a jelszavakat 6. Távoli megfigyelések Password kezelés 1. Ne írd le 2. Ne küld el emailbe 3. Ha az első jelszót emailbe küldik, meg kell változtatni. 4. Minden rendszerben mást használjunk 5. Megváltoztatás csak biztonságos csatornán keresztül történjen. 48
21. Szteganográfia. El akarjuk felejteni a jelszókat. Információt elrejtjük úgy, hogy ne gyanakodjanak pl. Demaratusz Van egy értelmes szöveg (vagy kép), úgy rejtsük el az információt ebben a hordozóban, hogy azon ne látszódjon, hogy a rejtett információt is tartalmazza. Ötletek (ma és régen) 1. Semleges szövegben betűk megjelölése (fizikailag meg kell szerezni) 2. Sorszám, egy adott szöveg hányadik sorszámú karakterei érvényesek. 3. Speciális helyen van a rejtett üzenet. a. Pl.: minden sor/szó első betűje b. Pl.: Fileban a sor végi spacek. Egy db space bevezetésével annyi információt tudunk kódolni, amilyen hosszú a szöveg => A spacek száma egy bináris számnak felel meg. 4. Haj fejbőr. 5. Viasz palatábla. 6. Láthatatlan tinta mikropont (Bélyeg alá). Adatrejtés képben 24 Biten tároljuk a színt (az ember már nem is lát ennyi színt) 1. a. Van egy eredeti, és egy módosított képünk. A bit sorozat bitjei 0 és 1. b. Ha 0 akkor nem írok a képbe, ha 1 akkor módosítom kicsit a kép színintenzitást. c. Sorban végigmegyek a kép pixelein, ameddig el nem fogy az üzenet. d. Probléma: Két kép kell: Az eredeti képre szükség van a visszafejtéshez. e. Előny. A módosított képen nem tűnnek fel változások. 2. Van a képnek egy olyan része, amit nyugodtan lehet módosítani, mert nem befolyásolja a képet. Ha 0, ha 1, a kiszemelt bitbe írunk (Pl.: Előre megbeszélve, hogy minden 13. bitbe írunk.) Adatrejtés hangban 1. Nem halljuk a kis változtatásokat.(pl.: Hallástartományon kívüli részben 0, 1-et kell keresni) 2. (Akár tömörített filmben is lehet adatot rejteni. 25 fps {0,1}) Digitális Vízjelek 3. Internetről letöltött jogdíjas anyagok lehet követni így. (tudjuk, hogy ki szivárogtatta ki) 4. Fajtái: Promo CD, {0,1} Pl.: kihagyunk valakit a stáblistából. 49
Teljes spektrumú adás. 1. Egy frekvenciasávot bizonyos részekre osztanak Adó <=> Vevő 2. Értelmes jel az egyik sávon egy darabig, és a többi véletlenszerű zaj, aztán csatornát váltanak, és így tovább. Aki a teljes sávot figyeli, az nem tudja, hol megy értelmes adás. TCP csomagok A és B kommunikál. A küld egy csomagot B úgy tesz, mintha eldobná. A újraküldi, de egy kicsit módosítva. A rejtett információ a csomagok különbségében lesz. 50
22. Támadás fajtái. Kódfeltörés eredményessége Shannon modellje Üzenetforrás Rejtjelező Adó Vevő Megfejtő Védett csatorna Nyilvános csatorna Címzett Figyeljünk arra, hogy ne szerezzék meg az adatokat, mert kódolatlanul van a memóriában. Képernyőn lévő információ Bluetooth,wifi Támadási módok 1. Passzív Rejtjelező Megfejtő 2. Aktív Támadó Rejtjelező Támadó Megfejtő Támadási típusai (mi van a támadó birtokában) 1. Támadás azonos kulccsal rejtjelező üzenetek birtokában (Rejtett szövegű támadás) Ek(X1), Ek(X2),, Ek ( Xl). Sok titkos szöveggel, de egyetlen nyílt szöveggel sem rendelkezik 2. Támadás rejtett és nyílt szövegű üzenetek birtokában (Nyílt szövegű támadás) (X1,Ek (x1)), (X2, Ek(X2)) ismert. Néhány nyílt szöveget és azok titkosított párját ismeri (a ma használt algoritmusok nyilvánosak, így a támadó is állíthat elő ilyeneket) 3. Választható nyílt szövegű támadás Ek(Xi) <= A kulcsot nem ismerjük A támadónak lehetősége van az ismeretlen kulccsal saját maga által választott nyílt szöveg titkosítására 4. Választható szövegű támadás x => Ek(x) Ek(x) => x Tetszőleges rejtett szöveget fejthet meg egy fekete dobozzal 51
Melyiket feltételezzük a támadóról? A negyediket, ez a legpesszimistább Kódfeltörés eredményessége 1. Teljes feltörés (total break) Támadó megtalálta a kulcsot Összes további üzenetet megtudja fejteni Az előzőket is Tud hamis üzenetek is létrehozni 2. Teljes következtetés (global deduction) Ek(x) x-et előállítja, de nem fejtette meg a kulcsot 3. Egyedi vagy lokális következetés (Instance or local deduction) Általános esetben nem, csak bizonyos típusú üzenetek fejtésére képes 4. Informatív következtetés (Information deduction) Kulcs részleteket tud megfejteni. Pl. OTP Hf. A kategóriákra módszereket keresni 52
23. Rejtjelbiztonság, egyértelműségi pont. Rejtjelbiztonság : Elemszám jele y: rejtett üzenet x: nyílt üzenet k: kulcs K: összes kulcs E: rejtjelező függvény X x Y y K k Mikor lesz megbízható? Akkor jó a titkosítás, ha a legkisebb λ is nagy. Mikor nem? Ha a legnagyobb λ is kicsi. Ha a λ csak egyből keletkezik, akkor nem jó. Egyértelműségi pont Elméletben x: lehetséges üzenet leírható jelei (angol: 26) K: kulcshalmaz H: forrás entrópiája (angol: 1,3) : felső egész rész (felfelé kerekítés) m 0 : egész szám M 0 -nál rövidebb szöveg biztosan nem fejthető. 53