Sapientia Egyetem, Matematika-Informatika Tanszék.

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

Sapientia Egyetem, Matematika-Informatika Tanszék.

2018, Diszkre t matematika. 10. elo ada s

2017, Diszkrét matematika

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

1. Egészítsük ki az alábbi Python függvényt úgy, hogy a függvény meghatározza, egy listába, az első n szám faktoriális értékét:

Diszkrét matematika I.

2016, Diszkrét matematika

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

2018, Diszkre t matematika. 8. elo ada s

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

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

Data Security: Public key

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,...

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

2016, Diszkrét matematika

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

Emlékeztet! matematikából

2016, Diszkrét matematika

Sapientia Egyetem, Matematika-Informatika Tanszék.

Diszkrét matematika I.

Számelmélet (2017. február 8.) Bogya Norbert, Kátai-Urbán Kamilla

Információs társadalom alapismeretek

Minden egész szám osztója önmagának, azaz a a minden egész a-ra.

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

megtalálásának hihetetlen nehéz voltán alapszik. Az eljárás matematikai alapja a kis FERMAT-tétel egy következménye:

2018, Diszkrét matematika

Számelméleti alapfogalmak

4. Előadás Titkosítás, RSA algoritmus

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

Sapientia Egyetem, Matematika-Informatika Tanszék.

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

Waldhauser Tamás december 1.

Kongruenciák. Waldhauser Tamás

Sapientia Egyetem, Matematika-Informatika Tanszék.

2018, Diszkrét matematika

Számelmélet. 1. Oszthatóság Prímszámok

