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

Hasonló dokumentumok
Diszkrét matematika I.

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

Diszkrét matematika I.

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

Waldhauser Tamás december 1.

2018, Diszkre t matematika. 10. elo ada s

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

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

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

Sapientia Egyetem, Matematika-Informatika Tanszék.

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

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

Sapientia Egyetem, Matematika-Informatika Tanszék.

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

Diszkrét matematika I.

2016, Diszkrét matematika

illetve a n 3 illetve a 2n 5

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

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

Számelméleti alapfogalmak

Data Security: Public key

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

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.

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

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

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:

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

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

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

Bevezetés az algebrába 1

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

2017, Diszkrét matematika

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

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

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

Algoritmuselmélet gyakorlat (MMN111G)

SzA XIII. gyakorlat, december. 3/5.

Kongruenciák. Waldhauser Tamás

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:

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

2018, Diszkre t matematika. 8. elo ada s

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

Diszkrét matematika 2.

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

Információs társadalom alapismeretek

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.

4. Előadás 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.

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

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

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

Mikor van egy változó egy kvantor hatáskörében? Milyen tulajdonságokkal rendelkezik a,,részhalmaz fogalom?

Diszkrét matematika 2.C szakirány

KLASSZIKUS ALGEBRA ÉS SZÁMELMÉLET FELADATOK

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

SZÁMELMÉLETI FELADATOK

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

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

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

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

Matematikai alapismeretek. Huszti Andrea

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

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

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

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

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

Emlékeztet! matematikából

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

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

FFT. Második nekifutás. Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék október 2.

Algoritmuselmélet. Hashelés. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

Egyesíthető prioritási sor

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

Diszkrét matematika 2.C szakirány

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

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

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

Diszkrét matematika 2.C szakirány

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

Diszkrét matematika 2.

Diszkrét matematika 2.C szakirány

Diszkrét matematika I.

Informatikai biztonság alapjai

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

Algoritmuselmélet. Hashelés. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

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

Diszkrét matematika I.

Kriptográfiai alapfogalmak

Diszkrét matematika 2.C szakirány

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

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)

Diszkrét matematika I.

Waldhauser Tamás szeptember 8.

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

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

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

Diszkrét matematika 1. középszint

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

4. Algebrai Módszerek Klasszikus Eredmények

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

Átírás:

Diszkrét matematika 1. középszint 2016. ősz 1. Diszkrét matematika 1. középszint 11. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Mérai László diái alapján Komputeralgebra Tanszék 2016. ősz

Kongruenciák Diszkrét matematika 1. középszint 2016. ősz 2. Euler-féle ϕ függvény Definíció Egy m > 0 egész szám esetén legyen ϕ(m) az m-nél kisebb, hozzá relatív prím természetes számok száma: ϕ(m) = {j : 0 j < m, (m, j) = 1}. ϕ(5) = 4: 5-höz relatív prím pozitív egészek 1, 2, 3, 4. ϕ(6) = 2: 6-hoz relatív prím pozitív egészek 1, 5. ϕ(12) = 4: 12-höz relatív prím pozitív egészek 1, 5, 7, 11. ϕ(15) = 8: 15-höz relatív prím pozitív egészek 1, 2, 4, 7, 8, 11, 13, 14. Megjegyzés: ϕ(m) a redukált maradékosztályok száma modulo m.

