Kis Mihály. Prímtesztek és prímfaktorizáció

Hasonló dokumentumok
Számsorozatok. 1. Alapfeladatok december 22. sorozat határértékét, ha. 1. Feladat: Határozzuk meg az a n = 3n2 + 7n 5n létezik.

4. Test feletti egyhatározatlanú polinomok. Klasszikus algebra előadás NE KEVERJÜK A POLINOMOT A POLINOMFÜGGVÉNNYEL!!!

10.M ALGEBRA < <

SZÁMELMÉLET. Vasile Berinde, Filippo Spagnolo

Számelméleti alapfogalmak

Feladatok megoldása. Diszkrét matematika I. Beadandó feladatok. Bujtás Ferenc (CZU7KZ) December 14, feladat: (A B A A \ C = B)

Komplex számok (el adásvázlat, február 12.) Maróti Miklós

1. A KOMPLEX SZÁMTEST A természetes, az egész, a racionális és a valós számok ismeretét feltételezzük:

ALGEBRA. egyenlet megoldásait, ha tudjuk, hogy egész számok, továbbá p + q = 198.

VII. A határozatlan esetek kiküszöbölése

(A TÁMOP /2/A/KMR számú projekt keretében írt egyetemi jegyzetrészlet):

1.1 Példa. Polinomok és egyenletek. Jaroslav Zhouf. Első rész. Lineáris egyenletek. 1 A lineáris egyenlet definíciója

Kalkulus II., második házi feladat

3. Számelmélet. 1-nek pedig pontosan három. Hány pozitív osztója van az n számnak? OKTV 2012/2013; I. kategória, 1. forduló

Komplex számok. d) Re(z 4 ) = 0, Im(z 4 ) = 1 e) Re(z 5 ) = 0, Im(z 5 ) = 2 f) Re(z 6 ) = 1, Im(z 6 ) = 0

Sorozatok október 15. Határozza meg a következ sorozatok határértékeit!

Számelméleti alapfogalmak

MATEMATIKA I. KATEGÓRIA (SZAKKÖZÉPISKOLA)

A figurális számokról (IV.)

Eötvös Loránd Tudományegyetem Informatikai Kar. Analízis 1. Írásbeli tételek. Készítette: Szántó Ádám Tavaszi félév

Nevezetes sorozat-határértékek

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

Általános taggal megadott sorozatok összegzési képletei

2. Hatványsorok. A végtelen soroknál tanultuk, hogy az. végtelen sort adja: 1 + x + x x n +...

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

2016, Diszkrét matematika

Kalkulus I. Első zárthelyi dolgozat szeptember 16. MINTA. és q = k 2. k 2. = k 1l 2 k 2 l 1. l 1 l n 6n + 8

Sorozatok A.: Sorozatok általában

1 k < n(1 + log n) C 1n log n, d n. (1 1 r k + 1 ) = 1. = 0 és lim. lim n. f(n) < C 3

I. rész. Valós számok

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

2. fejezet. Számsorozatok, számsorok

3. SOROZATOK. ( n N) a n+1 < a n. Egy sorozatot (szigorúan) monotonnak mondunk, ha (szigorúan) monoton növekvő vagy csökkenő.

1. Írd fel hatványalakban a következõ szorzatokat!

Matematikai játékok. Svetoslav Bilchev, Emiliya Velikova

Prímszámok a Fibonacci sorozatban

Analízis feladatgy jtemény II.

SzA XIII. gyakorlat, december. 3/5.

NUMERIKUS SOROK II. Ebben a részben kizárólag a konvergencia vizsgálatával foglalkozunk.

EGYENLETEK ÉS EGYENLETRENDSZEREK MEGOLDÁSA A Z n HALMAZON. egyenletrendszer megoldása a

I. FEJEZET BICIKLIHIÁNYBAN

SZÁMELMÉLET. Szigeti Jenő

Algebra gyakorlat, 3. feladatsor, megoldásvázlatok

Matematika I. 9. előadás

2.5. A lineáris kongruencia egyenlet.

( a b)( c d) 2 ab2 cd 2 abcd 2 Egyenlőség akkor és csak akkor áll fenn

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

Matematika B4 I. gyakorlat

min{k R K fels korlátja H-nak} a A : a ξ : ξ fels korlát A legkisebb fels korlát is:

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

Diszkrét matematika I.

Elsőbbségi (prioritásos) sor

illetve a n 3 illetve a 2n 5

A G miatt (3tagra) Az egyenlőtlenségek két végét továbbvizsgálva, ha mindkét oldalt hatványozzuk:

V. Deriválható függvények

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

EGYENLETEK ÉS EGYENLETRENDSZEREK MEGOLDÁSA A Z n HALMAZON. egyenletrendszer megoldása a Z

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.

18. Differenciálszámítás

1. Gyökvonás komplex számból

Diszkrét matematika II., 3. előadás. Komplex számok

Gyakorló feladatok II.

Eötvös Loránd Tudományegyetem Informatikai Kar. Analízis 1. Írásbeli beugró kérdések. Készítette: Szántó Ádám Tavaszi félév

Bevezetés az algebrába komplex számok

Rudas Tamás: A hibahatár a becsült mennyiség függvényében a mért pártpreferenciák téves értelmezésének egyik forrása

Waldhauser Tamás december 1.

A függvénysorozatok olyanok, mint a valós számsorozatok, csak éppen a tagjai nem valós számok,

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

Diszkrét matematika I.

VÉLETLENÍTETT ALGORITMUSOK. 1.ea.

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

Innen. 2. Az. s n = 1 + q + q q n 1 = 1 qn. és q n 0 akkor és csak akkor, ha q < 1. a a n végtelen sor konvergenciáján nem változtat az, ha

INJEKTIVITÁS ÉS EGYÉB TULAJDONSÁGOK MEGOLDOTT FELADATOK

BIOMATEMATIKA ELŐADÁS

Az átlagra vonatkozó megbízhatósági intervallum (konfidencia intervallum)

Data Security: Public key

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

1. A radioaktivitás statisztikus jellege

1. Komplex szám rendje

Algoritmuselmélet gyakorlat (MMN111G)

Lineáris kódok. u esetén u oszlopvektor, u T ( n, k ) május 31. Hibajavító kódok 2. 1

Taylor-sorok alkalmazása numerikus sorok vizsgálatára

: s s t 2 s t. m m m. e f e f. a a ab a b c. a c b ac. 5. Végezzük el a kijelölt m veleteket a változók lehetséges értékei mellett!

1. Gyökvonás komplex számból

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

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

8.1. A rezgések szétcsatolása harmonikus közelítésben. Normálrezgések. = =q n és legyen itt a potenciál nulla. q i j. szimmetrikus. q k.

Ingatlanfinanszírozás és befektetés

6. Elsőbbségi (prioritásos) sor

(d) x 6 3x 2 2 = 0, (e) x + x 2 = 1 x, (f) 2x x 1 = 8, 2(x 1) a 1

24. szakkör (Csoportelméleti alapfogalmak 3.)

Oszthatósági problémák

f (M (ξ)) M (f (ξ)) Bizonyítás: Megjegyezzük, hogy konvex függvényekre mindig létezik a ± ben

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.

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

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?

2. gyakorlat - Hatványsorok és Taylor-sorok

Hajós György Versenyre javasolt feladatok SZIE.YMÉTK 2011

5. Kombinatorika. 8. Legfeljebb hány pozitív egész számot adhatunk meg úgy, hogy semelyik kettő összege és különbsége se legyen osztható 2015-tel?

1. Adatok közelítése. Bevezetés. 1-1 A közelítő függvény

Átírás:

Eötvös Lorád Tudomáyegyetem Természettudomáyi Kar Kis Mihály Prímtesztek és prímfaktorizáció BSc Szakdolgozat Témavezet : Dr. Freud Róbert Algebra és Számelmélet Taszék Budapest, 2013

Tartalomjegyzék Bevezetés 3 1. Prímtesztek 4 1.1. Fermat-féle teszt............................. 4 1.2. Solovay-Strasse teszt.......................... 9 1.3. Miller-Rabi teszt............................. 14 2. Prímfaktorizáció 19 2.1. Próbaosztásos módszer.......................... 19 2.2. Mote Carlo módszer........................... 21 2.3. Fermat módszere............................. 23 2.4. Szitamódszer............................... 27 Utószó 29 Irodalomjegyzék 30 2