Titkosírás. Biztos, hogy titkos? Szabó István előadása. Az életben sok helyen használunk titkosítást (mobil, internet, jelszavak...

Algoritmuselmélet gyakorlat (MMN111G)

SzA XIII. gyakorlat, december. 3/5.

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

Prímtesztelés, Nyilvános kulcsú titkosítás

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Számelmélet I.

Titkosítási rendszerek CCA-biztonsága

7. Számelmélet. 1. Lehet-e négyzetszám az a pozitív egész szám, amelynek tízes számrendszerbeli alakjában 510 darab 1-es és valahány 0 szerepel?

2016, Diszkrét matematika

OSZTHATÓSÁG. Osztók és többszörösök : a 3 többszörösei : a 4 többszörösei Ahol mindkét jel megtalálható a 12 többszöröseit találjuk.

2018, Diszkrét matematika

2018, Diszkrét matematika

illetve a n 3 illetve a 2n 5

6. előadás Faktorizációs technikák közepes méretű osztókra

6. előadás Faktorizációs technikák közepes méretű osztókra

2015, Diszkrét matematika

Számelmélet Megoldások

SZÁMELMÉLETI FELADATOK

Diszkrét matematika 2.

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

Nyilvános kulcsú titkosítás RSA algoritmus

Waldhauser Tamás. Jelölés. Az egyszerűség kedvéért (a, b) ρ helyett gyakran azt írjuk, hogy aρb.

2. Tétel (Az oszthatóság tulajdonságai). : 2. Nullát minden elem osztja, de. 3. a nulla csak a nullának osztója.

Kriptográfiai protokollok

Klasszikus algebra előadás. Waldhauser Tamás április 28.

Algebra es sz amelm elet 3 el oad as Nevezetes sz amelm eleti probl em ak Waldhauser Tam as 2014 oszi f el ev

1.1. Definíció. Azt mondjuk, hogy a oszója b-nek, vagy más szóval, b osztható a-val, ha létezik olyan x Z, hogy b = ax. Ennek jelölése a b.

Számelmélet. 4. Igazolja, hogy ha hat egész szám összege páratlan, akkor e számok szorzata páros!

Szakács Lili Kata megoldása

PRÍMSZÁMOK ÉS A TITKOSÍRÁS

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT Számelmélet

Módszerek és eszközök a kriptográfia oktatásakor

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

Tartalom. Algebrai és transzcendens számok

Kriptográfiai alapfogalmak

Mintafeladat az RSA algoritmus szemléltetésére

KÓDOLÁSTECHNIKA PZH december 18.

Bevezetés az algebrába az egész számok 2

Hatványozás. A hatványozás azonosságai

RSA algoritmus. Smidla József. Rendszer- és Számítástudományi Tanszék Pannon Egyetem

Felvételi vizsga mintatételsor Informatika írásbeli vizsga

Az Országos Középiskolai Tanulmányi Verseny tanévi első fordulójának feladatmegoldásai

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

NEVEZETES SZÁMELMÉLETI FÜGGVÉNYEKRŐL

2018, Funkcionális programozás

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

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

Kvantumkriptográfia II.

Diszkrét matematika 2.

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

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Számelmélet

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

Bevezetés az algebrába 1

Egyesíthető prioritási sor

Diszkrét matematika I.

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

Diszkrét matematika 2.

Oszthatósági problémák

Diszkrét matematika 1. estis képzés. Komputeralgebra Tanszék ősz

Adatszerkezetek 2. Dr. Iványi Péter

Oszthatóság. Oszthatóság definíciója (az egészek illetve a természetes számok halmazán):

Kriptográfia I. Kriptorendszerek

KOVÁCS BÉLA, MATEMATIKA I.

Átírás:

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

Miről volt szó az elmúlt előadáson? az RSA titkosító rendszer (baby, textbook változat): specifikáció, példa RSA, biztonsági problémák az RSA-OAEP rendszer RSA a gyakorlatban valószínűségi prímtesztek az RSA gyorsítása

Miről lesz szó? RSA biztonsági problémák: az e megválasztása faktorizációhoz kapcsolódó problémák a Rabin titkosító, az SAEP rendszer a diszkrét logaritmus probléma a Diffie-Hellman kulcscsere

Az e megválasztása: kínai maradéktétel alkalmazása a titkosítás idejének csökkentése úgy oldható meg, ha kis e exponenst választok, mennyire kis e értéket választhatok: 3, 7, 65537? Az e = 3 választás esetén, ha ugyanazt a nyílt-szöveget különböző modulus értékekkel: n 1, n 2, n 3, elküldjük három különböző félnek, akkor a rendszer feltörhető. Feltételezve, hogy a nr értékét titkosítottuk és a c 1, c 2, c 3 títkosított értékeket kaptuk, akkor a kínai maradéktételt alkalmazva, a következő lineáris kongruencia rendszeren, majd az eredményből köbgyököt vonva megtudjuk határozni a nr értékét: x = nr 3 (mod n 1), azaz x = c 1 (mod n 1) x = nr 3 (mod n 2), azaz x = c 2 (mod n 2) x = nr 3 (mod n 3), azaz x = c 3 (mod n 3)

Az e megválasztása: kínai maradéktétel alkalmazása Az x értékét a következő képlet adja (kínai maradéktétel alapján): x = (M1 1 M1 c 1 + M2 1 M2 c 2 + M3 1 M3 c 3)(modM) M = n 1 n 2 n 3 M1 = M/n 1, M2 = M/n 2, M3 = M/n 3 M1 M1 1 = 1 (mod n 1) M2 M2 1 = 1 (mod n 2) M3 M3 1 = 1 (mod n 3)

A köbgyököt meghatározó közeĺıtő algoritmus Newton közeĺıtő módszerének az alkalmazása ha megakarom határozni 3 nr, értékét, akkor a következő képlet alkalmazható, amíg x n és x n+1 nem lesznek egyformák : az eredmény x n. x 0 = 1 x n+1 = (2 x n + nr/(x n x n))/3

Faktorizációhoz kapcsolódó problémák osztási próba módszere (trial division), Fermat-féle faktorizációs módszer, Pollard ρ féle faktorizációs módszer... Az osztási próba módszere: vizsgáljuk a kis prímekkel való oszthatóságot, ha két azonos nagyságrendű prímszám szorzata a vizsgált n összetett szám, akkora közeĺıtőleg n osztást kell kipróbálnunk a sikeres faktorizáláshoz, akkor használjuk, mikor egy összetett szám kis nagyságrendű prímosztóit kell megkeresni.

Fermat-féle faktorizációs módszer Ha a p és a q prímek közel vannak egymáshoz, akkor az n faktorizálása lehetséges a Fermat-féle faktorizációs módszerrel. Feltételezzük, hogy az n = a 2 b 2, ahol a, b tetszőleges egész számok. Ekkor p = a b, q = a + b. Az algoritmus a következő: fermatfaktor(n) a = ceil(sqrt(n)); b1 = a * a - n; while (negyzetsz(b1) == 0) do a = a + 1; b1 = a * a - n; return (a + sqrt(b1)); A negyzetsz függvény megvizsgálja, hogy a paraméterként kapott szám négyzetszám-e, 0-t térít vissza, ha a paramétere nem négyzetszám.

Fermat-féle faktorizáció, példa Határozzuk meg n = 6283 két prímosztóját, a Fermat-féle faktorizációs módszerrel: n a b = a 2 n négyzetszám-e? 80 80 117 nem 81 278 nem 82 441 igen 441 = 21 p = 82 21 = 61, q = 82 + 21 = 103

A Rabin titkosító rendszer 1979-ben publikálta Michael O. Rabin, azt a lehetőséget vizsgálja, amikor az RSA titkosítás során az e = 2 értéket választjuk ha e = 2, akkor nem létezik inverz, mert phi mindig páros, ezért lnko(e, phi) 1 a visszafejtést más aritmetikai műveletek határozzák meg Gen, a kulcs-generáló algoritmus: (p, q) R Gen(1 k ), ahol p q 3 (mod 4), n = p q, p k = (n), s k = (p, q), Enc (n) a rejtjelező algoritmus: c m 2 Dec (p,q) a visszafejtő algoritmus: m c 1 2 (mod n), (mod n).

A Rabin titkosító, biztonság A visszafejtés nem egyértelmű: 4 lehetséges visszafejtett szöveg közül kell kiválsztani a megfelelőt, a visszafejtés során negyzetgyököt számolunk, alkalmazzuk a kínai maradéktételt: m p = c (p+1)/4 (mod p), m q = c (q+1)/4 (mod q), meghatározzuk p 1 -t, azaz p inverzét (mod q) szerint meghatározzuk q 1 -t, azaz q inverzét (mod p) szerint m 1 = (p 1 p m q + q 1 q m p) (mod n), m 2 = (p 1 p m q q 1 q m p) (mod n) a 4 megoldás: m 1, m 2, m 3 = n m 1, m 4 = n m 2

A Rabin titkosító rendszer, példa legyen p = 11, és q = 31 n = 341, legyen m = 42, a nyílt-szöveg, titkosítás: c = 42 2 = 59 (mod 341), visszafejtés: 59 (11+1)/4 = 9 (mod 11), 59 (31+1)/4 = 20 (mod 31), meghatározzuk 31 inverzét mod 11 szerint: 31 1 = 5, azaz fennáll: 31 5 = 1 (mod 11). meghatározzuk 11 inverzét 31 szerint: 11 1 = 17, azaz fennáll 11 17 = 1 (mod 31) m 1 = (31 31 1 9 + 11 11 1 20) = 20 (mod 341), m 2 = (31 31 1 9 11 11 1 20) = 42 (mod 341), m 3 = 341 m 1 = 321, m 4 = 341 m 2 = 299,

A Rabin titkosító, biztonság A visszafejtés fenti képletét azért lehet alkalmazni, mert p q 3 (mod 4), sokkal hatékonyabb, mint az RSA, megmutatható, hogy a Rabin rendszer feltörése ugyanolyan nehézségű, mint a fakorizációs probléma, ez nem igaz a textbook RSA-ra, az RSA-nál vett feltörési stratégiák egy része itt is alkalmazható, újabb változata (2001, Boneh) ellenáll a CCA támadásnak (az egyik legerősebb támadási mód), illetve egyértelmű a visszafejtése hasonlóan az RSA-hoz kulcscsere és hitelesítési protokollokban használják.

Az SAEP rendszer a rendszer alkalmaz egy hash függvényt, legyen ez: H : {0, 1} lr {0, 1} l H, M = {0, 1} l M, C = {0, 1} l H +l r, K = {0, 1} l H +l r, l H, l r pozitív egész számok, ahol l M < l H, és k = l H + l r, tipikus értékek: k = 1024, l M = 256, l r = 640, l H = 384 A Gen(1 k ) kulcsgeneráló algoritmus, meghatároz egy (k + 2) bites N = p q számot, ahol az N legfelsőbb helyértékű két bitje 10, p, q pedig két k/2 + 1 bites prímszám, úgy hogy: p q 3 (mod 4), nyilvános kulcs: N és titkos kulcs: (p, q).

Az SAEP rendszer Az ENC N (m) titkosító algoritmus probabilisztikusan, polinomiális időben meghatározza a c rejtjelezett értékét, ahol x = m 0 l H l M, ahol összefűzést jelent, r R {0, 1} lr, y = (x H(r)) r, c = y 2 (mod n). Megjegyzés: y < 2 k < n/2, ez fontos szerepet játszik a visszafejtés során.

Az SAEP rendszer A DEC N (m) visszafejtő algoritmus, polinomiális időben meghatározza az m értéket, ahol a visszafejtés során számos plusz tesztelést is végzünk: ahogy a Rabin visszafejtésnél tettük, meghatározzuk: m p = c (p+1)/4 (mod p), m q = c (q+1)/4 (mod q), ellenőrizzük, hogy fennáll-e: mp 2 = c (mod p) és mq 2 = c (mod q); ha nem akkor visszautasítjuk a kapott c rejtjelezett értéket m 1, m 2, m 3, m 4 értékeket, ezek közül csak kettő lesz kisebb, mint n/2, jelöljük ezeket y 1, y 2-vel, a továbbiakban csak ezekkel dolgozunk

Az SAEP rendszer A DEC N (m) visszafejtő algoritmus, folyatatás: a meghatározott m 1, m 2, m 3, m 4 értékek közül csak kettő lesz kisebb, mint n/2, jelöljük ezeket y 1, y 2-vel, a továbbiakban csak ezekkel dolgozunk feĺırjuk y 1 = v 1 r 1 y 2 = v 2 r 2, ahol v 1, v 2 az y 1, illetve y 2 első l H darab bitje, r 1, r 2 pedig rendre az utolsó l r darab bit meghatározzuk: x 1 = v 1 H(r 1), x 2 = v 2 H(r 2) feĺırjuk: x 1 = m 1 t 1, x 2 = m 2 t 2, ahol m 1, m 2 az x 1 illetve x 2 első l M darab bitje ha t 1, t 2 mindegyike, vagy egyike sem áll csupa nullás bitekből, akkor visszautasítjuk a kapott c értéket az m értékét az az m i adja, ahol t i csupa nullás bitekből áll, i = 1, 2.

A diszkrét logaritmus (DL) probléma Számos kriptorendszer biztonsága alapszik a DL problémán. Az egész számok Z p multiplikatív csoportja esetében, ahol p prímszám a DL probléma a következő: az A, g-alapú diszkrét logaritmusa (mod p) szerint azt jelenti, hogy megkeressük azt az a pozitív egész számot, melyre fennáll: g a A (mod p), ahol g generátor elem (primitív gyök), és g, A Z p. A g szám generátor elem (mod p) szerint, ha g hatványai 1-től, φ(p)-ig, azaz g, g 2, g 3,..., g φ(p), különböző maradékot adnak (mod p) szerint.

Hatványok és generátor elemek Határozzuk meg x n n = 1, 2,... 10-re: (mod 11), értékeit x = 2, 3,... 10-re illetve 2 1 = 2 3 1 = 3 4 1 = 4 5 1 = 5 6 1 = 6 7 1 = 7 8 1 = 8 9 1 = 9 10 1 = 10 2 2 = 4 3 2 = 9 4 2 = 5 5 2 = 3 6 2 = 3 7 2 = 5 8 2 = 9 9 2 = 4 10 2 = 1 2 3 = 8 3 3 = 5 4 3 = 9 5 3 = 4 6 3 = 7 7 3 = 2 8 3 = 6 9 3 = 3 10 3 = 10 2 4 = 5 3 4 = 4 4 4 = 3 5 4 = 9 6 4 = 9 7 4 = 3 8 4 = 4 9 4 = 5 10 4 = 1 2 5 = 10 3 5 = 1 4 5 = 1 5 5 = 1 6 5 = 10 7 5 = 10 8 5 = 10 9 5 = 1 10 5 = 10 2 6 = 9 3 6 = 3 4 6 = 4 5 6 = 5 6 6 = 5 7 6 = 4 8 6 = 3 9 6 = 9 10 6 = 1 2 7 = 7 3 7 = 9 4 7 = 5 5 7 = 3 6 7 = 8 7 7 = 6 8 7 = 2 9 7 = 4 10 7 = 10 2 8 = 3 3 8 = 5 4 8 = 9 5 8 = 4 6 8 = 4 7 8 = 9 8 8 = 5 9 8 = 3 10 8 = 1 2 9 = 6 3 9 = 4 4 9 = 3 5 9 = 9 6 9 = 2 7 9 = 8 8 9 = 7 9 9 = 5 10 9 = 10 2 10 = 1 3 10 = 1 4 10 = 1 5 10 = 1 6 10 = 1 7 10 = 1 8 10 = 1 9 10 = 1 10 10 = 1 Megyjegyzések: a táblázat alapján kijelenthetjük, hogy lesznek olyan x számok, ahol x-nek kisebb hatványértékei is kongruensek lesznek 1-el. ha p egy prímszám, akkor mindig létezik g {1, 2,..., p 1}, amelynek hatványértékei (mod p) szerint előálĺıtják az {1, 2,..., p 1} halmaz elemeit, egy tetszőleges sorrendbe ezeket a g elemeket generátor elemeknek, vagy primitív gyököknek hívjuk

Adott generátor elem meghatározása A p > 2 prímszám és g Z p esetében g akkor és csakis akkor generátor (mod p) szerint, ha g (p 1)/q 1 (mod p), bármely q prímszám esetében, ahol q (p 1). Ha ismert a p 1 prímtényezős felbontása, akkor egyszerű meghatározni a generátor elemet nem hatékony algoritmus. Ha p = 2 q + 1, ahol p, q páratlan prímszámok, akkor g generátor elem (mod p) szerint, ahol g ±1 (mod p), akkor és csakis akkor, ha g q = p 1 (mod p) hatékony algoritmus.

Adott generátor elem meghatározása, példa Legyen p = 47 = 2 23 + 1, p 1 = 46, g = 13 generátor elem? Igen, mert 13 23 = 46 (mod 47). g = 3 generátor elem? Nem, mert 3 23 = 1 (mod 47). Megjegyzések: a p prímszámot biztonságos prímnek (safe prime) hívjuk, ha egyenlő 2 q + 1-el, ahol q is prímszám. biztonságos prímek generálása időigényes

Diffie-Hellman kulcscsere 1976-ban publikálták a szerzők, két távoli egység (számítógép, mobileszköz, stb.) kulcscsere mechanizmusára, hitelesítésére ad megoldást. Feltételezve, hogy a kommunikációban résztvevő két eszköz A és B, akkor a protokoll a következő: 1. A és B megegyeznek a p, k-bites prímszám, és a g generátor elem értékében, 2. az A eszköz a k, p, g ismeretében meghatározza az a, A értékeket, ahol: a {2,..., p 2} véletlen szám, A = g a (mod p), az a értékét titokban tartja, A-t pedig elküldi B-nek.

Diffie-Hellman kulcscsere 3. a B eszköz a k, p, g ismeretében meghatározza a b, B értékeket, ahol: b {2,..., p 2} véletlen szám, B = g b (mod p), a b értékét titokban tartja, B-t pedig elküldi A-nak. 4. az A eszköz a közös K kulcsot a kövekezőképpen határozza meg: K = B a (mod p). 5. a B eszköz a közös K kulcsot a kövekezőképpen határozza meg: Helyesség: K = A b (mod p). K = A b = B a = g ab (mod p).

Diffie-Hellman kulcscsere, példa Legyen p = 47, g = 13, az A eszköz: választja a = 12-t A = g a (mod p) = 9 (mod 47), elküldi Bobnak az A = 9 értéket. a B eszköz: választja b = 34-t B = g b (mod p) = 21 (mod 47), elküldi Alicenak a B = 21 értéket. A: K = B a (mod p) = 21 12 = 16 (mod 47), B: K = A b (mod p) = 9 34 = 16 (mod 47). a közös kulcs: K = 16.