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:

Hasonló dokumentumok
Információs társadalom alapismeretek

Számelméleti alapfogalmak

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

Waldhauser Tamás december 1.

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

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

Diszkrét matematika I.

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

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

Mintafeladat az RSA algoritmus szemléltetésére

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

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

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:

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

Sapientia Egyetem, Matematika-Informatika Tanszék.

2017, Diszkrét matematika

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

2018, Diszkre t matematika. 10. elo ada s

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

KÓDOLÁSTECHNIKA PZH december 18.

Data Security: Public key

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

Diszkrét matematika I.

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

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

Miller-Rabin prímteszt

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?

Elemi matematika szakkör

2016, Diszkrét matematika

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

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

Bevezetés az algebrába 1

Sapientia Egyetem, Matematika-Informatika Tanszék.

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

Matematika 7. osztály

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

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

Szakács Lili Kata megoldása

Kongruenciák. Waldhauser Tamás

HHF0CX. k darab halmaz sorbarendezésének a lehetősége k! Így adódik az alábbi képlet:

2018, Diszkre t matematika. 8. elo ada s

SZÁMELMÉLETI FELADATOK

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

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

4. Számelmélet, számrendszerek

Matematikai alapismeretek. Huszti Andrea

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

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.

SzA XIII. gyakorlat, december. 3/5.

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

Egyesíthető prioritási sor

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.

Klasszikus algebra előadás. Waldhauser Tamás március 24.

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

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

III.7. PRÍM PÉTER. A feladatsor jellemzői

A 2013/2014. tanévi Országos Középiskolai Tanulmányi Verseny MATEMATIKA II. KATEGÓRIA (GIMNÁZIUM)

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.

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

Diszkrét matematika I.

Arany Dániel Matematikai Tanulóverseny 2012/2013-as tanév 1. forduló haladók III. kategória

Algoritmuselmélet gyakorlat (MMN111G)

illetve a n 3 illetve a 2n 5

Diszkrét matematika I.

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

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

Kriptográfiai alapfogalmak

Tartalom. Algebrai és transzcendens számok

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

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

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

Diszkréció diszkrét logaritmussal

Kvantumkriptográfia II.

MBL013E Számelmélet és Alkalmazásai

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

GAUSS-EGÉSZEK ÉS DIRICHLET TÉTELE

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

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

4. Algebrai Módszerek Klasszikus Eredmények

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

RSA. 1. Véletlenszerűen választunk két "nagy" prímszámot: p1, p2

Eötvös Loránd Tudományegyetem

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

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

Oszthatósági alapfogalmak, oszthatósági szabályok

Megyei matematikaverseny évfolyam 2. forduló

Dan Brown Digitális erődje és a nyilvános kulcsú titkosítás

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

Elemi algebrai eszközökkel megoldható versenyfeladatok Ábrahám Gábor, Szeged

GAUSS-EGÉSZEK ÉS DIRICHLET TÉTELE

Diszkrét matematika 2.

Megoldások. Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) 1. Számítsd ki a következő kifejezések pontos értékét!

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

Az Informatika Elméleti Alapjai

2016, Diszkrét matematika

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

VERSENYFELADATOK AZ ÁLTALÁNOS ÉS KÖZÉPISKOLÁBAN SZAKDOLGOZAT. Eötvös Loránd Tudományegyetem Természettudományi Kar

44. ORSZÁGOS TIT KALMÁR LÁSZLÓ MATEMATIKAVERSENY. Megyei forduló április 11.

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

Németh László Matematikaverseny április 16. A osztályosok feladatainak javítókulcsa

Átírás:

