Számelmélet és rejtjelezési eljárások. (Számelméleti alapok. RSA és alkalmazásai, Die- Hellman-Merkle kulcscsere.) A számelméletben speciálisan az egész számok, általánosan a egységelemes integritási tartomány tulajdnoságait vizsgáljuk, a szorzás m velet segítségével. (egységelemes int. tartománynak a nullosztómentes, kommutatív gy r t nevezzük. A nullosztómentesség azt jelenti, hogy a*b=0 esetén legalább az egyik tényez 0. Ez pl. Z 6 -ban nem teljesül, hiszen ott 2*3=6=0, de sem 2 sem 3 nem egyezik meg a 0 maradékosztályával modulo 6.) 1 1. Deníció (Oszthatóság). Legyen R egy egységelemes integritási tartomány. Ha a, b R, akkor azt mondjuk, hogy b osztója az a-nak, ha található olyan c R, melyre b c = a. Ennek jelölése: b a. 2. Tétel (Az oszthatóság tulajdonságai). : 1. Ha b a és c d, akkor b c a d 2. Nullát minden elem osztja, de 3. a nulla csak a nullának osztója. 4. A szorzás egységeleme minden elemnek osztója. 5. Ha b a, akkor bármely c-re R-b l b*c a*c is teljesül, és 6. ha c nem nulla, akkor ez visszafelé is igaz. 7. Ha b oszt valahány számot, akkor azok minden R-beli együtthatóval képzett lineáris kombinációját is osztja 8. Az oszthatósági reláció reexív, és tranzitív. Az oszthatóságot relációja nyilván nem szimmetrikus (pl 2 6 az egész számok felett, de visszafelé ez már nem teljesül), de kijelölhet ennek segítségével egy már szimmetriát is kielégít reláció, nevezetesen
2 3. Deníció (Asszociáltak). : Azt mondjuk, hogy a és b asszociáltak, ha a b és b a is teljesül Ez nyilván reexív (egységelemes int. tartományban), tranzitív (az oszthatóság tranzitivitása miatt), és szimmetrikus is (a deníció alapján triviális), tehát ekvivaleniareláció. Az ekvivalenciaosztályok, melyeket létesít, az egymással asszociált elemekb l áll, melyek csak ún. egységszorzókban különböznek egymástól. 4. Deníció (Egység). : Egy ɛ R elemet egységnek nevezünk, ha az minden nem nulla elemnek osztója. Ezek pont azok az elemek, melyeknek van R-ben a szorzásra vett inverzük, vagyis melyek a szorzás egységelemének osztói, s mivel az 1 mindennek osztója, ezek asszociáltak is 1-gyel. Innen látszik, hogy az egységszorzó elnevezés jogos, hiszen az asszociáltakat valóban csak egy egységgel való szorzás különbözteti meg egymástól. Az egységek a szorzásra nézve Abel-csoportot alkotnak, ezt a gy r egységcsoportjának nevezzük. Tekintsül például az egész számok gy r jét, itt értelmezve az oszthatóságot, a már régebbi tanulmányink során megismert oszthatósági relációt kapjuk vissza. Itt az egységek az 1 és a -1, csak ezek azok, melyekkel való szorzás megtartja az asszociálságot két elem között. Az asszociáltak ekvivalenciaosztályai a {{a, a} a Z} halmaz elemei lesznek. 5. Deníció (Felbonthatatlan-, és prímelem). : Egy a elemet felbonthatatlannak, vagy irreducibilisnek nevezünk, ha az a=b*c felírásból az következik, hogy b vagy c egység, azaz ha csak triviális módon írható fel szorzatként. Egy a element prímelemnek nevezünk, ha az a=b*c felírásból az következik, hogy a b, vagy a c, azaz a legalább az egyik tényez jét osztja, akármelyik szorzatfelírásában. Könnyen belátható, hogy bármely prímelem felbonthatatlan, ennek ellenkez je viszont már ennél nehezebben, hiszen nem is igaz. Kés bbi tanulmányinkból kiderült,
3 hogy Gauss gy r kben (ahol érvényes az egyértelm prímfaktorizáció) már egybeesik e két fogalom. Ebb l következik, hogy már egész számok között is érvényes. Az oszthatósággal kapcsolatban érdekes példát szolgáltatnak a racionális, illetve valós számok. E két számkörben minden nem nulla elem osztható egymással, a nullát pedig minden elem osztja, hiszen akármilyen a,b racionális/valós számot is veszünk, a b fennáll, hiszen létezik olyan c szám (nevezetesen b, melyr l belátható, a hogy szintén racionális/valós szám), amelyre a*c=b. Az irracionális számok körében ez persze nem igaz, hiszen például a 2 szám nem osztható önmagával, hiszen ez a c szám az 1 lenne, ami viszont nem irracionális. További fontos fogalom a legnagyobb közös osztó, és a legkisebb közös többszörös fogalma. Mivel integritási tartományban általában nem deifniáltunk rendezést, ezért a legnagyobb, és legkisebb szavak itt az oszthatósági relációra való rendezésen értend, pontosan megfogalmazva: 6. Deníció (Legnagyobb közös osztó). Az a 1, a 2, a 3,..., a n elemek legnagyobb közös osztója b pontosan akkor deníció szerint, ha b osztója az összes a i elemnek, és oszthatóságban ez a legnagyobb, azaz, ha bármely más c szám is osztója ezen a i -knek, akkor ez a c osztója b-nek is. 7. Deníció (Legnagyobb közös osztó). Az a 1, a 2, a 3,..., a n elemek legkisebb közös többszöröse b pontosan akkor, ha minden a i osztója b-nek, és ez a b a legkisebb az oszthatósági relációt tekintve a lehetséges elemek közül, vagyis minden más c-re, amelyek minden a i -nek többszörösei, teljesül, hogy b osztja a c-t. Fontos megjegyezni, hogy a legnagyobb közös osztó, és a legkisebb közös többszörös csak egységszorzótól eltekintve egyértelm, például egész számok körében adott számok legnagyobb közös osztójából kett is van, egy pozitív, és egy negatív (amennyiben ez nem a 0). Megyegyezés szerint a pozitívat választjuk ilyenkor ezek közül. Amennyiben a számok között a 0 is szerepel, úgy azt elhagyva a legnagyobb közös osztó nem változik, a legkisebb közös többszörös pedig ekkor a 0 lesz. Két egész szám legnagyobb közös osztójának meghatározására használható az eukldeszi algoritmus, amely egyben megadja ezt a közös osztót mint a két szám
4 egész együtthatós lineáris kombinációja. Az algoritmusban szerint el ször leosztjuk a nagyobb abszolútérték számot a kisebbel, a maradékot feljegyezzük. A további lépésekben ezt ismételgetjük úgy, hogy a maradékot és az el z osztót vesszük, ezek közül mindig a nagyobbat osztjuk a kisebbel. Amikor az jön ki, hogy a maradék 0, akkor megállhatunk, mert az el z lépésben kapott maradék lesz a két szám lnko-ja. Ha els lépésnél rögtön 0 maradék jön ki, úgy az osztó a megoldás. Ha vissza szeretnénk kapni a generáló lineáris kombinációt is, akkor a hányadosokat is fel kell jegyeznünk, ezek alsó egészrészét tároljuk a q n sorozatban. Tekintsünk továbbá két tömböt, x n -t és y n -t, melyekre x 0 = 1, x 1 = 0, y 0 = 0, y 1 = 1. A képzési szabály y n+2 := y n q n+1 y n+1, x-re hasonlóan minden n lépésre. Az utolsó lépésben, amikor a hányados 0 lesz már felesleges kiszámolni az x, y tömbök tartalmát, hiszen az ez el tti álapotuk fogja tükrözni azt a két együthatót melyet kerestünk, az x-ben lesz a nagyobb abszolút-érték számhoz tartozó. Az euklideszi algoritmus alapján akárhány szám lnko-ját elegend úgy kiszámolni, hogy veszünk közülük kett t, arra lefuttatjuk az algoritmust, majd e két szám helyett ezt a közös osztót visszaírva az eredeti sorozatba folytatjuk az eljárást, hiszen ez a közös osztókat nem változatja meg. 8. Tétel (Számelmélet alaptétele). Minden nem nulla egész szám egységszorzótól eltekintve egyértelm en felírható prímszámok szorzataként. Ezt a felírást nevezzük a szám kanonikus alakának. A kanonikus alakból leolvasható a szám összes pozitív osztója, hiszen elég csak a szerepl prímhatványok közül néhányat venni legfeljebb olyan hatványon, ahogy az a felírásban szerepel. Az összes ilyen lehet ség halmaza alkotja a szám osztóinak halmazát. 9. Deníció (Kongruenciák). Legyenek a, b, m egész számok. Azt mondjuk, hogy a kongruens b modulo m (írásban a b (mod m)), ha b-a osztója m-nek. Egy adott m-el tekintve a kongruencia egy ekvivalenciarelációt létesít az egész számok között, az ekvivalenciaosztályokat maradékosztályoknaknevezzük. Amikor
5 a maradékosztály egyik eleme relatív prím az m modulushoz, úgy annak minden más eleme is, és ekkor ezt redukált maradékosztálynak nevezzük. Maradékosztályok bizonyos összességét maradékrendszernek nevezzük. Amennyiben a maradékrendszer minden maradékosztályból tartalmaz ún. reprezentánst, úgy azt teljes maradékrendszernek nevezzük, ha pedig csak a redukált maradékosztályokból tartalmaz elemeket, úgy redukált maradékrendszernek nevezzük. A maradékosztályoknak elég egy-egy reprezentánsát megadni a számolásokhoz. Fontos tulajdonsága a kongruenciarelációnak, hogy kompatibilis az összeadás, és a szorzás m veletével, azaz két különböz maradékosztályból kivett elemmel elvégezve ezen m veleteket mindig ugyanabból a maradékosztályból való elemet kapunk. Ennek segítségével deniálhatjuk a modulusok gy r jét, Z m -mel jelöljük a modulo m maradékosztályok reprezentánsaiból álló halmazt, amely a m veletek kompatibilitása miatt gy r t alkot az összeadásra, és szorzásra. Bebizonyítható, hogy ez testet alkot pontosan abban az esetben, ha m prímszám, azaz ekkor minden nem nulla elemnek van multiplikatív inverze. (Ez az euklideszi algoritmusnak is egy következménye). 10. Deníció (Euler-féle ϕ függvény). Legyen m egy pozitív egész szám. Jelölje ϕ(m) a redukált maradékosztályok számát modulo m. Ez nyilván pont ugyanaz, mint az m-hez relatív prímek száma a pozitív m-nél kisebb számok között. További érdekes állítások, hogy teljes maradékrendszernek bármely lineáris eltoltja is teljes maradékrendszert alkot, míg redukált maradékrendszernek csak skalárszorosa lesz garantáltan redukált ismét. 11. Tétel (Euler-Fermat tétel). Ha m>1 egész, és a relatív prím m-hez, akkor a ϕ(m) 1 (mod m). Ennek következménye a Fermat-tétel, mely szerint ha adott még egy p prímszám, amely nem osztja a-t, akkor teljesül, hogy a p 1 1 (mod p). Lineáris kongruenciák megoldása során az ax b (mod m) alakú kongruenciák megoldásait keressük, ahol m>1 egész, a, b adott egészek. Ez azzal a feladattal ekvivalens, hogy keressük egy olyan x egészt, amelyhez létezik y egész, hogy
6 ax + my = b teljesül. Ennek megoldását a kib bvített euklideszi algoritmus szolgáltatja, amelyet b helyett a és m legnagyobb közös osztójával végzünk a jobb oldalon. E megoldások k*m-mel vett összes eltoltja megoldása az eredeti egyenletnek. Kongruenciarendszereknél több kongruencia adott, itt a kínai maradéktétel alkalmazható. 12. Tétel (Kínai maradéktétel). Ha adottak m1,...,mn > 1 páronként relatív prím modulusok, c1,...,cn egészek, és x c j (mod mj) kongruenciák, akkor ez a rendszer megoldható, és bármely két megoldás kongruens modulo m1*m2*...*mn. Itt az algoritmus lényege, hogy két tetsz leges kongruenciát mindig összevonunk, és ezt egy kongruenciaként kezelve már egy n-1 méret problémával állunk szemben, amire újra ezt a módszert alkalmazzuk. Gyakorlatban célszer mindig a két legkisebb modulusú kongruenciát összevonni. Számelméleti függvénynek nevezzük a természetes számokhoz komplex számokat rendel függvényeket. Egy számelméleti függvényt additívnak nevezünk, ha relatív prím számokra additív mint függvény, totálisan additívnak nevezzük, ha minden számra additív, hasonlóan értelmezzük a multiplikatív, és a totálisan multiplikatív tulajdonságot. Additív estben a szám kanonikus alakjában szerepl prímhatványok összegére bomlik az adott szám függvényértéke, totálisa nadditív esetben a prímhatványok kitev i konstansszorzóként is lejönnek. Multiplikatív esetben szorzatra bomlik, totális esetben a hatványok a függvényen kívülre kerülnek. Az Euler féle ϕ függvény multiplikatív. RSA eljárás lényege, hogy keresünk két nagy prímszámot (p-t és q-t) (150 jegy eket kb), és vesszük ezek szorzatát, n-et. Vegyünk továbbá egy véletlen 1<e<(p- 1)(q-1) exponenst, és euklideszi algoritmussal döntsük el, hogy e és (p-1)(q-1) relatív prímek-e. Ha nem azok, akkor addig keressünk ilyen e exponenst, amíg az nem lesz. Ha végre találunk egy ilyet, akkor tetsz leges 1<m<n üzenet kódolt formája legyen c = m e (mod n). Ennek dekódolása m = c d (mod n) segítségével történik, ahol d két kongruencia megoldásával kapható meg (nevezetesen m ed m (mod p) és m ed m (mod q). Ezen adatok közül n és e nyilvánosságra hozható, p és q nem, azt csak
7 a küld, és a fogadó ismerheti, a fogadó csak ezek segítségével tudja megoldani a két kongruenciát, míg mások, kik az üzenetet véletlenül fogadták, ezt nem tudják megoldani, hiszen számukra p és q meghatározása a jelenlegi eszközökkel reménytelenül sokáig tartana. (A prímtényez s felbontás elvégzésére jelenleg nincs hatékony algoritmus). Die-Hellman-Merkle kulcscsere vázlatos sémája a következ. Két állomás egy kulcsot szeretne egymással közölni, mindenki más számára érthetetlen, dekódolhatatlan módon. El zetesen megállapodnak egy p prímben, és egy 1<g<p számban. Els állomás generál egy a számot, második egy b-t. Rendre kiszámolják maguknak a g a (mod p), és g b (mod p) értékeket, melyeket elküldenek egymásnak. Ezek után a kapott értékeket mindketten felemelik a saját maguk által generált titkos értékre, s így a hatványm velet tulajdonságai miatt ez a két érték megegyezik, vagyis g ab lesz az új közös kulcs.