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

Hasonló dokumentumok
2016, Diszkrét matematika

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

Diszkrét matematika I.

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

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

Data Security: Public key

Kongruenciák. Waldhauser Tamás

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:

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.

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

Számelméleti alapfogalmak

2018, Diszkre t matematika. 8. elo ada s

2018, Diszkre t matematika. 10. elo ada s

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

Waldhauser Tamás december 1.

Algoritmuselmélet gyakorlat (MMN111G)

Sapientia Egyetem, Matematika-Informatika Tanszék.

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

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

Egyesíthető prioritási sor

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 ősz

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

2017, Diszkrét matematika

illetve a n 3 illetve a 2n 5

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

1. Részcsoportok (1) C + R + Q + Z +. (2) C R Q. (3) Q nem részcsoportja C + -nak, mert más a művelet!

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.

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

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

SZÁMELMÉLETI FELADATOK

Diszkrét matematika I.

Algoritmuselmélet 18. előadás

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

Diszkrét matematika I.

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:

SzA XIII. gyakorlat, december. 3/5.

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

Matematikai alapismeretek. Huszti Andrea

Szakács Lili Kata megoldása

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

Bevezetés az algebrába 1

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

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

Következik, hogy B-nek minden prímosztója 4k + 1 alakú, de akkor B maga is 4k + 1 alakú, s ez ellentmondás.

Sapientia Egyetem, Matematika-Informatika Tanszék.

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

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

Más szavakkal formálisan:, ahol olyan egész szám, hogy. Más szavakkal formálisan:, ahol olyan egész szám, hogy.

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

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

Diszkrét matematika I.

2016, Diszkrét matematika

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

2016, Diszkrét matematika

I. ALAPALGORITMUSOK. I. Pszeudokódban beolvas n prim igaz minden i 2,gyök(n) végezd el ha n % i = 0 akkor prim hamis

Diszkrét matematika 2.

Tartalom. Algebrai és transzcendens számok

Prímszámok. A cikkben szereplő eredmények 2008 decemberéből származnak.

Mintafeladat az RSA algoritmus szemléltetésére

Matematika 7. osztály

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

Gy ur uk aprilis 11.

SE EKK EIFTI Matematikai analízis

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.

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

Oszthatósági problémák

Maple. Maple. Dr. Tóth László egyetemi docens Pécsi Tudományegyetem, 2007

Marton Péter. Prímtesztek és prímfaktorizáció

Polinomok (el adásvázlat, április 15.) Maróti Miklós

MM CSOPORTELMÉLET GYAKORLAT ( )

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

1. Mondjon legalább három példát predikátumra. 4. Mikor van egy változó egy kvantor hatáskörében?

Fermat kongruencia-tétele, pszeudoprímszámok

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik.

2. Feladatsor. N k = {(a 1,...,a k ) : a 1,...,a k N}

A félév során előkerülő témakörök

Diszkrét matematika 2.

Emlékeztet! matematikából

4. Algebrai Módszerek Klasszikus Eredmények

minden x D esetén, akkor x 0 -at a függvény maximumhelyének mondjuk, f(x 0 )-at pedig az (abszolút) maximumértékének.

Miller-Rabin prímteszt

Polinomok (előadásvázlat, október 21.) Maróti Miklós

15. LINEÁRIS EGYENLETRENDSZEREK

GAUSS-EGÉSZEK ÉS DIRICHLET TÉTELE

MTN714: BEVEZETÉS AZ ABSZTRAKT ALGEBRÁBA. 1. Csoportelméleti alapfogalmak

Algoritmusok helyességének bizonyítása. A Floyd-módszer

Számítógépes Számelmélet

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

Számelmélet Megoldások

Információs társadalom alapismeretek

MBL013E Számelmélet és Alkalmazásai

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Megoldások. 21 és 5 7 = 15

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik.

2018, Diszkrét matematika

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

1. melléklet: A tanárokkal készített interjúk főbb kérdései

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Abszolútértékes és gyökös kifejezések

KÓDOLÁSTECHNIKA PZH december 18.

Diszkrét matematika 2. estis képzés