Bevezetés Mit l lesz egy szám prím és ez hogya elle rizhet, vagy egy összetett számról egyetle valódi osztójáak ismerete élkül hogya döthetjük el, hogy valóba összetett? Az úgyevezett prímtesztek erre a problémára yújtaak (mára már 100%-os biztoságú) választ. A prímtesztekhez szorosa kapcsolódó témakör a prímfelbotás. A gyakorlat számára már több gyors prímfaktorizációs módszert dolgoztak ki agy számok felbotására, de eek a problémáak a poliomiális idej eldöthet sége még midig yitott kérdés a matematikába. Eek a témakörek az ereje vagyis, hogy egy agy szám felbotása regeteg id t vesz igéybe a tudomáy jelelegi állása szerit potosa ebbe rejlik, ezért remekül alkalmazható a kriptográába mit yílt kulcsú titkosírási módszer. Külöböz feladatok megoldásával és saját példák gyártásával hoztam közelebb eze témaköröket a kevésbé jártas olvasók számára is. Készítettem prímteszteket és prímfelbotásokat illusztráladó programokat, melyeket C++ yelvbe írtam meg és CD formájába mellékeltem a dolgozathoz. Ezúto szeretém megköszöi témavezet mek, Freud Róbertek a dolgozat tartalmi és formai részéhez f zött értékes megjegyzéseit, családomak és barátaimak a támogatást és a L A TEX-be yújtott segítséget. 3

1. fejezet Prímtesztek Hogya döthetjük el egy agy számról, hogy prím vagy összetett? A kérdés ige érdekes, a válasz pedig az ú. prímtesztekbe rejlik, vagyis az olya számelméleti módszerekbe, melyek a valódi osztók ismerete élkül képesek ezt eldötei. A következ fejezetbe megismerkedük a prímtesztek családjáak alapvet bb tagjaival, melyek (számítógépe) viszoylag gyorsa megadják a választ arra a kérdésre, hogy egy szám prím-e vagy sem. 1.1. Fermat-féle teszt A kis Fermat-tétel közvetle következméyekét kapjuk ezt az eljárást, amely majdem 100%-os potossággal eldöti egy szám mibelétét. Aggodalomra csak az ú. álprímek vagy pszeudoprímek adak okot, de szerecsére ezek a számok ritká fordulak el. 1.1.1. Tétel. (Euler-Fermat-tétel) Legyeek a, egészek és (a, ) = 1, ekkor igaz az alábbi kogruecia: a ϕ() 1 (mod ) (1.1) Tulajdoképpe a tétel speciális esetére, azaz a kis Fermat-tételre lesz szükségük. 1.1.2. Tétel. (Kis Fermat-tétel) Legye p prím és p a, ekkor a p 1 1 (mod p) (1.2) 4

Ekkor azt csiálhatjuk, hogy veszük elég sok (kb. 1000-5000) -hez relatív prím számot (-él kisebbeket) és midegyikre elle rizzük a feltételt. Bármelyikél is sérül a kogruecia, akkor biztosa összetett a számuk. Viszot, ha az összes próbá átmegy, akkor agyjából 2 1000 (1000 külöböz alapra) az esélye aak, hogy tévedtük, vagyis, hogy az összes a i alapra a 1 i 1 (mod ), és az mégis összetett. Ugyais a már említett speciális összetett számok, azaz álprímek átmehetek a teszte. Ha véletleül ilye számmal álluk szembe, és a módszer prímek godolja, akkor 100%-osa tévedtük. 1.1.3. Deíció. Legye > 1 összetett és (a, ) = 1. Ha a 1 1 (mod ), akkor -et a alapú/bázisú álprímek vagy pszeudoprímek evezzük. 1.1.4. Példa. 2-es alapú álprím a 341, de em 3-as alapú. Ugyais 341 = 11 31, továbbá 2 10 1 (mod 11) és 2 5 1 (mod 31), tehát 2 340 1 (mod 341). Viszot em 3-as alapú, mert 3 340 = (3 30 ) 10 3 30 3 10 3 10 6 1 (mod 31), így 3 340 1 (mod 341). 1.1.5. Példa. 3-as alapú álprím a 91, de em 2-es alapú. Ugyais 91 = 7 13, továbbá 3 6 1 (mod 7) és 3 3 1 (mod 13), ezekb l következik, hogy 3 90 1 (mod 91). De em 2-es alapú álprím, mert 2 90 2 6 1 (mod 13), ebb l következik, hogy 2 90 1 (mod 91). 1.1.6. Állítás. Legye pozitív összetett egész. Ekkor a következ k igazak: (i) Az szám a alapú álprím σ (a) 1. (ii) Ha az a 1 és az a 2 alapokra álprím = álprím az a 1 a 2 és a 1 a 1 2 alapokra is. (iii) Ha a 1 1 (mod ) egy (a, ) = 1 alapra, akkor az a i U(Z ) alapok legalább a felére bukja a tesztet. 1.1.7. Megjegyzés. Az a 1 számo az a szám iverzét értjük az szerit vett redukált maradékredszerbe, amit U(Z )-el jelölük. Vagyis a 1 az a szám, melyre a 1 a aa 1 1 (mod ), és U(Z ) = {a Z : (a, ) = 1}. Bizoyítás. (i) rész iráy: 5

Mivel egy a alapú álprím, ezért a 1 1 (mod ) teljesül. Ebb l σ (a) 1 oszthatóság következik. iráy: Tudjuk, hogy σ (a) 1 k > 0 σ (a)k = 1. Ezért az a σ(a) 1 (mod ) kogrueciát k-adikra emelve kapjuk, hogy a kσ(a) 1 (mod ), ami pot a 1 1 (mod ). (ii) rész a 1 1 1 (mod ), ezt jobbról beszorozva a2 1 -el kapjuk, hogy a1 1 a 1 2 = (a 1 a 2 ) 1 1 (mod ). Ezt jobbról beszorozva a ( 1) 2 -el 1 a1 1 a ( 1) 2 (mod )-hez jutuk. Midet összevetve teljesülek az (a 1 a 1 2 ) 1 1 (mod ), (a 1 a 2 ) 1 1 (mod ) kogrueciák. (iii) rész Legye a 1, amire (1.2) teljesül. Ekkor (aa 1 ) 1 = a 1 a 1 1 a 1 1 (mod ). Ha va k db párokét em kogrues alap, amire (1.2) igaz, akkor ezt midegyikre elmodhatjuk. Az aa i -k párokét ikogruesek, ugyais, ha a i a j (mod ), akkor (a i, ) = 1 miatt aa i aa j (mod ) (i j). Tehát akármeyi a i -t adak is meg, legalább eyi aa i létezik, vagyis egy redukált maradékredszer elemeiek legalább a fele az összetettség taúja. Ezzel az állítást beláttuk. 1.1.8. Példa. 2-es és 15-ös alapú álprím a 341, tehát 30-as alapú is. 15-ös alapú, mert 15 4 2 (mod 31) az 1.1.4 példa miatt pedig 15 20 2 5 1 (mod 31), és 15 10 1 (mod 11). Az el z állítás (ii) részéb l rögtö következik, hogy 30 340 1 (mod 341). Sajos létezek olya álprímek, melyek mide a alapra teljesítik a teszt feltételeit, vagyis legye ilye, ekkor (a, ) = 1-re a 1 1 (mod ). Nem olya reméytele a helyzet, ugyais az ilye ú. uiverzális álprímek még ikább ritkábba helyezkedek el. Aak az esélye, hogy biztosa cs döt mod a teszt, gyakorlati szempotból elhayagolható. 1.1.9. Deíció. Legye > 1 összetett, ha mide (a, ) = 1 eseté a 1 1 (mod ) igaz, akkor -et uiverzális álprímek vagy Carmichael-számak evezzük. 6

1.1.10. Példa. Carmichael-szám a 2821. Ugyais 2821 = 7 13 31, továbbá legye (a, 2821) = 1 tetsz leges. Ekkor a kis Fermat-tétel miatt a 6 1 (mod 7), a 12 1 (mod 13) és a 30 1 (mod 31). A Kíai maradéktételb l következik, hogy a 2820 1 (mod 2821). Eme példá jól látszik az uiverzális álprímek egyik karakterizációja, azaz igaz a következ állítás. 1.1.11. Állítás. Ha uiverzális álprím, akkor égyzetmetes és p = p 1 1. Eek felhaszálásával köye igazolható például, hogy a Carmichael-számokak több, mit kett prímosztójuk va. 1.1.12. Következméy. Egy uiverzális álprímek legalább három prímosztója va. Bizoyítás. Tegyük fel idirekt, hogy = p q (p q). Tudjuk, hogy p 1 1 = pq 1 = pq p + p 1 = p(q 1) + p 1. Tehát azt kaptuk, hogy p 1 p(q 1), viszot (p, p 1) = 1 miatt p 1 q 1 is igaz. Szerepcserével a q 1 p 1 oszthatóság is feáll, amib l következik, hogy p = q, ami elletmodás. A Fermat-féle prímteszt sebességéek lelke az a 1 (mod ) érték kiszámításá múlik. Ismételt égyzetre emelésekkel ez gyorsa számítható. A módszer a következ : Adott 1 értékét átváltjuk kettes számredszerbe Sorba (mod ) számolva kiszámítjuk az a, a 2, a 4,..., a 2 log 2 ( 1) számokat Majd az 1 kettes számredszerbe felírt alakjába ahol egyes szerepel, ott az aak megfelel kett hatváyokat összeszorozzuk ügyelve arra, hogy mide esetbe (mod ) redukáljuk Nézzük erre is egy példát: 1.1.13. Példa. Számoljuk ki a 3 102 (mod 103) értéket! 3 3 (mod 103) 3 2 9 (mod 103) 7

