Sapientia Egyetem, Matematika-Informatika Tanszék.

Hasonló dokumentumok
Sapientia Egyetem, Matematika-Informatika Tanszék.

Sapientia Egyetem, Műszaki és Humántudományok Tanszék.

Sapientia Egyetem, Matematika-Informatika Tanszék.

Sapientia Egyetem, Matematika-Informatika Tanszék.

Sapientia Egyetem, Műszaki és Humántudományok Tanszék.

Sapientia Egyetem, Műszaki és Humántudományok Tanszék.

Sapientia Egyetem, Műszaki és Humántudományok Tanszék.

Sapientia Egyetem, Matematika-Informatika Tanszék.

Sapientia Egyetem, Műszaki és Humántudományok Tanszék.

Diszkrét matematika I.

Titkosítási rendszerek CCA-biztonsága

2018, Diszkre t matematika. 10. elo ada s

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Kriptográfiai alapfogalmak

Kriptográfia I. Kriptorendszerek

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

2018, Diszkrét matematika

Best of Criptography Slides

Webalkalmazás-biztonság. Kriptográfiai alapok

2016, Diszkrét matematika

Sapientia Egyetem, Műszaki és Humántudományok Tanszék.

Dr. Beinschróth József Kriptográfiai alkalmazások, rejtjelezések, digitális aláírás

Titkosítás NetWare környezetben

SSL elemei. Az SSL illeszkedése az internet protokoll-architektúrájába

Hírek kriptográfiai algoritmusok biztonságáról

Adat és Információvédelmi Mesteriskola 30 MB. Dr. Beinschróth József SAJÁTOS LOGIKAI VÉDELEM: A KRIPTOGRÁFIA ALKALMAZÁSA

Vezetéknélküli technológia

IP alapú távközlés. Virtuális magánhálózatok (VPN)

2017, Diszkrét matematika

2016, Diszkrét matematika

Modern szimmetrikus kulcsú rejtjelezők kriptoanalízise

Data Security: Access Control

Véletlenszám generátorok és tesztelésük HORVÁTH BÁLINT

Diszkrét matematika 2.

2018, Diszkrét matematika

2016, Diszkrét matematika

Data Security: Public key

2018, Diszkrét matematika

2018, Diszkre t matematika. 8. elo ada s

Adja meg, hogy ebben az esetben mely handshake üzenetek kerülnek átvitelre, és vázlatosan adja meg azok tartalmát! (8p)

Data Security: Access Control

2018, Funkcionális programozás

IT hálózat biztonság. A WiFi hálózatok biztonsága

Hálózati biztonság ( ) Kriptográfia ( )

Készítette: Fuszenecker Róbert Konzulens: Dr. Tuzson Tibor, docens

Algoritmuselmélet gyakorlat (MMN111G)

Számítógépes Hálózatok. 7. gyakorlat

Waldhauser Tamás december 1.

2015, Diszkrét matematika

LEGO robotok. XII. rész

Biztonságos kulcscsere-protokollok

Digitális aláírás és kriptográfiai hash függvények. 1. az aláírás generálása (az X üzenetet küldő A fél végzi): A B: X, D A (X)

Adatbiztonság PPZH május 20.

A Z E L E K T R O N I K U S A L Á Í R Á S J O G I S Z A B Á L Y O Z Á S A.

Elektronikus rendszerek a közigazgatásban elektronikus aláírás és archiválás elméletben

Véletlen sorozatok ellenőrzésének módszerei. dolgozat

2016, Diszkrét matematika

IT BIZTONSÁGTECHNIKA. Tanúsítványok. Nagy-Löki Balázs MCP, MCSA, MCSE, MCTS, MCITP. Készítette:

Véges állapotú gépek (FSM) tervezése

5.1 Környezet Hálózati topológia

7.hét: A sorrendi hálózatok elemei II.

Programozás II. előadás

Készítette: Trosztel Mátyás Konzulens: Hajós Gergely

A WiFi hálózatok technikai háttere