Átírás:

RSA algoritmus 1. Vegyünk véletlenszerűen két különböző nagy prímszámot, p-t és q-t. 2. Legyen n = pq. 3. Vegyünk egy olyan kis páratlan e számot, amely relatív prím φ(n) = (p 1)(q 1)-hez. 4. Keressünk egy olyan d számot, amelyre ed = 1 mod φ(n). 5. Az RSA nyilvános kulcs a P = (e,n) pár lesz. 6. Az RSA titkos kulcs az S = (d,n) pár lesz. Ebben a sémában az elküldhető üzenetek halmaza Z n = {0,1,...,n 1}. A kódolás a P = (e,n) nyilvános kulccsal: A dekódolás a titkos kulccsal: P(M) = M e mod n. Def: Z n = {a Z n : lnko(a,n) = 1}. S(C) = C d mod n. A helyesség igazoláshoz szükséges számelméleti háttér Def: Az Euler függvény a Z n halmaz elemszáma, jele φ(n), értéke ahol p prím. Tétel (Euler) Bármely n > 1 számra φ(n) = n (1 1/p), p n minden a Z n esetén. Tétel (Fermat) Minden p prímre a φ(n) = 1 mod n, a p 1 = 1 mod p, ha p nem osztója a-nak. Tétel (Kínai maradéktétel) Legyen n = n 1 n 2...n k, ahol n i -k páronként relatív prímek. Tekintsük az a (a 1,a 2,...,a k ), megfeleltetést, ahol a Z n, és a i Z ni, továbbá a i = a mod n i minden i = 1,2,...,k-ra. A megfeleltetés kölcsönösen egyértelmű megfeleltetés a Z n halmaz és a Z n1 Z n2 Z nk direktszorzat között. A Z n elemein végezhető műveletek végrehajthatók a k-asokkal. Tehát, ha a (a 1,a 2,...,a k ) és b (b 1,b 2,...,b k ), akkor (a + b) mod n ((a 1 + b 1 ) mod n 1,...,(a k + b k ) mod n k ) (a b) mod n ((a 1 b 1 ) mod n 1,...,(a k b k ) mod n k ) 1

(ab) mod n ((a 1 b 1 ) mod n 1,...,(a k b k ) mod n k ) Következmény Ha n 1,n 2,...,n k páronként relatív prímek és n = n 1 n 2...n k, akkor minden a 1,a 2,...,a k, egész számra az x = a i mod n i, i = 1,2,...,k, kongruenciarendszernek modulo n az x ismeretlenre egyetlen megoldása van. Következmény Ha n 1,n 2,...,n k páronként relatív prímek és n = n 1 n 2...n k, akkor az x és a egészekre x = a mod n i minden i = 1,2,...,k-ra akkor és csak akkor teljesül, ha x = a mod n. Példa: Legyen n = 65, akkor n 1 = 5 és n 2 = 13. Ha a = 42 (2,3) és b = 24 (4,11), akkor a+b = 1 (1,1). RSA helyessége Tétel. (Az RSA helyessége.) Az RSA algoritmusban definiált függvények egymás inverzei. Bizonyítás. M Z n esetén P(S(M)) = S(P(M)) = M ed mod n. Mivel e és d egymás multiplikatív inverzei modulo φ(n) = (p 1)(q 1), ezért ed = 1+k(p 1)(q 1), valamely alkalmas k egész számra. Ekkor M 0 mod p esetén M ed = M(M p 1 ) k(q 1) mod p = M(1) k(q 1) mod p a Fermat tétel alapján. Tehát M ed = M mod p ha M 0 mod p. Következésképpen M ed = M mod p teljesül. Hasonlóképpen kapjuk, hogy M ed = M mod q. Így a kínai maradéktétel következménye miatt, mivel n = pq ezért M ed = M mod n. 2