Kongruenciák Diszkrét matematika 1. középszint 2016. ősz 3. Euler-féle ϕ függvény ϕ(m) = {j : 0 j < m, (m, j) = 1} Tétel (NB) Legyen m kanonikus alakja m = p α1 1 pα2 2 pα l. Ekkor ϕ(m) = m l ) (1 1pi = i=1 l l (p α i i=1 i p α i 1 i ). ϕ(5) = 5 ( 1 5) 1 = 5 1 5 0 = 4; ϕ(6) = 6 ( ( 1 2) 1 1 1 3) = (2 1 2 0 )(3 1 3 0 ) = 2; ϕ(12) = 12 ( ( 1 2) 1 1 1 3) = (2 2 2 1 )(3 1 3 0 ) = 4; ϕ(15) = 15 ( ( 1 3) 1 1 1 5) = (3 1 3 0 )(5 1 5 0 ) = 8.

Kongruenciák Diszkrét matematika 1. középszint 2016. ősz 4. Euler-Fermat tétel Tétel Legyen m > 1 egész szám, a olyan egész, melyre (a, m) = 1. Ekkor a ϕ(m) 1 (modm). Következmény (Fermat tétel) Legyen p prímszám, p a. Ekkor a p 1 1 (modp), illetve tetszőleges a esetén a p a (modp). ϕ(6) = 2 5 2 = 25 1 (mod 6); ϕ(12) = 4 5 4 = 625 1 (mod 12); 7 4 = 2401 1 (mod 12). Figyelem! 2 4 = 16 4 1 (mod 12), mert (2, 12) = 2 1.

Kongruenciák Diszkrét matematika 1. középszint 2016. ősz 5. Euler-Fermat tétel bizonyítása Lemma Legyen m > 1 egész, a 1, a 2,..., a m teljes maradékrendszer modulo m. Ekkor minden a, b egészre, melyre (a, m) = 1, a a 1 + b, a a 2 + b,..., a a m + b szintén teljes maradékrendszer. Továbbá, ha a 1, a 2,..., a ϕ(m) redukált maradékrendszer modulo m, akkor a a 1, a a 2,..., a a ϕ(m) szintén redukált maradékrendszer. Bizonyítás Tudjuk, hogy aa i + b aa j + b (modm) aa i aa j (modm). Mivel (a, m) = 1, egyszerűsíthetünk a-val: a i a j (modm). Tehát a a 1 + b, a a 2 + b,..., a a m + b páronként inkongruensek. Mivel számuk m, így teljes maradékrendszert alkotnak. (a i, m) = 1 (a, m) = 1 (a a i, m) = 1. Továbbá a a 1, a a 2,..., a a ϕ(m) páronként inkongruensek, számuk ϕ(m) redukált maradékrendszert alkotnak.

Kongruenciák Diszkrét matematika 1. középszint 2016. ősz 6. Euler-Fermat tétel bizonyítása Tétel (Euler-Fermat) (a, m) = 1 a ϕ(m) 1 (modm). Bizonyítás Legyen a 1, a 2,..., a ϕ(m) egy redukált maradékrendszer modulo m. Mivel (a, m) = 1 a a 1, a a 2,..., a a ϕ(m) szintén redukált maradékrendszer. Innen ϕ(m) a ϕ(m) a j = Mivel j=1 ϕ(m) j=1 ϕ(m) j=1 a ϕ(m) 1 (modm). a a j ϕ(m) j=1 a j (modm). a j relatív prím m-hez, így egyszerűsíthetünk vele:

Kongruenciák Diszkrét matematika 1. középszint 2016. ősz 7. Euler-Fermat tétel Tétel (Euler-Fermat) (a, m) = 1 a ϕ(m) 1 (modm) Mi lesz a 3 111 utolsó számjegye tízes számrendszerben? Mi lesz 3 111 mod 10? ϕ(10) = 4 3 111 = 3 4 27+3 = ( 3 4) 27 3 3 1 27 3 3 = 3 3 = 27 7 (mod 10) Oldjuk meg a 2x 5 (mod 7) kongruenciát! ϕ(7) = 6. Szorozzuk be mindkét oldalt 2 5 -nel. Ekkor 5 2 5 2 6 x x (mod 7). És itt 5 25 = 5 32 5 4 = 20 6 (mod 7). Oldjuk meg a 23x 4 (mod 211) kongruenciát! ϕ(211) = 210. Szorozzuk be mindkét oldalt 23 209 -nel. Ekkor 4 23 209 23 210 x x (mod211). És itt 4 23209... (mod 211).

Kongruenciák Diszkrét matematika 1. középszint 2016. ősz 8. Gyors hatványozás Legyenek m, a, n pozitív egészek, m > 1. Szeretnénk kiszámolni a n mod m maradékot hatékonyan. Ábrázoljuk n-et 2-es számrendszerben: k n = ε i 2 i = (ε k ε k 1... ε 1 ε 0 ) (2), ahol ε 0, ε 1,..., ε k {0, 1}. i=0 Legyen n j (0 j k) az első j + 1 jegy által meghatározott szám: n j = n/2 k j = (ε k ε k 1... ε k j ) (2) Ekkor meghatározzuk minden j-re az x j a n j (modm) maradékot: n 0 = ε k = 1, x 0 = a. n j = 2 n j 1 + ε k j { x j = a ε k j x xj 1 2 2 mod m = j 1 mod m, ha ε k j = 0 axj 1 2 mod m, ha ε k j = 1 x k = a n mod m. Az algoritmus helyessége az alábbi formulából következik (Biz.: HF): a n = a k k i=0 ε i 2 i = (a ) ε i 2i i=0

Kongruenciák Diszkrét matematika 1. középszint 2016. ősz 9. Gyors hatványozás Mi lesz 3 111 mod 10? (Euler-Fermat 7) 111 (10) = 1101111 (2) itt k = 6, a = 3, m = 10. j n j x j =a ε k j x 2 j 1 x j mod 10 0 1 3 1 11 x 1 =3 3 2 7 2 110 x 2 =7 2 9 3 1101 x 3 =3 9 2 3 4 11011 x 4 =3 3 2 7 5 110111 x 5 =3 7 2 7 6 1101111 x 6 =3 7 2 7

Kongruenciák Diszkrét matematika 1. középszint 2016. ősz 10. Gyors hatványozás Oldjuk meg a 23x 4 (mod 211) kongruenciát! Euler-Fermat x 4 23 209... (mod 211). Mi lesz 23 209 mod 211? 209 (10) = 11010001 (2) itt k = 7, a = 23. j n j x j =a ε k j x 2 j 1 x j mod 211 0 1 23 1 11 x 1 =23 23 2 140 2 110 x 2 =140 2 188 3 1101 x 3 =23 188 2 140 4 11010 x 4 =140 2 188 5 110100 x 5 =188 2 107 6 1101000 x 6 =107 2 55 7 11010001 x 6 =23 55 2 156 x 4 23 209 4 156 202 (mod 211).

Kongruenciák Diszkrét matematika 1. középszint 2016. ősz 11. Generátor Tétel (NB) Legyen p prímszám. Ekkor Z p-ban van generátor (primitív gyök): van olyan 1 < g < p egész, mely hatványaiként előáll minden redukált maradékosztály: {g 0 = 1, g, g 2,..., g p 2 } = Z p, azaz {1 = g 0, g mod p, g 2 mod p,..., g p 2 mod p} = {1, 2,..., p 1}. 3 generátor modulo 7: 3 0 = 1 = 3 0 1 3 0 1 = 1 1 (mod 7) 3 1 = 3 = 3 0 3 1 3 = 3 3 (mod 7) 3 2 = 9 = 3 1 3 3 3 = 9 2 (mod 7) 3 3 = 27 = 3 2 3 2 3 = 6 6 (mod 7) 3 4 = 81 = 3 3 3 6 3 = 18 4 (mod 7) 3 5 = 243 = 3 4 3 4 3 = 12 5 (mod 7)

Kongruenciák Diszkrét matematika 1. középszint 2016. ősz 12. Generátor 2 generátor modulo 11: n 0 1 2 3 4 5 6 7 8 9 2 n mod 11 1 2 4 8 5 10 9 7 3 6 2 nem generátor modulo 7: n 0 1 2 3 4 5 2 n mod 7 1 2 4 1 2 4

Kongruenciák Diszkrét matematika 1. középszint 2016. ősz 13. Diszkrét logaritmus Definíció Legyen p prímszám, g generátor modulo p. Ekkor az a Z (p a) g alapú diszkrét logaritmusa (indexe): log g a = n : a g n (modp), 0 n < p. 3 generátor modulo 7: n 0 1 2 3 4 5 3 n 1 3 2 6 4 5 azaz a 1 3 2 6 4 5 log 3 a 0 1 2 3 4 5 3n 1 3 2 6 4 5 n 0 1 2 3 4 5 a 1 2 3 4 5 6 log 3 a 0 2 1 4 5 3

Kongruenciák Diszkrét matematika 1. középszint 2016. ősz 14. Diszkrét logaritmus 2 generátor modulo 11: n 0 1 2 3 4 5 6 7 8 9 2 n mod 11 1 2 4 8 5 10 9 7 3 6 Logaritmus-táblázat: a 1 2 3 4 5 6 7 8 9 10 log 2 a 0 1 8 2 4 9 7 3 6 5 Tétel (HF) Legyen p prímszám, g generátor modulo p, 1 a, b < p, n Z. Ekkor log g (a b) log g a + log g b (mod p 1) log g (a n ) n log g a (mod p 1)

Alkalmazások Diszkrét matematika 1. középszint 2016. ősz 15. Alkalmazások Számelmélet alkalmazási területei: Kriptográfia üzenetek titkosítása; digitális aláírás; azonosítás,... Kódelmélet...

Alkalmazások Diszkrét matematika 1. középszint 2016. ősz 16. Caesar kód Julius Caesar katonáival a következő módon kommunikált. Feleltessük meg az (angol) ábécé betűit a {0, 1,..., 25} halmaznak: a 0 b 1 c 2. z 25 Titkos kulcs: σ {0, 1,..., 25}. Titkosítás: adott α {0, 1,..., 25} esetén α titkosítása α α + σ mod 26. Üzenet titkosítása betűnként. Kititkosítás: adott β {0, 1,..., 25} esetén β kititkosítása β β σ mod 26. Üzenet kititkosítása betűnként. hello titkosítása az s = 13 kulccsal: hello 7 4 11 11 14 titkosítás 20 17 24 24 1 uryyb uryyb kititkosítása az s = 13 kulccsal: uryyb 20 17 24 24 1 kititkosítás 7 4 11 11 14 hello

Alkalmazások Diszkrét matematika 1. középszint 2016. ősz 17. Caesar kód Ha s = 13 kulcsot választjuk: Rot13. Titkosítás és kititkosítás ugyanazzal a kulccsal: 13 13 (mod 26). A titkosítás nem biztonságos: betűgyakoriság vizsgálattal törhető (al-kindi i.sz. 9 sz.) Ha a különböző pozíciókban különböző kulcsokat választhatunk (véletlenszerűen) bizonyítottan biztonságos Gyakorlatban: One Time Pad OTP Üzenetek: bináris formában: m=100100101 Kulcs: bináris sorozat: s=010110110 Titkosítás: bitenkénti XOR (mod 2 összeadás): m=100100101 XOR s=010110110 c=110010011 Kritikus pont: az s titkos kulcs átadása.

Alkalmazások Diszkrét matematika 1. középszint 2016. ősz 18. RSA Ron Rivest, Adi Shamir és Leonard Adleman 1977-ben a következő eljárást javasolták: Kulcsgenerálás: Legyen p, q két (nagy, 1024 bites) prím, n = p q. Legyen e {1,..., ϕ(n)} olyan, hogy (e, ϕ(n)) = 1. Legyen d az ex 1 (mod ϕ(n)) kongruencia megoldása. Kulcsok: - nyilvános kulcs (n, e), Kulcsok: - titkos kulcs d. Titkosítás: Adott 0 m < n üzenet titkosítása: c = m e mod n. Kititkosítás Adott 0 c < n titkosított üzenet kititkosítása: m = c d mod n. Algoritmus helyessége: c d = (m e ) d = m e d k ϕ(n)+1 E-F = m m (modn)

Alkalmazások Diszkrét matematika 1. középszint 2016. ősz 19. RSA Valóságban az m üzenet egy titkos kulcs további titkosításhoz. Az eljárás biztonsága azon múlik, hogy nem tudjuk hatékonyan faktorizálni az n = p q szorzatot. Feladat Találjuk meg a következő szám osztóit. RSA-100 = 5226050279225333605356183781326374297180681149613806886 57908494580122963258952897654000350692006139 RSA-2048= 25195908475657893494027183240048398571429282126204032027777137836043662020707595556 26401852588078440691829064124951508218929855914917618450280848912007284499268739280 72877767359714183472702618963750149718246911650776133798590957000973304597488084284 01797429100642458691817195118746121515172654632282216869987549182422433637259085141 86546204357679842338718477444792073993423658482382428119816381501067481045166037730 60562016196762561338441436038339044149526344321901146575444541784240209246165157233 50778707749817125772467962926386356373289912154831438167899885040445364023527381951 378636564391212010397122822120720357

Alkalmazások Diszkrét matematika 1. középszint 2016. ősz 20. RSA RSA-2048 faktorizálása: Próbaosztás (Eratoszthenész szitája): n szám esetén n osztást kell végezni: RSA-2048 n 2 2048, n 2 1024 próbaosztás. Ha 1 másodperc alatt 10 9 2 30 osztás 2 1024 /2 30 = 2 994 másodperc kell a faktorizáláshoz. 2 994 másodperc 2 969 év. Ugyanezt 2 db géppel: 2 968 év. Ugyanezt a legjobb (ismert) algoritmussal: 2500000000000000000000000000000 év (= 2, 5 10 30 ) Univerzum életkora: 1, 38 10 10 év.

Alkalmazások Diszkrét matematika 1. középszint 2016. ősz 21. RSA Kulcsgenerálás: Legyen p = 61, q = 53 és n = 61 53 = 3233, ϕ(3233) = 3120. Legyen e = 17. Bővített euklideszi algoritmussal: d = 2753. Nyilvános kulcs: (n = 3233, e = 17); Titkos kulcs: d = 2753. Titkosítás: Legyen m = 65. c = 2790 65 17 (mod 3233) Kititkosítás: Ha c = 2790: 2790 2753 65 (mod 3233) Digitális aláírást is lehet generálni: e és d felcserélésével: (Ekkor külön n, e, d kell a titkosításhoz!) Aláírás Legyen s = m d mod n, ekkor az aláírt üzenet: (m, s). Ellenőrzés m? s e (modn).

Alkalmazások Diszkrét matematika 1. középszint 2016. ősz 22. Diffie-Hellman kulcscsere protokoll Az első nyilvános kulcsú kriptográfiai rendszert Whitfield Diffie és Martin Hellman 1976-ban publikálta. Legyen p (nagy) prím, g pedig generátor modp. Alice választ a R {0, 1,..., p 2} kiszámolja ( g b) a nem megbízható csatorna g a g b közös titkos kulcs: g ab Bob választ b R {0, 1,..., p 2} kiszámolja (g a ) b

Alkalmazások Diszkrét matematika 1. középszint 2016. ősz 23. Diffie-Hellman kulcscsere protokoll Nyilvános paraméterek: p (nagy) prím, g generátor modp. Kulcsok: Alice titkos kulcsa a: 1 a < p 1, nyilvános kulcsa g a mod p, Kulcsok: Bob titkos kulcsa b: 1 a < p 1, nyilvános kulcsa g b mod p. Közös kulcs: g ab mod p. A protokoll biztonsága azon múlik, hogy a diszkrét logaritmus kiszámítás nehéz. Ha p 2 2048 (2048 bites), diszkrét logaritmus számolása 10 30 év. Nyilvános paraméterek: Legyen p = 11, g = 2. Kulcsok: Alice titkos kulcsa a = 4, nyilvános kulcsa 2 4 mod p = 5. Kulcsok: Bob titkos kulcsa b = 8, nyilvános kulcsa 2 8 mod p = 3. Közös kulcs: ( g b) a = 3 4 mod p = 4, (g a ) b = 5 8 mod p = 4.