Az RSA módszer Az RSA módszer titkossága a prímtényezős felbontás nehézségén, a prímtényezők 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: 2.1. Tétel. Legyenek p és q különböző prímszámok, e pozitív egész, ln.k.o.(e, (p 1)(q 1)) = 1, és d legyen e modulo (p 1)(q 1) inverze, azaz ed 1 (mod (p 1)(q 1)). Ekkor bármely s nemnegatív egészre s ed s (mod pq). Bizonyítás. Mivel ed 1 (mod (p 1)(q 1)) így (1) (p 1)(q 1) (ed 1). Ha ln.k.o.(s, pq) = 1, akkor a kis FERMAT-tétel szerint s p 1 1 (mod p) és s q 1 1 (mod q). Így (1) miatt sed 1 1 (mod p) és s ed 1 1 (mod q), ahonnan pq (s ed 1 1) (s ed s), azaz valóban s ed s (mod pq). Ha ln.k.o.(s, pq) = p, akkor p s és ln.k.o.(s, q) = 1, így s q 1 1 (mod q), ahonnan (1) miatt s ed 1 1 (mod q) következik. Ekkor tehát p s és s ed 1 1 (mod q), ezért pq s(s ed 1 1) = s ed s, azaz valóban s ed s (mod pq). Az előző esethez teljesen hasonló bizonyítás adható ln.k.o.(s, pq) = q esetén, végül az ln.k.o.(s, pq) = pq eset nyilvánvaló. Nézzük meg, hogyan is működik az RSA módszer! Először is választunk két igen nagy prímszámot, p-t és q-t, majd kiszámoljuk ezek n = pq szorzatát. Ezután az üzenetet olyan k-betűs blokkokra bontjuk, hogy az üzenetelemek numerikus megfelelőinek maximuma legfeljebb n 1 legyen. (Azaz, ha például N betűs ábécét használunk k betűs blokkokkal, akkor N k n teljesüljön.) Ez biztosítja a kódolás egyértelműségét. Majd kiszámoljuk ϕ(n)-t, amit a p, q tényezők ismeretében könnyen megtehetünk: ϕ(n) = (p 1)(q 1) = n + 1 p q. Ezután kiválasztunk egy 1 és ϕ(n) közötti egész számot, amely relatív prím ϕ(n) = (p 1)(q 1)-hez, majd meghatározzuk d e 1 (mod ϕ(n))-t. Nyilvánosságra hozzuk az (n, e) kódoló kulcsot, a p, q, d számokat pedig titokban tartjuk. A kódoló transzformáció f(s) s e (mod n), amit bárki el tud végezni a kódkulcs ismeretében. A dekódoló transzformáció f 1 (t) t d (mod n), amelyet azonban csak a titokban tartott d segítségével lehet kiszámolni. A 2.1. Tétel szerint a két transzformáció egymásnak inverze, nevezetesen f után f 1 -et, vagy f 1 után f-et végrehajtva, az adott szövegelem ed-edik hatványát kapjuk. Mivel ed 1 (mod ϕ(n)), ez a hatvány a tétel szerint éppen magával a szövegelemmel, pontosabban annak numerikus megfelelőjével kongruens modulo n.

A fentiek alapján úgy tűnhet, mintha a sima s szövegelemek S halmaza és a t titkos szövegelemek T halmaza megegyezne. Mint fentebb már említettük, a kódolás egyértelműségéhez szükséges, ha a sima szövegelemek egy N betűs ábécé k betűs blokkjai, hogy az N k n egyenlőtlenség fennálljon. Azaz n értéke legalább annyi, mint ahány kódolandó sima szövegelem van. Mi a helyzet a titkos ábécével? Ezt úgy kell megválaszolnunk, hogy minden sima szövegelem kódjának legyen megfelelő betűkódja. Mivel a kódolásnál modulo n számolunk, ezt úgy érhetjük el, ha valamilyen módon kibővítjük a sima ábécét. Például úgy, hogy hosszabb l(> k) betűs blokkokat, vagy nagyobb N (> N) betűszámú ábécét választunk, hogy az N l n illetve az (N ) k n egyenlőtlenség teljesüljön. Összefoglalva tehát fenn kell állnia az N k n N l vagy az N k n (N ) k egyenlőtlenségnek. Példa. Álljon a sima szöveg a 26 betűs ábécé digráfjaiból, a titkos szöveg pedig ugyanezen ábécé trigráfjaiból. A kódoló kulcs legyen (n, e) = (2047, 179). (Példánkban és a feladatokban a könnyebb kiszámolhatóság kedvéért a gyakorlatban használt akár több száz jegyű számoknál jóval kisebbekkel dolgozunk.) A N E üzenet elküldéséhez a feladónak először meg kell határoznia az üzenet numerikus megfelelőjét: NE = 13 26 + 4 = 342. Ezután ki kell számolnia s e 342 179 (mod 2047) értékét, (hogy ezt hogyan lehet megtenni, arra később visszatérünk) ami 1261 = 1 26 2 + 22 26 + 13. A titkos trigráf tehát BWN. A címzett ismeri n = 2047 = 23 89 prímfelbontását, így ő meghatározhatja (például euklideszi algoritmus segítségével) e = 179 inverzét modulo ϕ(n) = 22 88 = 1936, ami 441. Tehát a dekódoló kulcs (n, d) = (2047, 441). Ennek ismeretében kiszámíthatja t d 1261 411 (mod 2047) értékét, és így megtudhatja az üzenetet: 342 = 13 26 + 4 = NE. Térjünk most rá arra, hogyan lehet a kódolás és dekódolás során fellépő nagy moduláris hatványokat kiszámolni. Ha nekilátnánk, és mechanikusan elvégeznénk először a hatványozást, akkor például s e = 342 179 esetében egy 537 jegyű számot kapnánk, melynek még meg kellene határozni a 2047-tel való osztási maradékát. Ez igen sok számolást igényelne. Kevesebb számolással is célt érhetünk, ha alkalmazzuk az úgynevezett ismételt négyzetre emelés módszerét. Kövessük végig ezt 342 179 (mod 2047) példáján! Az első lépésben felírjuk a kitevő kettes számrendszerbeli alakját: 179 10 = 10110011 2, azaz 179 = 2 7 + 2 5 + 2 4 + 2 + 1 = 128 + 32 + 16 + 2 + 1. Ez alapján ( ) 342 179 = 342 128 342 32 342 16 342 2 342. A második lépésben újra és újra négyzetre emelve meghatározzuk 342 kettőhatvány kitevőjű hatványait, természetesen modulo 2047 számolva, és közben a ( ) felbontásban szereplőket mindig összeszorozzuk.