Lineáris kongruencia megoldása Az e elem inverzének megtalálásához meg kell oldanunk egy lineáris kongruenciát. Általánosan a feladat az, hogy oldjuk meg az ax = b mod n egyenletet. Jelölje G(a) az a elem által generált additív részcsoportját Z n -nek. Tehát G(a) = {ax mod n : x > 0}. A megoldandó kongruenciának akkor és csak akkor van megoldása, ha b G(a). Tétel. Legyen d = lnko(a,n). Ekkor G(a) = G(d) = {0,d,2d,...,((n/d) 1)d}, így G(a) = n/d. Bizonyítás Először igazoljuk, hogy d G(a). A Bővített-Euklidesz algoritmus olyan x és y számokat ad, amelyekre ax + ny = d, így ax = d mod n, azaz d G(a). Így d többszörösei is szerepelnek G(a)-ban, tehát G(d) G(a). Belátjuk, hogy G(a) G(d) is teljesül. Ha m G(a), akkor m = ax mod n valamely x-re, ezért m = ax + ny. De d a és d n, így adódik, hogy d m, azaz m G(d). Következmény: Az ax = b mod n kongruencia akkor és csak akkor oldható meg, ha lnko(a,n) b teljesül. Ha van megoldás, akkor pontosan d darab van. Tétel Legyen d = lnko(a,n) = ax + ny. Ha d b, akkor az ax = b mod n kongruenciának az egyik megoldása x 0, amelyre: Bizonyítás: x 0 = x (b/d) mod n. ax 0 = ax (b/d) mod n = d(b/d) mod n = b mod n. Tétel: Legyen d = lnko(a,b). Tegyük fel, hogy az ax = b mod n kongruencia megoldható és x 0 egy megoldása. Ekkor pontosan d különböző megoldása van, az x i = x 0 + i(n/d) i = 0,1,...,d 1 megoldások. Bizonyítás: Mivel n/d > 0 és 0 i(n/d) < n, i = 0,1,...,d 1-re, ezért az x i -k mind különbözők Mivel x 0 megoldás, ezért ax 0 mod n = b. Ekkor az i = 0,1,...,d 1-re ax i mod n = a(x 0 + in/d) mod n = (ax 0 + ain/d) mod n = ax 0 mod n = b. mod n-re. LINEÁRIS-KONGRUENCIA-MEGOLDÓ(A,B,N) (d,x0,y0):=bővített-euklidesz(a,n) if d b then x0:=x0(b/d) mod n for i := 0 to d-1 print(x0+i(n/d) mod n) else print(nincs megoldás) Példa 14x = 30 mod 100. (d,x,y) = 2, 7,1), x 0 = ( 7)(15) mod 100 = 95, így a két megoldás 95 és 45. Prímtesztelés 3