Modern titkosírások és a matematika

Matematikai alapok. Dr. Iványi Péter

15. tétel. Adatszerkezetek és algoritmusok vizsga Frissült: január 30.

Adatvédelem titkosítással

prímfaktoriz mfaktorizáció szló BME Villamosmérn és s Informatikai Kar

Véges állapotú gépek (FSM) tervezése

Emlékeztet! matematikából

Fábián Zoltán Hálózatok elmélet

Hatékonyság 1. előadás

Az adatfeldolgozás és adatátvitel biztonsága. Az adatfeldolgozás biztonsága. Adatbiztonság. Automatikus adatazonosítás, adattovábbítás, adatbiztonság

Struktúra nélküli adatszerkezetek

BABEŞ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR BBTE Matek-Infó verseny 1. tételsor INFORMATIKA írásbeli. A versenyzők figyelmébe:

Elektronikus hitelesítés a gyakorlatban

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

VÉLETLEN PERMUTÁCIÓ ELŐÁLLÍTÁSA

Áttekintés a GPG/PGP-ről Mohácsi János NIIF Intézet

2. fejezet Hálózati szoftver

Információs társadalom alapismeretek

2015, Diszkrét matematika

Kiegészítő részelőadás 1. Az algoritmusok hatékonyságának mérése

Data Security: Concepts

2018, Funkcionális programozás

Flynn féle osztályozás Single Isntruction Multiple Instruction Single Data SISD SIMD Multiple Data MISD MIMD

E mail titkosítás az üzleti életben ma már követelmény! Ön szerint ki tudja elolvasni bizalmas leveleinket?

Kvantumszámítógép a munkára fogott kvantummechanika

Virtualoso BackUp / BackUp Light szolgáltatás Szerver archiválási útmutató

2018, Funkcionális programozás

Data Security: Protocols Integrity

Véletlenszám generátorok

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 5