3 4 81 (mod 103) 3 8 72 (mod 103) 3 16 34 (mod 103) 3 32 23 (mod 103) 3 64 14 (mod 103) 102 = 2 1100110 102 = 64 + 32 + 4 + 2 Tehát 3 102 = 3 64 3 32 3 4 3 2 = 14 23 81 9 = 13 81 9 23 9 207 1. A számolást megspórolhattuk vola, hisze 103 prím, ezért 3 102 1 (mod 103) rögtö látszik. Ezek alapjá elkészítettem a saját Fermat prímtesztemet. A programot C++ yelvbe írtam meg és a következ k a lépései: Kér egy pozitív egész számot, majd azt átváltja kettes számredszerbe. Következ lépésbe létrehoz egy 25 hosszú vektort, amit feltölt 2 102 közötti véletleszámokkal, ezt a C++ beépített (rad()) véletleszám geerátorával készíti el. Ezek utá pedig a megadott számot és az alapokat redre teszteli (1.2)-re, csak arra az esetre ügyelve, mikor az alap (véletleül) pot a mi számuk. Mivel csak a prímeket vettem gyelembe, tehát kihaszálva, hogy potosa 2 osztójuk va, a program em elle- rzi mide alapra a relatív prímséget. Ha valamelyikél (1.2) sérül, akkor megáll és kiírja, hogy Biztosa összetett. Ha mide bázisra átmegy, akkor a 99,9999%, hogy prím üzeettel megáll. Az az eset még feállhat, amikor pl. egy uiverzális álprím egyetle valódi osztója és aak többesei sem alapok, ekkor kudarcot vallottuk. A programot két tesztek vetettem alá, az egyikbe megvizsgáltam, hogy 2 50000- ig milye jól ismeri fel a prímeket, a másikba pedig, hogy az els 12 Carmichaelszámot milye potossággal modja összetettek. Nyilvá a kett összefügg, de érdemes külö-külö meggyeli. Midkét esetet 5-ször futtattam. A tesztelések sorá az eljárás mide esetbe hibátlaul m ködött, vagyis 50000-ig megtalálta az összes prímet a program. Gyorsabb számítógépek képesek 10 10 -es vagy afölötti agyságredig is felismeri a prímeket. A próbák sorá láthatóvá vált, hogy az uiverzális álprímek ikább elméleti akadályt jeleteek, a gyakorlatba úgy t ik, hogy kis számokra kudarcot vallaak mit prímek. Persze ehhez az is kellett, hogy valamelyik prímtéyez osztója legye egy báziselemek. 8