További kérdés miként találhatunk nagy prímeket. Ismert, hogy végtelen sok prím van, így tetszőlegesen nagy prím található. Továbbá a prímek nem helyezkednek el nagyon ritkán, ha π(n) jelöli az n-nél nem nagyobb prímek számát, akkor lim n lnnπ(n)/n = 1. A prímek kereséséhez fontos részfeladat a prímtesztelés, amely során adott számról akarjuk eldönteni prím -e? A legegyszerűbb módszer az osztási próba. Az n számot rendre elosztjuk a 2,3,5, n egészek mindegyikével, ha valahol egész számot kapunk, akkor n összetett. Az algoritmus lassú, mivel az input mérete nem n, hanem logn. A továbbiakban olyan módszereket mutatunk be, amelyek nem feltétlenül adnak helyes választ. Ha azt kapjuk válaszként, hogy az adott szám összetett, akkor valóban összetett számról van szó, de a pozitív válasz nem garantálja, hogy valóban prímről van szó. Álprímek és Carmichael számok A Fermat tétel alapján, minden prímre és minden a = 1,..., p 1-re a p 1 = 1 mod p. Az első prímtesztelő algoritmus kiszámolja az MODULÁRIS-HATVÁNYOZÓ(2,n-1,n) értéket, és ha nem 1-et kapunk, akkor tudjuk, hogy n összetett szám. Az algoritmus, akkor hibázik, ha n olyan összetett szám, amelyre 2 n 1 = 1 mod n. Általában azokat az összetett számokat, amelyekre a n 1 = 1 mod n a alapú álprímnek nevezzük. Egy n számot a alapú álprímnek nevezünk, ha a n 1 = 1 mod n. Természetesen adódik a kérdés, hogy milyen gyakran téved az algoritmus, azaz milyen gyakran fordulnak elő 2 alapú álprímek. 1000-nél kisebb 2 alapú álprím 22 van, az álprímek aránya tart a 0-hoz. Kézenfekvő ötlet, hogy használjunk a teszteléshez a 2 számon kívül más alapokat is. Ez nem oldja meg a problémát, mert vannak olyan számok, amelyek minden a-ra a alapú álprímek. Ezeket a számokat nevezzük Carmichael számoknak. Ezekből még kevesebb van, 10 9 -nél kisebb Carmichael szám 255 van, a legkisebb az 561. Miller Rabin valószínűségi prímteszt A prímteszt két lépésből áll, egyrészt véletlenül választott a értékekre ellenőrzi, hogy a vizsgált szám a alapú álprím-e, továbbá megvizsgálja, hogy van -e nemtriviális négyzetgyöke 1-nek modulo n. A második részbeli elutasítás helyessége az alábbi tételen alpul. Tétel Ha p páratlan prím, akkor az x 2 = 1 mod p kongruenciának, csak 2 megoldása van, az x = 1 és az x = 1. def: Az x szám 1 nem triviális négyzetgyöke modulo n, ha megoldása az x 2 = 1 mod n kongruenciának, és nem egyezik meg a triviális 1,1 négyzetgyökökkel. (Pl a 6 nem triviális négyzetgyöke 1-nek, modulo 35.) Következmény Ha az 1-nek létezik nemtriviális négyzetgyöke modulo n, akkor az n összetett szám. A prímteszt használja a következő TANÚ(a,n) algoritmust. Ehhez legyen n 1 = 2 t u, ahol t 1 és u páratlan. TANÚ(a,n) x(0):=moduláris-hatványozó(a,u,n) for i=1 to t x(i):=(x(i-1))(x(i-1)) mod n if x(i)=1 and x(i-1)!=1 and x(i-1)!=n-1 then return Igaz if x(t)!=1 then return igaz return hamis Lemma. Ha a TANÚ(a,n) eljárás Igaz értéket ad vissza, akkor az n szám összetett. Bizonyítás. Két esetben kaphatunk Igaz értéket, ha x(i 1) nem triviális négyzetgyöke 1-nek modulo n, vagy ha nem teljesül n-re a Fermat tétel. Mindkét esetben egyből adódik, hogy n nem lehet prím. 4

Miller-Rabin(n,s) for j=1 to s a:=veletlengeneralt(1,n-1) If TANÚ(a,n) Then return ÖSSZETETT return PRÍM(Valószínűleg) Tétel Az n páratlan összetett számnak legalább (n 1)/2 darab összetettséget igazoló tanúja van. Következmény Legyen n > 2 páratlan egész, s pedig pozitív egész. A Miller-Rabin(n,s) teszt tévedési valószínűsége legfeljebb 2 s. Bizonyítás A fenti tétel alapján ha n nem prím, akkor a Miller-Rabin(n,s) teszt minden iterációja 1/2 valószínűséggel felfedez egy tanút. Így annak a valószínűsége, hogy s lépésben nem találunk egyetlen tanút sem, kisebb, mint 2 s. Példa: Legyen n = 561 a legkisebb Carmichael szám. Ekkor n 1 = 2 4 35. Legyen a = 7, ekkor elsőként kiszámoljuk az x(0) = 7 35 = 241 mod 561 értéket, majd ezt többször négyzetre emelve a (298,166,67,1) sorozatot, amely utolsó előtti eleme talált egy nemtriviális négyzetgyökét 1-nek modulo 561. Mersenne prímek Def: Mersenne-prímnek nevezzük a kettő-hatványnál eggyel kisebb, azaz a 2 n 1 alakban felírható prímszámokat, ahol n szintén prímszám. 2008-ban fedezték fel a 45-ödik Mersenne-prímet, ez a 2 43112609-1 szám, amely 12 978 189 számjegyű. Ez a jelenleg ismert legnagyobb prímszám. 5