RSA algoritmus. P(M) = M e mod n. S(C) = C d mod n. A helyesség igazoláshoz szükséges számelméleti háttér. a φ(n) = 1 mod n, a (a 1,a 2,...

2016, Funkcionális programozás

és az instanceof operátor

Átírás:

Kriptográfia és Információbiztonság 3. előadás Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2019

Miről volt szó az elmúlt előadáson? Klasszikus kriptográfiai rendszerek Helyettesítéses rejtjelezés: affin-titkosító Mátrixos rejtjelezés: Hill módszere matematikai modell titkos-kulcsú rendszerek: matematikai modell az OTP titkosítási rendszer tökéletes biztonság biztonság-értelmezések, osztályozások az NTL könyvtárcsomag Mátrix műveletek Javában

Miről lesz szó? titkos-kulcsú rendszerek: matematikai modell, osztályozások folyam-titkosító rendszerek: OTP, RC4, linear feedback shift register, A51, Salsa20

A titkos-kulcsú rendszerek matematikai modellje megnevezések: titkos-kulcsú rendszerek, szimmetrikus rendszerek (private-key, symmetric crypto), jelölés: SKE-vel, a (K, M, C) halmaz-hármas felett értelmezzük. 3 algoritmus: Gen, a kulcs-generáló algoritmus, polinom idejű, véletlenszerű: key R Gen(1 k ), ahol key K, k Z 0 a rendszer biztonsági paramétere (legtöbb esetben a generált kulcs bit-hossza), Enc key a rejtjelező algoritmus, polinom idejű, véletlenszerű: c R Enc key (m), a Dec key a visszafejtő algoritmus, polinom idejű, determinisztikus: m Dec key (c). Helyesség: Dec key (Enc key (m)) = m, minden m M esetében. gyakorlatban a polinom futásidejű algoritmus hatékony algoritmust jelent, például elvárjuk, hogy 1 gigabájtnyi adat titkosítását 1 perc alatt végezze el a rendszer

A titkos-kulcsú rendszerek osztályozása nagy adathalmaz titkosítására alkalmasak nincs megoldva a felek közötti kulcs-csere, ezt a nyilvános kulcsú kriptográfia végzi, két nagy csoportra oszthatóak: folyam-titkosító rendszerek, blokk-titkosító rendszerek.

Folyam-titkosító rendszerek véletlenszerűen generálnak egy bitsort, a kulcsfolyamot, amelyet legtöbbször a művelettel hozzáadnak a nyílt szöveghez, a kulcsfolyamot egyetlenegyszer használják, a rendszer biztonságát a kulcsfolyamot generáló algoritmus határozza meg álvéletlen-szám generáló algoritmusok (pseudo-random number generators) nem minden ál-véletlenszám generátor alkalmas a kriptográfiában, pl: az x n = a x n 1 + b (mod p) lineáris kongruenciával értelmezett generátor sem alkalmas.

Folyam-titkosító rendszerek implementációjuk általában könnyű hardver-be építve nagyon gyorsak, ezért legtöbbször hardver szintjén implementálják őket szoftver szintjén nem mindig érik el a megfelelő gyorsaságot leginkább akkor használják, amikor nem lehet tudni, hogy milyen hosszú a nyílt szöveg, pl wireless kommunikáció katonai környezetben gyakran használják: a kulcsfolyam előálĺıtást külön eszköz végzi, ez jól védett, a XOR műveletek elvégzésére pedig más eszközt használnak, amelynek biztonsága már nem olyan fontos biztonságuk vitatott, pl. az RC4, A51 kezdetben titkosak voltak, miután publikussá váltak számos gyengeséget fedeztek fel bennük

Az RC4 1987-ben tervezte Ron Rivest, kezdetben nem volt publikus, 1994-ben ismeretlenül felkerült a Cyberpunk levelező-listájára, a HTTPS, WEP és számos más protokollban használták, ma már nem biztonságos, több sikeres támadás érte, új projekteknél nem ajánlatos használni a Internet Engineering Task Force (IETF) 2015-től tiltja a használatát Elvi működése: egy 128 bites kezdeti érték alapján, a 256 fajta bájtértéket összekeverve, előálĺıt egy 256 elemű bájt-tömböt, amely a generátor alap állapotának fog megfelelni, a kulcsfolyam egy bájtja, a 256 elemű bájttömb egy véletlenszerűen kiválasztott bájtja lesz, a kulcsfolyam bájtjait ciklikusan álĺıtja elő, amit művelettel ad hozzá a nyílt szöveghez.

Az RC4 Gyengeségek: 1 annak a valószínűsége, hogy a második bájt 0 lesz kellene legyen, de 256 2 ez nem így van, mert ez lesz; hasonló a helyzet az első 256 bájttal is 256 megoldás: a kulcs-folyam első 256 bájtját nem használjuk fel a titkosításban a 00 szekvencia gyakrabban fordul elő, mint a 01, 10, 11 szekvencia, ha két olyan kezdeti kulcsértéket használok, amelyek közel állnak egymáshoz további feltörési stratégia válik lehetségessé: related keys attack

Az RC4, inicializálási szakasz void rc4_init(unsigned char *key, unsigned int key_length) { for (i = 0; i < 256; i++) S[i] = i; } for (i = j = 0; i < 256; i++) { j = (j + key[i % key_length] + S[i]) & 255; swap(s, i, j); } i = j = 0; a key tömb a kulcs bájtjait tartalmazza az i, j értékek és az S tömb globális, kezdetben megegyezik az identitás permutációval a swap függvény felcseréli a megfelelő indexű elemeket az S tömbből A 256-al történő maradékos osztás 255-tel való & (AND) művelettel helyettesíthető

Az RC4, kulcsfolyam-generálási fázis unsigned char rc4_output() { i = (i + 1) & 255; j = (j + S[i]) & 255; swap(s, i, j); } return S[(S[i] + S[j]) & 255]; minden lépésben sor kerül a megfelelő elemek felcserélésére és kiválasztására

Visszacsatolt, léptető regiszteres titkosítás, linear feedback shift register - LFSR Számos rendszer esetében használták, használják pl.: DVD titkosítása esetén a rendszer neve CSS (content scrambling system) GSM titkosítás esetén a rendszer neve A51, A52 Blutooth titkosítás esetén a rendszer neve E0 hardvare szintjén könnyedén és hatékonyan implementálható a kulcsfolyamot egy lineáris összefüggés alapján számolják, kiindulva a key = (z m,..., z 2, z 1) értékekből: z i+m = c 0z i + c 1z i+1 +... c m 1z i+m 1 (mod 2), ahol i 1 és c 0, c 1,..., c m 1 rögzített konstansok a c 0, c 1,..., c m 1 konstansok helyes választása esetén a kulcsfolyam periódusa maximális lesz: 2 m 1.

Az LFSR támadása, feltörhetősége Példa 16 bites LFSR: z i+16 = z i + z i+2 + z i+3 + z i+5 (mod 2), Ha key = (z 16, z 15,..., z 1) = 1000 0111 0011 0101, akkor a kulcsfolyam első bitjei a pirossal kijelölt értékek lesznek: 1100 0011 1001 1010 1110 0001 1100 1101 1111 0000 1110 0110 0111 1000 0111 0011 0011 1100 0011 1001 1001 1110 0001 1100 2 16 1 lesz a generátor periódusa

Az LFSR támadása, feltörhetősége az alkalmazott műveletek lineárisak, ezért a rendszer feltörhető, ha ismerjük hogy a (x 1, x 2,..., x n) nyílt szövegnek (y 1, y 2,..., y n) a rejtjele, illetve ismerjük az m értékét akkor meghatározható az alkalmazott lineáris összefüggés meghatározzuk: (x 1, x 2,..., x n) (y 1, y 2,..., y n) (z 1, z 2,..., z n) ha n 2m, akkor a támadó megtudja határozni a (c 0, c 1,..., c m 1) értékeket a következő módon (következő oldal):

Az LFSR támadása, feltörhetősége feĺırható: (z m+1, z m+2,..., z 2m ) = (c 0, c 1,..., c m 1 ) z 1 z 2... z m z 2 z 3... z m+1... z m z m+1... z 2m 1 és meghatározható: (c 0, c 1,..., c m 1 ) = (z m+1, z m+2,..., z 2m ) z 1 z 2... z m z 2 z 3... z m+1... z m z m+1... z 2m 1 1

Az LFSR támadása, feltörhetősége Feltételezzük, hogy a támadó rendelkezik a következő titkosított bit-szekvenciával: és a bit-szekvencia titkosított értékével: 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1 1 0 0 A fenti két bitsorozat xor-olásával megtudja határozni a kulcsfolyam első bitjeit: 0 0 0 1 0 1 1 0 1 0 Tudva azt is, hogy 5-bites LFSR-t alkalmaztak a titkosítás során, a következő eljárással a támadó megtudja határozni a kulcsfolyamot kigeneráló lineáris összefüggést: (0, 1, 0, 0, 0) = (c 0, c 1, c 2, c 3, c 4 ) 0 1 0 1 1 1 0 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 0

Az LFSR támadása, feltörhetősége Meghatározható: ahonnan: 0 1 0 1 1 1 0 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 0 1 (c 0, c 1, c 2, c 3, c 4 ) = (0, 1, 0, 0, 0) = 1 1 1 0 0 1 0 1 1 1 1 1 1 0 1 0 1 0 0 1 0 1 1 1 0 1 1 1 0 0 1 0 1 1 1 1 1 1 0 1 0 1 0 0 1 0 1 1 1 0 = (1, 0, 1, 1, 1) Tehát a kulcsfolyam kigenerálásához alkalmazott lineáris összefüggés a következő: z i+5 = (z i + z i+2 + z i+3 + z i+4 ) (mod 2).

Az A51 a GSM technológiában használják, hardware szinten szokták implementálni, három léptető regiszterrel dolgozik, X, Y, Z-vel amelyek összesen 64 bitet kezelnek az X 19 bites: (x 0, x 1,..., x 18), az Y 22 bites: (y 0, y 1,..., y 21), a Z 23 bites: (z 0, z 1,..., z 22), a kulcs 64 bites, amellyel feltöltik a három regisztert a következő belső majoráló/növelő függvényt számoljuk ki minden óraimpulzusban: { 0, ha a három bit között több a 0-ás m = maj(x 8, y 10, z 10) = 1, ha a három bit között több az 1-es ha x 8 = m, akkor X-et léptetjük ha y 10 = m, akkor az Y-t léptetjük ha z 10 = m, akkor az Z-t léptetjük

Az A51 A kulcsfolyam előálĺıtása a következőképpen történik: X léptetése: Y léptetése: Z léptetése: t = x 13 x 16 x 17 x 18 x i = x i 1, i = 18, 17,... 1 re x 0 = t t = y 20 y 21 y i = y i 1, i = 21, 20,..., 1 re y 0 = t t = z 7 z 20 z 21 z 22 z i = z i 1, i = 22, 21,..., 1 re z 0 = t a kulcsfolyam aktuális s bitje: s = x 18 y 21 z 22

A Salsa20 a 2008-ban lezáruló estream projekthez beküldött folyam-titkosító, tervezője D.J.Bernstein; teljesen publikus: http://cr.yp.to/djb.html, úgy hardver, mint softver implementációja ismert, feltörési módszerek: az eddigi leghatásosabb módszer az összes kulcs kipróbálásának módszere, hatékonysága: 643 Mb/sec, 6-szor gyorsabb mint az RC4.

A Salsa20 a kulcs mérete: 128 vagy 256-bit hossz, ha a kulcs mérete 128 bit, akkor a következő a specifikáció: a k kulcs mellett a bemenetnek meg kell adni egy 64 bites r nonce (number use at once) értéket, ahol a összefűzést jelent: Salsa20 : {0, 1} 128 {0, 1} 64 {0, 1} n Salsa20(k, r) = H(k r 0)) H(k r 1)..., A H függvényt a k r i bemeneten hajtjuk végre, ahol az i számláló értékét 64 biten tároljuk, A H függvény a 32 bájtból (256 bit) 64 bájtot álĺıt elő: (k r i) (t 0 k t 1 r i t 2 k t 3), melyen 10-szer alkalmaz egy invertálható h : {0, 1} 64 {0, 1} 64 függvényt. a H függvény kimenetét 4 bájtonként (mod 2 32 ) szerinti összeadást végezve adjuk hozzá a nyílt szöveghez.

Valós rendszerek biztonsági problémái Közvetett vagy közvetlen módon felmerül a kulcs többszöri felhasználása: Venona projekt: célja az orosz titkosszolgálat üzeneteinek a megfejtése volt, 1943-1980 között. Az amerikai hadsereg kb. 3000 üzenetet fejtett meg ebben a periódusban mert többször birtokába került két-két olyan titkosított érték, ahol mindkét esetben ugyanazt a kulcsot használták a titkosítás során. MS-PPTP (windows NT): szerver és kliensek közti kommunikáció esete, volt egy megosztott titkos kulcs, ahol a szerver és kliens oldalon is ugyanazzal a kulcs-folyammal végezték a titkosítást a kulcs többszöri felhasználása. Megoldás: kulcspár használata, amelyet a szerver és a kliens is ismer, egyik érték a szerver, másik érték a kliens oldali titkosításhoz.

Valós rendszerek biztonsági problémái Közvetett vagy közvetlen módon felmerül a kulcs többszöri felhasználása: 802.11b WEP, több probléma, az egyik: egy 24 bites inicializáló érték (IV) alkalmazása lehetővé tette a WEP feltörését, mert túl kicsi volt az IV bithossza: 2 24 16 millio IV érték után az IV-k ciklikusan ismétlődtek.