342 2 285 342 342 2 342 285 1261 342 4 285 2 1392 342 8 1392 2 1202 342 16 1202 2 1669 1261 342 16 1261 1669 293 342 32 1669 2 1641 293 342 32 293 1641 1815 342 64 1641 2 1076 342 128 1076 2 1221 1815 342 128 1815 1221 1261 (A kongruenciák modulusa mindenütt 2047.) Végeredményül kapjuk tehát, hogy 342 179 1261 (mod 2047). Vajon csakugyan feltörhetetlen ez a kód? Az üzenet megfejtéséhez d-t kellene ismernie a feltöréssel próbálkozónak. Azonban csak e és n értékét ismeri, és tudja, hogy ed 1 (mod ϕ(n)) és n = pq alakú, de nem ismeri n tényleges felbontását, e nélkül pedig szinte reménytelen kiszámolnia ϕ(n) = (p 1)(q 1) = n + 1 p q értékét. A p és q prímek értékét tehát olyan nagyra kell választani, hogy az illetéktelen megfejtő számára reménytelen legyen n prímtényezős felbontásának meghatározása. Természetesen 2, 3,..., [ n] között biztosan meg lehet találni az n kisebbik prímosztóját, de ez rendkívül sok osztás elvégzését igényelné. A legkorszerűbb prímtényező meghatározási módszerekkel a számolás mennyisége ugyan lényegesen csökkenthető, de ha n több száz jegyből áll és még egyéb feltételek is fennállnak (p és q nincs egymáshoz túl közel, stb.) a legmodernebb szuperszámítógéppel is reménytelen a tényezők meghatározása.

Feladatok 1. Kódold a KÜLDJPÉNZT üzenetet RSA módszerrel, ha a sima szövegelemek a 30 betűs, a titkos szövegelemek a 35 betűs magyar ábécé digráfjai és p = 29, q = 37, e = 187! 2. A PWABSIVQ XRDQÜGFPÜ üzenetet kaptuk. Az üzenetegységek trigráfok, a sima ábécé 30, a titkos ábécé 31 betűs (30 betűs + szóköz = 31). A kódoló kulcs n = 27383, e = 14411. Dekódold az üzenetet, ha 27383 prímtényezői p = 139, q = 197! 3. Tegyük fel, hogy ellenfelünk a 30 betűs magyar ábécét használja, a sima szövegelemek trigráfok, a titkos szövegelemek négyes blokkok (tetragráfok). A nyilvános kódoló kulcs n = 36019, e = 25073. (a) Keresd meg n prímtényezőit és határozd meg a dekódoló kulcsot! (b) Fejtsd meg az AUGLAOQJÁGEÖAXAEABPE üzenetet!

A feladatok megoldásai 1. Mivel n = pq = 29 37 = 1073, így a kódoló transzformáció t s 187 (mod 1073). A sima szövegelemek numerikus megfelelői 384 394 348 195 892. Az e kulcs kettes számrendszerbeli alakjának (187 10 = 10111011 2 ) segítségével, az ismételt négyzetre emelés módszerével a titkos szövegelemek numerikus megfelelőire a következőket kapjuk: 393 708 812 491 622. Mivel 393 = 11 35+8, 708 = 20 35+8, 812 = 23 35+7, 491 = 14 35+1, 622 = 17 35+27, a tikos szöveg ÍGŐGRFLÁOÚ. 2. Mivel n = 27383 = 139 197, így ϕ(n) = 138 196 = 27048. A d dekódoló kulcs meghatározásához tehát e 1 14411 1 (mod 27 048)-at kell kiszámolnunk. Az euklideszi algoritmust alkalmazva kapjuk, hogy d = 1235, így a dekódoló transzformáció s t 1235 (mod 27383). Ezzel PWABSIVQ XRDQÜGFPÜ = 18104 2583 24644 26571 19011 7309 18201 26856 14345 10972 4890 4060 = RÉSZVÉNYEKETELADNI. 3.(a) Az n = 36 019 prímtényezői p = 181 és q = 199. Tehát ϕ(n) = 180 198 = 35640. Ismerve a nyilvános e értéket, euklideszi algoritmus alkalmazásával d = 2 639. (b) Az (a) rész alapján a dekódoló transzformáció s t 2639 (mod 36019). A titkos üzenetegységek numerikus megfelelői (négyes blokkok!) 20953 14981 34367 24305 2345. Az ismételt négyzetre emelés módszerével számolva a sima szövegelemek numerikus megfelelői 3762 14536 19963 12198 19842. Az üzenet tehát DEKODOTELLOPTÁK. (Lehet, hogy feleslegesen számoltunk ennyit?)