A tesztek más változatai is létezek, például gyegébb, de sokkal gyorsabb, ha csak egy alapra vizsgálóduk, de yilvá többször mod cs döt ez a változat. Ha ismerjük modjuk az els 100-200 prímet, akkor ezek is szolgálhatak báziskét, de ezek megkereséséhez is szükségük va egy prímkeres algoritmusra. Ezért is választottam a már említett változatot egy pici módosítással persze, mellette szól, hogy, ha mégis kiszámítaám (a, ) értékét, ami agyjából log() lépésbe számítható, helyette kiszámítom a 1 (mod )-t, ami ugyacsak log() lépés. Tehát midkét változat ugyaolya gyors. Igazából (a, ) kiszámításával amikor em relatív prímek találhatuk egy valódi osztóját -ek, de ebbe a fejezetbe ezzel em foglalkoztam. A Fermat-féle tesztél az álprímeket em tudjuk teljes biztosággal kisz ri (a Carmichael-számokat egyáltalá em). A következ prímteszt ezt a problémát küszöböli ki, amit egy er sebb feltétel alkalmazásával ér el. 1.2. Solovay-Strasse teszt A Solovay-Strasse prímteszt Robert Marti Solovay és Volker Strasse matematikusok evéhez f z dik. Ezt az eljárást, amely a Fermat-teszt egy továbbfejlesztett változatáak tekithet, 1974-be publikálták. A módszer (hasolóa az el bbihez) véletleszámok segítségével redukálja aak az esélyét, hogy egy álprímet tévese prímszámak godoljuk. A már említett feltétel egy speciális esete a következ : 1.2.1. Deíció. Legye p > 2 prím és p a tetsz leges. Ekkor az ( ) { a 1, ha x 2 a (mod p) megoldható = p 1, ha x 2 a (mod p) em oldható meg számot a per b Legedre-szimbólumak hívjuk. 1.2.2. Tétel. Legye p > 2 pozitív prímszám. Ekkor bármely a eseté feáll az alábbi kogruecia: a p 1 2 ( ) a p (mod p) (1.3) Bizoyítás. Mivel p prím, ezért tetsz leges a eseté igaz rá (1.2), amib l következik az a p 1 2 ±1 (mod p) kogruecia, ( ami ) ekvivales x 2 a (mod p) megoldhatóságával, ebb l pedig következik, hogy = ±1. Azaz a két oldal midig kogrues. a p 9

Ezzel az állítást beláttuk. A Legedre-szimbólum általáosítása a Jacobi-szimbólum, ( eek ) felhaszálásával a már tetsz leges (a, b) = 1 számok eseté is értelmezhet az szimbólum. b 1.2.3. Deíció. ( Legye ) ( b ) > 1 egész ( ) szám és( b = ) p 1... p k prímek szorzata. Legye a a a a (a, b) = 1, ekkor =..., ahol a megfelel Legedre-szimbólum. ( ) b p 1 p k p i a Az számot a per b Jacobi-szimbólumak evezzük. b 1.2.4. Tétel. Legye 3 páratla szám. Ekkor az ( ) a 1 a 2 (mod ) (1.4) kogrueciára igazak a következ k: (i) Ha prím, akkor tetsz leges a számra teljesül. (ii) Ha összetett, akkor egy szeriti redukált maradékredszer elemeiek legalább a felére em teljesül. Bizoyítás. Ha prím, akkor az 1.2.2 tétel miatt késze vagyuk. Ezzel (i) kész. Ha páratla összetett szám, akkor el ször ( is ) azt kell beláti, hogy mide ilye a -hez létezik olya a szám, melyre a 1 2 (mod ), evezzük ezeket taúak, mivel az összetettséget taúsítják, és cikosak vagy Euler-féle álprímek azokat, melyekre teljesül a feltétel. Két esetet vizsgáluk, amikor égyzetmetes, és amikor em. Tegyük fel tehát, hogy p prím, hogy p 2. Legyeek az prímosztói a p = p 1, p 2,..., p k prímek. És legye d primitív gyök Nézzük a következ szimultá kogrueciaredszert: mod p 2, ilye va, hisze p prím. x d (mod p 2 ) és x 1 (mod p i ) (i = 2,..., k) (1.5) Mivel a modulusok relatív prímek, ezért mod [p 2 p 2... p k ] kogruecia erejéig egyértelm e létezik megoldás, legye ez u. Mivel i > 1-re p i u, ezért (u, ) = 1. Azt szereték megmutati, hogy u taú. Tegyük fel tehát idirekt, hogy Euler-féle álprím, azaz, hogy u 1 2 ( ) u 10 (mod ) (1.6)

teljesül. Ha most (1.6)-ot égyzetre emeljük, akkor kapjuk, hogy u 1 1 (mod ). Mivel p 2 osztója -ek, ezért igaz az alábbi kogruecia is: u 1 1 (mod p 2 ). (1.5) miatt u d (mod p 2 ), és mivel d primitív gyök mod p 2, ezért σ(d) = ϕ(p 2 ) = p(p 1). Azt kaptuk tehát, hogy p(p 1) 1, amib l következik a p 1 oszthatóság is. Vagyis p 1 és p, ami lehetetle, tehát u taú. Most áttérük a égyzetmetes esetre. Itt külö fogjuk vizsgáli azt az esetet, amikor mide (a, ) = 1 alapra feáll az a 1 2 1 (mod ) (1.7) kogruecia, és azt, amikor va olya (b, ) = 1, melyre em. Kezdjük azzal, amikor mide (a, ) = 1 eseté (1.7) igaz. Ekkor legyeek ( ) prímosztói redre a p 1,..., p k prímek és legye g p 1 1 g 2 1 (mod p 1 ), azaz = 1 (ilye g létezik, mert p 1 prím), ekkor tekitsük a következ szimultá kogrueciaredszert: x g (mod p 1 ) és x 1 (mod p i ) (i = 2,..., k). (1.8) Legye eek v egy megoldása. Ekkor (v, ) = 1, tehát (1.7) igaz rá. Behelyettesítve v-t (1.4)-be azt kapjuk, hogy: ( ) ( ) ( ) ( ) ( ) ( ) v 1 v v v g 1 1 2 =...... = 1 1 (mod ) Tehát v taú. p 1 p k p 1 Térjük át arra az esetre, amikor létezik egy (b, ) = 1 alap, hogy b 1 2 1 (mod ). Nyilvá létezik olya prímosztója -ek pl. p 1, hogy b 1 2 1 (mod p 1 ). Tekitsük a következ szimultá kogrueciaredszert: p 2 p k p 1 x b (mod p 1 ) és x 1 (mod p i ) (i = 2,..., k) (1.9) 11

Legye eek egy megoldása w. Ekkor w-re igazak a következ kogrueciák: w 1 2 1 (mod p 1 ) = w 1 2 1 (mod ) Továbbá igaz az alábbi következtetés is: w 1 2 1 1 (mod p i ) = w 1 2 1 (mod ) (i = 2,..., k) Összesítve az eredméyt azt kaptuk, hogy w 1 2 ±1 (mod ), de yilvá ±1. Tehát w taú. Ezzel megmutattuk, hogy mide összetett páratla számhoz létezik taú. Már csak azt kell beláti, hogy egy ( ) w = mod szeriti redukált maradékredszer legalább a fele az. Ez pedig igaz, hisze legye (z, ) = 1 egy taú és (c, ) = 1 pedig egy cikos. Ekkor persze (cz, ) = 1 is igaz. Megmutatjuk, hogy cz is taú. Tegyük fel idirekt, hogy mégis cikos. Ekkor a következ t kapjuk: ( ) ( ) ( ) z 1 c 2 z 1 2 c 1 2 z 1 2 (cz) 1 cz c 2 = ( ) z = z 1 2 ( ) z Ez pedig elletmod aak, hogy z taú. Már csak azt kell, megmutati, hogy két ikogrues cikosból ikogrues taút kapuk. Ez yilvá így va, hisze, ha c 1 c 2 (mod ), akkor (z, ) = 1 miatt c 1 z c 2 z (mod ). Ezzel beláttuk, hogy akármeyi ikogrues cikosuk is va egy mod szeriti redukált maradékredszerbe, legalább ayi taú is létezik, más szóval egy redukált maradékredszer elemeiek legalább a fele taú. 1.2.5. Megjegyzés. A Solovay-Strasse teszt feltételéek égyzetre emeléséb l következik (1.2), ezért jogos az er sebb jelz. Emiatt igaz, hogy ha egy számot a Fermat teszt összetettek ítél, akkor a Solovay-Strasse teszt mégikább aak mod. Tehát a Solovay-Strasse hatékoyabb. A megjegyzésb l kiderült, hogy ebbe az esetbe is létezek álprímek, viszot most s r bb szitá kell, hogy átmejeek, ezért külö deíciót érdemel ez az eset. 1.2.6. Deíció. ( ) Ha az összetett számra és az (a, ) = 1 alapra teljesül az a a 1 2 (mod ) kogruecia, akkor az számot a alapú Euler-féle álprímek evezzük. 12

1.2.7. Példa. 29-es alapú Euler-féle álprím a 15. Ugyais 15 = 3 5, és 29 7 ( 1) 7 1 (mod 15), másfel l ( ) 29 = 15 ( ) 1 = 1. 15 Nyilvá igaz, hogy, ha Euler-féle álprím az a alapra, akkor közöséges a alapú álprím is. Viszot az uiverzális álprímekek em létezik ilyesfajta megfelel je, hisze az 1.2.3 tétel szerit az összetett számok egy id utá leleplez dek. Tehát ez is mutatja, hogy a Solovay-Strasse teszt jóval hatékoyabb. Most a Jacobi-szimbólum kiszámításához szükséges lépésszámot fogjuk tárgyali. 1.2.8. Állítás. A Jacobi-szimbólum kiszámításához eleged c log lépés. Bizoyítás. Adott (a, ) = 1 számok Jacobi-szimbólumát szereték kiszámítai. A legagyobb kett hatváy leválasztásával( és a) kvadratikus ( reciprocitási ) tétel, valamit maradékos osztások alkalmazásával a és/vagy Jacobi-szimbólumokhoz 1 2 p q lehet eljuti, ezek pedig egy maradék kiszámításával megkaphatók. Így (majdem) mide lépésbe felez dik a számláló, tehát c log 2 = c log log 2 lépés eleged. ( ) 85 1.2.9. Példa. Számítsuk ki értékét! 229 ( ) ( ) ( ) ( ) 85 229 59 85 = = = = 229 ( ) ( 85) ( 85) 59 7 13 1 = = = 1. 13 7 7 ( 26 59 ) = ( 2 59 (ahol c > 0 kostas) )( ) ( ) ( ) 13 13 59 = = = 59 59 13 Ezek alapjá a Solovay-Strasse prímteszt számítógépe hasolóa ( 2 log lépésbe) kivitelezhet, mit az el dje. Ugyais a következ k lehetek a lépései: Elkészítjük a véletleszámokból álló listákat, ezek ( ) képezik az alapokat a Midegyik alapra kiszámítjuk a 1 2 (mod ) és értékeket Ha valamelyik alapra a kogruecia em teljesül, akkor biztosa összetett, ha (1.4) midegyikre igaz, akkor a jelöltük agy valószí séggel prím. A most következ prímteszt az eddigiekél is hatékoyabba leplezi le az összetett számokat. 13

1.3. Miller-Rabi teszt A Miller-Rabi prímteszt alapja a kis Fermat-tétel, potosabba az, hogy egy p prím és egy p a pozitív egész által alkotott a p 1, a p 1 2, a p 1 4,... (mod p) sorozat mide esetbe 1-gyel kezd dik, és vagy végig 1-esekb l áll, vagy az els em egyes az éppe 1. A godolat alapja az, hogy egy prím szeriti redukált maradékredszerbe a legfeljebb másodred elemek csak az 1, 1. Gary Miller és Michael Rabi a következ tesztet találták meg. 1.3.1. Tétel. (Miller-Rabi) Adott > 2 páratla egész, és legye 1 = 2 k r, ahol r páratla. Tekitsük a következ sorozatot: a r, a 2r, a 4r,..., a 2k 1 r (1.10) Nevezzük ezt jó sorozatak, ha mod va köztük 1, vagy, ha mod midegyik 1-es. Ekkor függvéyébe (1.10)-re a következ k igazak: (i) Ha prím, akkor tetsz leges a eseté jó sorozatot alkot. (ii) Ha összetett, akkor egy szeriti redukált maradékredszer kevesebb, mit a felére alkot jó sorozatot. Bizoyítás. Ha prím, akkor bármely (a, ) = 1 eseté a 1 1 (mod ) a 1 2 ±1 (mod ), ugyais egy p prím számra az x 2 1 (mod p) kogrueciáak a megoldásai csak az 1 és 1, tehát végig vagy 1-esb l áll a sorozat, vagy va 1 bee. Ezzel az (i) rész késze va. A tétel második feléhez, hasolóa az 1.2.4 tételhez, evezzük taúak azokat az a-kat, melyekre (1.10) em alkot jó sorozatot és cikosak, melyekre ige. Most is azt fogjuk beláti, hogy mide -hez létezik taú. Legye p 2, és q primitív gyök p 2 szerit, és legyeek prímosztói a p = p 1,..., p s prímek. A következ képpe kostruálhatuk taút, legye v az alábbi szimultá kogrueciaredszer egy megoldása: x q (mod p 2 ) és x 2 (mod p i ) (i = 2,..., s). Az x 2 (mod p i ) kogrueciák arra kelleek, hogy biztosítsák (v, ) = 1-et. Tegyük fel idirekt, hogy v cikos, azaz, hogy (1.10) jó sorozat. Ekkor az utolsó tagra igaz, hogy v 1 2 ±1 (mod ), ebb l következik, hogy v 1 1 (mod ), ez elmodható p 2 -re mit modulusra is, vagyis v 1 1 (mod p 2 ). Viszot v q 14

(mod p 2 ), tehát σ(q) = p(p 1) 1, vagyis p 1, és p, ez pedig lehetetle, azaz v taú. Most tegyük fel, hogy összetett, égyzetmetes és = p 1 p 2... p s. Olya (a, ) = 1 számot kell találuk, melyre a sorozat lehet legtöbb tagja em kogrues ±1-gyel (mod ). Olya a létezik, melyre a 2jr 1 (mod ), ahol 0 j k 1, például a = 1, j = 0 ilye. Legye j a legagyobb ilye tulajdoságú (amelyhez va ilye a). Nézzük a következ szimultá kogrueciaredszert: x a (mod p s ) és x 1 (mod p i ) (i = 1,..., s 1) Eek legye egy megoldása w. Ekkor w taú, ugyais w 2jr a 2jr 1 (mod p s ) w 2jr 1 (mod ) w 2jr 1 1 (mod p i ) w 2jr 1 1 (mod ) Tehát w 2jr ±1 (mod ), viszot j volt a maximális olya, melyre w 2jr 1 (mod ), ezért a w 2j+1r 1 (mod ) kogrueciáak igazak kell leie. Azt kaptuk, hogy w r ±1,..., w 2jr ±1, de w 2j+1r 1 (mod ),..., w 1 1 (mod ), és ebbe ics 1, és em végig 1. Azaz w taúsítja összetettségét. Hasolóa az 1.2.4 tétel és az 1.1.6 állítás bizoyításába látottakhoz belátható, hogy tetsz leges sok párokét ikogrues cikost végigszorozva w-vel ikogrues taúkat kapuk, vagyis egy redukált maradékredszer legalább a fele taú. A Miller-Rabi prímteszt egy lehetséges változata: Az számról szereték eldötei, hogy prím-e. Veszük k db külöböz véletleszámot, ezek leszek a b i alapok, és 1-et el állítjuk 2 s r alakba, ahol r páratla. Kiszámítjuk b r 1 (mod ) értéket, ha ez ±1, akkor a sorozatuk jó, tehát áttérük a b 2 bázisra. Most b r 2 (mod ) értéket vizsgáljuk, ha modjuk ez em ±1, akkor égyzetre emeljük és mod számoljuk az újabb (legkisebb abszolútérték ) maradékot, ezt addig tesszük, amíg 1-et em kapuk valahol, ha ez em fordul el, akkor biztosa összetett, ha az összes bázisra jó sorozatot alkot, akkor több, mit 1 2 k valószí séggel prím. A sorozat tagjaiak kiszámítása a Fermat-féle módszerél említett ismételt égyzetre emelésekkel log db m velettel végezhet. A feti bizoyításba is tulajdoképpe ilye w alapot gyártottuk, amelyre w 2j+1 1 (mod ) igaz volt, de a sorozat többi tagjára w 2j ±1 (mod ) (0 j k 1) 15

ikogrueciák teljesültek. Sajos ez a teszt sem yújt 100%-os biztoságot, ugyais ebbe az esetbe is létezek álprímek, viszot uiverzális álprímek itt sem fordulak el. 1.3.2. Deíció. Legye páratla összetett szám, és 1 = 2 k r. Ha egy (a, ) = 1 számra az szám a feti értelembe jó sorozatot alkot, akkor -et a alapú er s álprímek evezzük. A következ példába láthatóvá válik, hogy ha egy szám 1 -dik hatváya kogrues 1-gyel mod, akkor er s 2 álprím. 1.3.3. Példa. A 15 er s álprím a 29-hez, mit alaphoz. A 15(= ( ) 2 7 + 1) em prím, 29 és már láttuk, hogy Euler-féle álprím a 29-hez, azaz 29 7 = 1 (mod 15), 15 tehát a 29 7, 29 14 (mod 15) jó sorozatot alkotak. Most azt mutatjuk meg, hogy a feti példa miért is volt jó. 1.3.4. Állítás. Ha 3 (mod 4), akkor potosa akkor er s álprím az a alapra, ha egybe Euler-féle álprím is. Bizoyítás. Ha er s álprím, akkor a 1 2 ±1 (mod ) teljesül, 3 (mod 4) ( ) ( ) 1 ( 1 ) ±1 a 2 a 2 miatt pedig = ±1, így = = ±1 a 1 2 (mod ). Mivel 1 kett ek csak az els hatváyával osztható, ezért csak az a 1 2 tag fordul el a sorozatba, és, ha Euler-féle álprím, akkor a 1 2 ±1 (mod ) igaz. Általába a két fajta álprímség em ekvivales, vagyis abból, hogy Euler-féle álprím egy (a, ) = 1 alapra em következik, hogy er s álprím is. 1.3.5. Példa. Az 1729 = 7 13 19 Euler-féle álprím az 5 alapra, de em er s, ugyais (5, 1729) = 1-re 5 27 ( 1217 (mod ) 1729), ( )( 5 54 )( 1065 ) (mod ( )( 1729), )( 5 108 ) 1 5 5 5 5 7 13 19 (mod 1729),..., 5 864 1 = = = 1729 7 13 19 5 5 5 ( ) 2 ( ) 2 2 1. Tehát a Solovay-Strasse-teszte átmegy, viszot a Miller-Rabi-tesztél 5 5 em alkot jó sorozatot. Most belátjuk, hogy a Miller-Rabi prímteszt hatékoyabba leplezi le az összetett számokat a Solovay-Strasse tesztél. 16

1.3.6. Állítás. A Miller-Rabi teszt hatékoyabb, mit a Solovay-Strasse teszt, azaz, ha az szám a alapú er s álprím, akkor a alapú Euler-féle álprím is. Bizoyítás. Legye = k p α i i, és 1 = 2 s r, ahol r páratla, és tegyük fel, hogy er s álprím az a alapra, azaz a r, a 2r,..., a 2s 1r = a 1 2 ( ) jó sorozatot alkot. Azt kell a megmutati, hogy ekkor a 1 2. Két eset lehetséges: 1. eset: a r 1 (mod ), most hisze r páratla. 2. eset: ( ) a = 1 kell ekük. De 1 = ( ) 1 = ( ) a r = ( ) r a = ( ) a, Ebbe az esetbe létezik 1-gyel kogrues tag a sorozatba. Két alesetet vizsgáluk. Els két ézzük azt, amikor va olya 0 j < s 1, hogy: a 2j r 1 (mod ) és a 2j+1r 1 (mod ) (1.11) ( ) a Tehát a 1 2 1 (mod ), ezért a cél = 1 megmutatása. Az (1.11) kogrueciák igazak mide p i prímosztóra is, ezért σ pi (a) a 2j r, de σ pi (a) a 2j+1 r, ezért σ pi (a) = 2 j+1 r i, ahol r i r. Másrészt p i prím volta és a red deíciója miatt a 2j r i 1 (mod p i ) lehet csak. A kis Fermat tétel miatt pedig σ pi (a) p i 1, tehát létezik t i, melyre p i 1 = 2 j+1 r i t i Ezt felhaszálva adódik, hogy ( ) a a p i 1 2 = a 2j r i t i ( 1) t i (mod p i ) p i Ebb l következik, hogy ( ) ( ) a a k ( ) αi a = k = = pα i p i i k Tehát α i t i -ról kell beláti, hogy páros. =... + k p α i i = ( αi α i 1 ) k (1 + 2 j+1 r i t i ) α i = 2 (j+1)(αi 1) r α i 1 i t α i 1 i k ( 1) α it i = ( 1) k (1 + α i 2 j+1 r i t i + + 2 (j+1)α i r α i i t α i i ) = 1 + 2 j+1 k α i t i ( ) αi 2 2j+2 ri 2 t 2 i +... 2 k α i r i t i + 2 j+2 K 17

Mivel 1 = 2 s r, ezért azt kapjuk, hogy k 2 j+1 α i r i t i = 2 s r 2 j+2 K k k 2 j+1 -vel való egyszer sítés utá α i r i t i = 2 s j 1 r 2K adódik, azaz α i r i t i = 2l ( ) k a alakú, mivel mide r i páratla, ezért α i t i is páros kell, hogy legye, azaz = 1. A másik aleset vagyis mikor a 1 2 1 (mod ) teljesül is hasolóa belátható. Ekkor j = s 1-re ézve a α i r i t i = 2 s j 1 r 2K egyeletet, kapjuk, k hogy k α i r i t i = 2 0 r 2K = r 2K, mivel r és mide r i is páratla, ezért ( ) a így megkaptuk, hogy = 1. k α i t i is az, Az ebbe a fejezetbe említett tesztek által prímek vélt számokat egy egyszer eljárással leelle rizhetjük, azaz megvizsgálhatjuk, hogy valóba prím-e a számuk. A módszer léyege az, hogy az potosa akkor prím, ha létezik olya (a, ) = 1, amelyre σ (a) = 1 (vagyis a primitív gyök). Tehát kiszámítjuk mide p i 1 prímosztóra és az a alapra az a 1 p i (mod ) értéket, és, ha ezek között em fordul el 1-es, akkor prím. Eek a módszerek a hátráya az, hogy agy számokál a prímosztók megtalálása reméytele feladatak ígérkezik. A most következ fejezetbe ezt a problémát fogom körbejári, és külöböz módszereket mutatok be a prímtéyez kre botáshoz. 18

2. fejezet Prímfaktorizáció A prímfaktorizációs módszerek olya számelméleti eljárások, amelyek egy szám prímtéyez s felbotását adják meg. Legtöbb esetbe célszer els két elvégezi egy prímtesztet, hogy a felesleges számolást megspóroljuk. Nagyo agy számok eseté még így is szite lehetetle megállapítai a prímfaktorokat, ha modjuk egy 30000 jegy számo szereték egy ilyet elvégezi, akkor a jelelegi leggyorsabb számítógépek ami másodpercekét több millió m veletet végez is több id be tellee kiszámítaia, mit az srobbaástól eddig a pillaatig eltelt összes másodperc. Eek tükrébe a legtöbb ilye algoritmust a agy számok felbotására alkották meg, els két említem a legegyszer bb prímfaktorizációs módszert, ami jól mutatja, hogy yers er vel egy örökkévalóságig tartaa felbotai egy agy számot. 2.1. Próbaosztásos módszer Eek a módszerek a léyege, hogy veszük egy számsorozatot [ ]+1-ig, legjobb lee a csak prímeket tartalmazó sorozat, de ez em kéyelmes, ikább vegyük az a 1 = 2, a 2 = 3, a 3 = 5, a 4 = 7,..., a i, a i + 2,..., [ ] + 1 sorozatot, és eek a tagjai meté addig osztjuk -et, amíg osztót em találuk, majd a háyadossal folytatjuk a számolást. Készíthetük egy prímtáblázatot is, vagyis csak a prímekb l álló sorozatot is ézhetjük, de ez em midig áll a redelkezésükre. Nézzük meg, hogya is éz ki ez az algoritmus! 2.1.1. Algoritmus. Az algoritmus egy N számak a prímosztóit keresi meg. 1. lépés: Legyeek := N, a 1,..., a k = [ N] + 1 a próbaosztók és p 1,... 19

a prímosztók. 2. lépés: -et a sorozat tagjaival addig osztjuk maradékosa ( = a i q + r), amíg a maradék em ulla vagy véget em ér a sorozat. 3. lépés: Ha a maradék ulla, akkor osztót találtuk, := /q, p j = a i (a i prím, hisze a sorozatuk ezt garatálja). 4. lépés: Ha a maradék em ulla és q > a i, akkor még em értük el egy -él agyobb prímosztóját -ek, tehát újra osztuk (2. lépés). Ha q a i, akkor prím, mert em találtuk osztót. Ha marad a sorozatba összetett szám, akkor is helyes eredméyt kapuk, hisze mide páratla számot tartalmaz, ezért eek az összetettek a prímtéyez it is, melyek el rébb szerepelek, azaz, ha ez a szám osztója N-ek, akkor ez már el bb kiderül. Nézzük az alábbi számpéldát a próbaosztások módszerére: 2.1.2. Példa. Botsuk téyez kre az N = 349625(=: ) számot! Sorba haladva kapjuk, hogy 5 349625, tehát := N = 69925. Ekkor eleged 5 oa folytatuk, ahol abbahagytuk, vagyis a 3 = 5-t l. Rögtö látszik, hogy 5 69925, ezért := 13985, ami szité osztható 5-tel, tehát := 13985 5 = 2797, ekkor p 1 = p 2 = p 3 = 5. Sorba haladva a 3 -tól egyetle osztót sem találuk, de azt kapjuk, hogy a 27 = 53-ra 2797 = 53 52 + 41 (ami em meglep, ugyais [ 2797] = 53), vagyis 52 53, ezért p 4 = 53. Tehát 349625 = 5 3 2797. Ebbe a példába 28 osztást végeztük, ézzük egy másik példát. 2.1.3. Példa. Legye N = 102043(=: ) (prím). Mivel N prím, ezért a sorozatba egyetle osztóra sem lelük, de [ 102043]+1 = 320 miatt a 161 = 321-ig kell elmeük, ezzel 161 osztást végzük el (ami papíro em kevés, már a 28 sem az), amikor is kapjuk, hogy 102043 = 321 317+286, és 317 321 miatt pedig biztosak lehetük bee, hogy N prím. Ezekbe a példákba láthattuk, hogy kézzel elég sok lépést kell végrehajtai már viszoylag kis számoko is. Nyilvá a számítógépek körébe ezek a számítások pillaatok alatt lefutak, de ha egy agyo agy szám égyzetét ézzük, akkor ez óriási id t vesz igéybe. Az eljárás két kimeettel érhet véget, vagy megtalálja az összes prímosztót, vagy a felbotai kívát szám prím. Ezért is igaz, hogy a lépésszám 20

max(p j 1, p j )-vel aráyos, ahol j a legagyobb prímosztó idexét jelöli, tehát kis számokál optimális. A sebességet úgy övelhetjük, hogy a prímek többeseit szisztematikusa kivesszük a sorozatból (pl. 3-mal, 5-tel osztható számokat, és így tovább). A következ eljárás már sokkal agyobb sikerrel botja prímtéyez kre a agy számokat. 2.2. Mote Carlo módszer J. M. Pollard 1975-ös módszere azo a téye alapul, hogy a mod vett maradékok ciklizálak, hisze Z véges, így egy id utá olya maradékot kapuk, ami már egyszer el fordult. A véletleszámokak most is agy jelet ségük va, de ebbe az esetbe más a szerepük, arra kelleek, hogy a keresett osztók agyobb valószí séggel esseek bele egy szeriti ciklusba. Ezeket az (ál)véletleszámokat egy f másodfokú rekurzió fogja ekük biztosítai (pl. f(x) = x 2 + 1), azaz x i+1 = f(x i ). Ekkor kiszámítjuk az (x i x j, ) (i > j) értékeket és abba bízuk, hogy x i és x j az -ek egy p prímosztója szerit ugyaabba a maradékosztályba vaak, de szerit em, ezért, ha (x i x j, ) > 1, akkor egy valódi osztót találtuk. Ezért em vezet eredméyhez, ha f(x) = ax + b alakú függvéyt aduk meg, ugyais, ha x i x j (mod ) f(x i ) f(x j ) (mod ) f(x i ) f(x j ) (mod p), így em kaphatuk em triviális osztót. A módszer igazából em számítja ki mide (x i, x j ) párra az (x i x j, ) értéket, hisze ekkor agyo sokat is kellee számoli, illetve eheze is követhet. A trükk az, hogy a sorozatba a 2 k -dik elemmel számítjük ki a legagyobb közös osztót, amíg el em érjük a 2 k+1 -dik tagot, így megspórolva sok számolást, másrészt expoeciálisa övekszik a x i -k közti távolság, így agyobb eséllyel hamarabb elérjük egy p szeriti periódus hosszát. Vagyis a helyzet a következ. Legye f : Z Z és x 0 tetsz leges kezd érték. Jelölje k a kettes számredszerbeli számok számjegyeiek a számát, ekkor 2 k 1 a legagyobb k jegy kettes számredszerbeli szám (k = 0 eseté x 0 -t értük). x 0, (k = 0) x 1 = f(x 0 ) (x 1 x 0, ), (k = 1) x 2 = f(x 1 ) (x 2 x 1, ), (k = 2) x 3 = f(x 2 ) (x 3 x 1, ), (k = 2) 21

x 4 = f(x 3 ) (x 4 x 3, ), (k = 3) x 5 = f(x 4 ) (x 5 x 3, ), (k = 3) x 6 = f(x 5 ) (x 6 x 3, ), (k = 3) x 7 = f(x 6 ) (x 7 x 3, ), (k = 3) x 8 = f(x 7 ) (x 8 x 7, ), (k = 4). x i = f(x i 1 ) (x i x 2 1, k ), i 2 k Így egy id utá belefutuk egy olya esetbe, ahol a legagyobb közös osztó agyobb, mit egy. Ezek alapjá a Mote Carlo módszer lépései a következ k. 2.2.1. Algoritmus. Mote Carlo módszer 0. lépés: Prímteszt N(=: )-re, ha prím, akkor megálluk. 1. lépés: A feti módo kiszámítjuk a legagyobb közös osztót, a sorozat tagjait pedig mod számoljuk. 2. lépés: Ha a legagyobb közös osztó 1 és közé esik, akkor elvégzük rá egy prímtesztet, ha -el egyel, akkor megálluk, ha 1-gyel, akkor kiszámítjuk a következ lko-t. 3. lépés: Ha az osztó prím, akkor p t = (x i x 2 1, ) k és := /p t, ha em, akkor valószí leg kudarcot vallottuk, azaz ezzel a módszerrel em tudjuk felbotai (de kés bb külö elvégezhetjük erre az osztóra az algoritmust más paraméterekkel), majd tovább lépük a sorozatba. 2.2.2. Példa. Botsuk prímtéyez kre N = 34203-at, f(x) = x 2 + 1 és x 0 = 1 mellett! x 1 = f(x 0 ) = 2 (2 1, 34203) = 1 x 2 = f(x 1 ) = 5 (5 2, 34203) = 3 (prím) := 34203 3 = 11401, (5 2, 11401) = 1 x 3 = f(x 2 ) = 26 (26 2, 11401) = 1 x 4 = f(x 3 ) = 677 (677 26, 11401) = 1 x 5 = f(x 4 ) = 458330 2290 (mod 11401) (2290 26, 11401) = 1 x 6 = f(x 5 ) 11042 (mod 11401) (11042 26, 11401) = 1 x 7 = f(x 6 ) 3471 (mod 11401) (3471 26, 11401) = 13 (prím) 22

:= 11401 13 = 877 (prím) Tehát 34203 = 3 13 877. 2.3. Fermat módszere Fermat módszeréek léyege, hogy egy N = rs (r s) összetett páratla számra létezek a b [0,..., N] egészek, hogy N = a 2 b 2 = (a + b)(a b), így yilvá a = r+s 2, b = r s 2 jó lesz. Az algoritmus akkor a leghatásosabb, ha r és s is közel vaak N-hez, emiatt a 2 agy vagyis N-hez közeli és b 2 kicsi lesz. Tehát a következ egyeletredszer megoldásával kapjuk a Fermat-féle felbotást. a 2 N = b 2, 0 b < a N Ha találtuk egy a, b megoldást, akkor r = a + b és s = a b összefüggések alapjá megkapjuk az osztópárokat is. A következ algoritmus abból idul ki, hogy r és s is N-hez közeli értékek, kokréta az r = N = s feltételb l. Feltehet, hogy N páratla, hisze ellekez esetbe 2 hatváyok leválasztásával páratlat kapuk. Az algoritmus az r + s + 1 = 2a + 1 = 2 N + 1 =: a és r s + 1 = 2b + 1 = 1 =: b értékekkel dolgozik és addig öveli, illetve csökketi ezeket, amíg N = a b a +b 2 em teljesül. 2 2 2.3.1. Algoritmus. Egy lehetséges eljárás 1. lépés: Legyeek a, b és m segédváltozók. A kezdeti feltétel és a paritás szempotjából legye a = 2 N + 1, b = 1, m = N 2 N. m < a és b < a midig igazak, ezek garatálják, az eljárás véges voltát. 2. lépés: Vizsgáljuk a maradék el jelét, vagyis, ha m > 0, akkor m-et csökketjük b -vel és b -t öveljük 2-vel, hogy a paritás e változzo, ha m < 0, akkor m-et öveljük a -vel, a -t pedig szité 2-vel öveljük. 3. lépés: Ha m = 0, akkor N = a b a +b 2, így megkaptuk a kívát felbotást. 2 2 2.3.2. Példa. Botsuk téyez kre az N = 459-et! 459 = 21, így m = 21 2 459 = 18, a = 43 és b = 1. m < 0 m = 25 és a = 45 m > 0 23

m = 24 és b = 3 m > 0. m > 0 m = 9 és b = 9 m > 0 m = 0 és b = 11 m = 0 459 = 45 11 2 45+11 2 2 = 17 27 = 17 3 3 A 27-et a módszer 2-szeri alkalmazásával hasolóa téyez kre bothatjuk. A Fermat-féle felbotásak létezek más megvalósításai is. Például vizsgálhatjuk az N = a 2 b 2 egyeletet (b 2 -re redezve) az a 2 N = b 2 alakba, vagyis, hogy az a 2 N = c egyeletbe mikor lesz c égyzetszám. Ekkor a helyére ( N + 1)-gyel kezdve helyettesítük N + i-t (i = 2,...), amíg c megfelel em lesz. 2.3.3. Példa. Botsuk téyez kre az N = 87-et! 87 + 1 = 11 11 2 87 = 34, ami em égyzetszám. 87 + 2-vel folytatva kapjuk, hogy 12 2 87 = 57, ami szité em az. A következ próba a 87 +3 = 13- mal törtéik, így 13 2 87 = 82, de ez sem teljes égyzet. Sorba haladva a 87 + 5 = 16-ál fordul el, hogy 16 2 87 = 169 = 13 2, ezért 87 = (16 13)(16+13) = 3 29. A következ változat alapja az, hogy ha va k db külöböz p i prímük és k + 1 db olya b i számuk, melyekek ics a p i -kt l külöböz prímosztójuk, akkor midig kiválasztható éháy b i, melyek szorzata égyzetszám. Miel tt rátérék a bizoyításra, deiálom a faktor bázis és a hasolósági vektor fogalmát. 2.3.4. Deíció. Egy B = {(p 1 = 1), p 2,..., p k } külöböz (kivéve p 1 = 1-et, a egatív maradékok miatt szerepel) prímek halmazát faktor bázisak evezzük. Egy b egész B-szám egy adott -re, ha (a legkisebb abszolút értékbe vett) b 2 (mod ) felírható B-beli elemek szorzatakét. 2.3.5. Deíció. Egy b i = k j=1 p α j j B-szám hasolósági vektora az a v i Z k 2-beli vektor, amelyek koordiátáira v j i = (α j (mod 2)). 24

2.3.6. Állítás. Legye B = {(p 1 = 1), p 2,..., p k } és legyeek b 1, b 2,..., b k, b k+1 külöböz B-számok. Ekkor létezik 1 j db b i, melyek szorzata teljes égyzet. Bizoyítás. Legyeek a b 1, b 2,..., b k+1 B-számok hasolósági vektorai redre a v 1, v 2,..., v k+1 Z k 2 vektorok. Mivel k + 1 db Zk 2-beli vektorról va szó, ezért ezek lieárisa összefüggek, azaz em csak triviálisa adják ki a ullvektort. Ebbe az összegbe az 1 együtthatójú v i -kek megfelel b i -k szorzatába lév p i -k kitev je páros, vagyis égyzetszám. Ekkor azt csiálhatjuk, hogy veszük egy ilye B = {p 1, p 2,..., p k }-t és -et, és két külöböz módo gyártuk olya számokat, melyekek a égyzeteik kogruesek mod, de k maguk abszolútértékbe em azok. Tegyük fel, hogy ismerük (2 )q db b i B-számot, melyek hasolósági vektoraik lieárisa összefüggek, ekkor a következ t tesszük: kiszámítjuk q b i (mod )-et, jelöljük β i -vel a legkisebb abszolút érték maradékát a b 2 i (mod ) értékek. Ekkor β i = k j=1 pα ij j, így β i = k j=1 p i α ij j, és most abba bízuk, hogy k j=1 p i α ij 2 j ± q b i (mod ) (mert, ha x 2 y 2 (mod ) és x ±y (mod ), akkor (x + y, ) vagy (x y, ) -ek egy valódi osztóját adják). El fordulhat, hogy kogruesek, ekkor más B-számokkal (melyek hasolósági vektoraik összefüggek) sikeresebbe járhatuk el. Mivel egy b i = k pα i i szám eseté az x 2 c 2 (mod ) kogrueciáak potosa 2 k külöböz megoldása va, ezért aak az esélye, hogy k j=1 p i α ij 2 j ± q b i (mod ) teljesül kevesebb, mit 1. A gyakorlatba egy ilye B faktor bázis el állítása kérdéses, vehetjük például az els k db prímet, ekkor egy véletle módszer segítségével 2 a megfelel prímekkel és kitev kkel el állítjuk a b i -ket. A következ példa ezt mutatja be. 2.3.7. Példa. Legye B = { 1, 2, 3, 5, 7} és N = 2451. Nyilvá 2451 = 50 körüli számokkal érdemes kezdei, hisze ekkor kicsi a maradék hogy: 48 2 147 = 3 7 2 (mod 2451) v 1 = (1, 0, 1, 0, 0) 49 2 50 = 2 5 2 (mod 2451) v 2 = (1, 1, 0, 0, 0) 50 2 49 = 7 2 (mod 2451) v 3 = (0, 0, 0, 0, 0) 51 2 150 = 2 3 5 2 (mod 2451) v 4 = (0, 1, 1, 0, 0). mod 2451, így kapjuk, 25

Láthatjuk, hogy v 1 + v 2 + v 4 = 0 (b 1 = 48, b 2 = 49, b 3 = 51). Tehát lieárisa összefüggek, ezért mide kitev b l páros sok va, tehát kiszámíthatjuk a fetebb említett szorzatokat. 3 b i = 48 49 51 147 i α ij 2 (mod 2451) és 5 pj = ( 1) 2 3 5 2 7 1401 (mod 2451). j=1 Ezek pedig em kogruesek (de ( 147) 2 1401 2 ), vagyis (1401 147, 2451) = 3(prím) és (1401+147, 2451) = 129 osztókat kaptuk, így 2451 = 19(prím), tehát már 129 két prímosztók va, ezekb l 2451 = 43(prím), vagyis 2451 = 3 19 43 felbotást 3 19 kaptuk. Mivel arra törekszük, hogy a b 2 i (mod ) maradékok kicsik és viszoylag kis prímek szorzatai legyeek, ezért a b 2 i (mod ) felbotását számítógépe akár a próbaosztások módszerével is elvégezhetjük. A következ algoritmusba összegzem a feti példába látott eljárást. 2.3.8. Algoritmus. Faktor bázissal való felbotás. 1. lépés: Legye B = { 1 = p 1, p 2,..., p k } az els k 1 prím (gyakorlati szempotból az els 15-20 eleged, ha em, akkor öveljük) 2. lépés: Teszteljük sorra a l és l + 1 (l = 1, 2,...) számok közötti értékeket, hogy jók-e B-számak 3. lépés: A hasolósági vektorokból válasszuk ki lieárisa összefügg redszert 4. lépés: Számítsuk ki az a := b i-t és a b := k j=1 p i α ij 2 j értékeket, ha ezek ikogruesek (a ±b (mod )), akkor (a ± b, ) valódi osztókat kapjuk, ha kogruesek, akkor próbálkozzuk más B-számok keresésével. Igazából Fermat az 1640-es évekbe em potosa így bototta szorzattá a számokat. Ž is az a 2 N értéket ézte, hogy mikor lesz teljes égyzet, de em közvetle próbálgatással járt el, haem bizoyos számokra megézte, hogy egy égyzetszám milye maradékot adhat ezekre a modulusokra, és így következtetett az a tulajdoságaira, majd csak a megfelel a-kat helyettesítette be. Ez szolgál alapul a következ prímfaktorizációs eljárásba, vagyis a szitamódszerbe. 26

2.4. Szitamódszer A szitamódszerbe egymáshoz és N-hez relatív prímeket veszük modulusak és a segítségükkel vizsgáljuk a 2 N az ezekre a számokra vett osztási maradékait. Tehát modhati, hogy Fermat eredeti módszeréek a kidolgozott változata. Potosabba arról va szó, hogy ha vesszük például az N = 20203 számot és ézzük a következ maradékokat: m a (mod m) a 2 (mod m) a 2 N (mod m) 3 0, 1, 1 0, 1, 1 1, 0, 0 5 0, 1, 2, 2, 1 0, 1, 1, 1, 1 2, 2, 1, 1, 2 7 0, 1, 2, 3, 3, 2, 1 0, 1, 3, 2, 2, 3, 1 1, 0, 3, 1, 1, 3, 0 8 0, 1, 2, 3, 4, 3, 2, 1 0, 1, 4, 1, 0, 1, 4, 1 3, 2, 1, 2, 3, 2, 1, 2 Ezekb l kiolvasható például, hogy ha a 2 N teljes égyzet, akkor a 0 (mod 3) lehet csak, szité ezért a ±2 (mod 5), a ±1, ±3 (mod 7) és a ±2 (mod 8), vagyis a páros, elég a 20203 = 145-él agyobb vagy egyel 2-vel osztható számokat keresük. Szerecsére hamar megtaláljuk a 158 2 20203 = 4761 = 69 2 megoldást. Tehát 20203 = 89 227. Készítsük el a szitatáblázatot a feti ábra szerit, és ebb l köye leolvasható, hogy a 2 N lehet-e teljes égyzet (va-e közös elem a második és harmadik oszlopba). A következ algoritmushoz legyeek N a felbotadó szám, m i (i = 1, 2,..., k) párokét relatív prím modulusok, valamit (m i, N) = 1 és legye a =. Ekkor az eljárás mide m i -re megvizsgálja az a 2 N (mod m i ) maradékot és, ha mide m i -re ez lehet égyzetszám, akkor leelle rzi, hogy a 2 valóba égyzetszám-e. Az m i -kb l célszer miél többet bevei, ezáltal sokkal kevesebb téyleges próbát kell elvégezi, más szóval hamarabb kiderül az a-ról, hogy em jó, azaz a 2 N em lehet teljes égyzet. 2.4.1. Algoritmus. Szitamódszer 1. lépés: Legye a = N 2. lépés: Ha a 2 N (mod m i ) mide i = 1,..., k-ra ad olya maradékot, ami lehet égyzetszám, akkor b := N vagy b := N, ha va olya 1 t k, melyre a 2 N (mod m t ) em lehet égyzetszám, akkor x := x + 1 és kezdjük elölr l a 2. lépést 3. lépés: Ha a 2 N = b 2, akkor a b és a+b osztókat találtuk meg, ha a 2 N b 2, 27

akkor x := x + 1, és mejük a 2. lépésre A táblázat alapjá gyorsíthatuk az eljáráso, ha bizoyos oszthatóságok is feállak például, ha (2 )l N, akkor eleged a [ N] + l alakú számokat leelle rizi. 28

Utószó Az eddigi prímtesztek em 100%-os, haem csak 99,9999...%-os biztosággal állították egy számról, hogy prím és hosszú évekig em tudták, hogy létezik-e olya teszt, amely tévedhetetle és gyorsa számítható is egybe. 2002-be változott a helyzet, ugyais három idiai matematikus, év szerit Maidra Agrawal, Neeraj Kayal és Niti Saxea kidolgoztak egy olya prímtesztet, ami em csakhogy 100%-os biztoságot yújt, poliom id be számítható. Az alapkocepció az, hogy, ha prím, akkor Z -be az -edikre emelés tagokét végezhet, azaz (x a) = x a. Ekkor a kis Fermat-tétel miatt (x a) x a (mod ). Viszot (x a) -be a biomiális együtthatók kiszámítására em ismert hatékoy módszer, ezért az eljárás azt csiálja, hogy x r 1 alakú poliomra, mit modulusra vizsgálja az x c? (x c) r kogrueciát. Ekkor az prím x c (x c) (mod x r 1) tétel biztosítja a teszt tévedhetetleségét. Az általam C++ yelvbe megírt tesztek kb. 50000-ig képesek eldötei egy számról, hogy prím-e. A prímfaktorizációs programokba, mit pl. a Mote Carlo felbotásba lehet más másodfokú függvéyt is alkalmazi vagy más kostas tagot szerepelteti, így bizoyos esetekbe amikor em tudjuk felbotai -et az f(x) = x 2 + 1 függvéy haszálatával is sikerrel járhatuk. Végül megjegyzem, hogy a prímfaktorizáció problémájáak eldöthet sége (vagyis, hogy létezik-e gyors módszer, ami megtalálja egy szám prímfelbotását) máig em ismert, de valószí, hogy ics is ilye. Viszot a jöv bei kvatumszámítógépekkel már elképzelhet lehet egy ilye felbotás gyors megtalálása. 29

Irodalomjegyzék [1] Freud Róbert, Gyarmati Edit, Számelmélet, Nemzeti Taköyvkiadó, 2006, 199-213 [2] Neal Koblitz, A Course i Number Theory ad Cryptography, Spriger, 1998, 125-154 [3] Doald E. Kuth, A számítógépprogramozás m vészete 2. kötet, M szaki Köyvkiadó, 1987, 371-387 [4] Freud Róbert, Lieáris algebra, ELTE Eötvös Kiadó, 2006, 258-262 30