Debreceni Egyetem Természettudományi Kar Matematikai Intézet. Diplomamunka/Szakdolgozat. Diszkrét logaritmus. készítette: Vasenszki Zoltán

Hasonló dokumentumok
Vektorterek. Wettl Ferenc február 17. Wettl Ferenc Vektorterek február / 27

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

MM CSOPORTELMÉLET GYAKORLAT ( )

HALMAZELMÉLET feladatsor 1.

SE EKK EIFTI Matematikai analízis

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

Lineáris egyenletrendszerek

Diszkrét matematika I.

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

15. LINEÁRIS EGYENLETRENDSZEREK

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

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

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

Lineáris egyenletrendszerek

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.

Kongruenciák. Waldhauser Tamás

MM4122/2: CSOPORTELMÉLET GYAKORLAT ( ) 1. Ismétlés február 8.február Feladat. (2 pt. közösen megbeszéltük)

Diszkrét matematika 2.C szakirány

Diszkrét matematika I.

Gy ur uk aprilis 11.

Lineáris algebra 2. Filip Ferdinánd december 7. siva.banki.hu/jegyzetek

ELTE IK Esti képzés tavaszi félév. Tartalom

DISZKRÉT MATEMATIKA: STRUKTÚRÁK Előadáson mutatott példa: Bércesné Novák Ágnes

A lineáris algebra forrásai: egyenletrendszerek, vektorok

Bázistranszformáció és alkalmazásai 2.

Gauss-Jordan módszer Legkisebb négyzetek módszere, egyenes LNM, polinom LNM, függvény. Lineáris algebra numerikus módszerei

: 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!

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

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

Shor kvantum-algoritmusa diszkrét logaritmusra

13.1.Állítás. Legyen " 2 C primitív n-edik egységgyök és K C olyan számtest, amelyre " =2 K, ekkor K(") az x n 1 2 K[x] polinomnak a felbontási teste

Sztojka Miroszláv LINEÁRIS ALGEBRA Egyetemi jegyzet Ungvár 2013

1. Mellékosztály, Lagrange tétele

Diszkrét matematika II. feladatok

3. el adás: Determinánsok

Rekurzív sorozatok oszthatósága

Diszkrét matematika I., 12. előadás Dr. Takách Géza NyME FMK Informatikai Intézet takach november 30.

A matematika nyelvér l bevezetés

Polinomgy r k. 1. Bevezet. 2. Polinomok. Dr. Vattamány Szabolcs.

Lineáris Algebra. Tartalomjegyzék. Pejó Balázs. 1. Peano-axiomák

Diszkrét matematika 2.

2018, Diszkre t matematika. 10. elo ada s

DiMat II Végtelen halmazok

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

Matematika szigorlat június 17. Neptun kód:

Diszkrét matematika 2.

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

Vizsgatematika Bevezetés a matematikába II tárgyhoz tavasz esti tagozat

Mátrixok 2017 Mátrixok

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

1. előadás: Halmazelmélet, számfogalom, teljes

Diszkrét matematika 2.C szakirány

Permutációk véges halmazon (el adásvázlat, február 12.)

Analízis elo adások. Vajda István szeptember 10. Neumann János Informatika Kar Óbudai Egyetem. Vajda István (Óbudai Egyetem)


Bevezetés. 1. fejezet. Algebrai feladatok. Feladatok

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.

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

KOVÁCS BÉLA, MATEMATIKA I.

3. Feloldható csoportok

9. Előadás. Megyesi László: Lineáris algebra, oldal. 9. előadás Mátrix inverze, mátrixegyenlet

Intergrált Intenzív Matematika Érettségi

2017, Diszkrét matematika

Skalárszorzat, norma, szög, távolság. Dr. Takách Géza NyME FMK Informatikai Intézet takach/ 2005.

5. Előadás. (5. előadás) Mátrixegyenlet, Mátrix inverze március 6. 1 / 39

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

Matematikai statisztika 1.

Alapvető polinomalgoritmusok

6. Előadás. Megyesi László: Lineáris algebra, oldal. 6. előadás Bázis, dimenzió

n =

Véges testek és alkalmazásaik

Diszkrét matematika I.

1. Mátrixösszeadás és skalárral szorzás

Csoportelmélet ( ) ϕ ψ adatokra ( ) ( ) ( ) ( )

Diszkrét matematika 1. középszint

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás)


Valasek Gábor

Egyenletek, egyenlőtlenségek VII.

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

Matematika (mesterképzés)

Numerikus módszerek 1.

Diszkrét matematika II., 8. előadás. Vektorterek

értékel függvény: rátermettségi függvény (tness function)

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

Algebra jegyzet másodéves Matematika BSc hallgatóknak. Horváth Gábor

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

Gazdasági matematika II. tanmenet

Gauss-Seidel iteráció

Matematika B/1. Tartalomjegyzék. 1. Célkit zések. 2. Általános követelmények. Biró Zsolt. 1. Célkit zések Általános követelmények 1

2018, Diszkrét matematika

MBNK12: Permutációk (el adásvázlat, április 11.) Maróti Miklós

2. gyakorlat. A polárkoordináta-rendszer

Waldhauser Tamás december 1.

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

Függvények július 13. f(x) = 1 x+x 2 f() = 1 ()+() 2 f(f(x)) = 1 (1 x+x 2 )+(1 x+x 2 ) 2 Rendezés után kapjuk, hogy:

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

Gonda János POLINOMOK. Példák és megoldások

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

Lineáris algebra gyakorlat

Átírás:

Debreceni Egyetem Természettudományi Kar Matematikai Intézet Diplomamunka/Szakdolgozat Diszkrét logaritmus készítette: Vasenszki Zoltán témavezet : Dr. Tengely Szabolcs Debrecen, 2010.10.23.

Tartalomjegyzék Tartalomjegyzék i 1 Bevezetés 3 1.1. A csoport fogalma és néhány alapvet tulajdonságai........ 3 1.2. A csoportok és elemeik rendje, részcsoportok............ 5 2 Diszkrét logaritmus 9 2.1. A diszkrét logaritmus probléma.................... 9 2.2. Az index kalkulus módszer....................... 10 2.3. Példa az algoritmus m ködésére.................... 11 2.4. Faktorbázis és a kiválasztás módszere................. 11 3 Magma kód 17 Irodalomjegyzék 21 i

Köszönetnyilvánítás Ezúton szeretnék köszönetet mondani a szüleimnek, akik a kezdetekt l fogva családi és anyagi hátteret biztosítottak számomra tanulmányaim sikeres befejezéséhez. 1

1. Bevezetés A következ bevezet részben az algebra néhány alapvet, a csoportokkal foglalkozó eredményei kerülnek bemutatásra. A fejezet Bódi Béla Algebra [1] cím könyvének a felhasználásával készült. 1.1. A csoport fogalma és néhány alapvet tulajdonságai 1.1.1. Deníció. Az A és a B adott halmazok A B direkt szorzata (vagy Descartes-féle szorzata) az A B = {(a, b) a A, b B} halmaz, ahol az (a, b) rendezett pár. 1.1.2. Deníció. Egy A A A leképezést kétváltozós m veletnek (vagy binér m veletnek) nevezünk. Egy kétváltozós m velet egy adott A halmazon annak bármely két eleméhez egy harmadikat rendel: a, b A : (a, b) A. 1.1.3. Deníció. (M veletek tulajdonságai) Egy (kétváltozós) : A A A m velet 1. asszociatív, ha: a, b, c A : (a b) c = a (b c) 2. kommutatív, ha: a, b A : a b = b a Példák: A Z egész számok halmazán az azon deniált + összeadás és szorzás kommutatív és asszociatív, de a kivonásra egyik sem igaz. Az a, b R n -beli vektorok < a, b > R skaláris szorzatára igaz, hogy < a, b >=< b, a > tehát ez a kétváltozós m velet kommutatív. 3

4 FEJEZET 1. BEVEZETÉS A mátrixok körében deniált szorzás asszociatív, hiszen ha A M m n, B M n p, C M p r, D = A B, G = B C, F = (A B) C és H = A (B C), akkor a mátrixok szorzásának deníciója szerint d i,j = k a i,k b k,j g i,j = k b i,k c k,j és így f i,j = k ( l a i,l b l,j ) c k,j = k a i,l b l,k c k,j = l = l a i,l ( k b l,k c k,j ) = l a i,l g l,j = h i,j viszont nem kommutatív, hiszen ( ) ( ) ( 1 2 0 1 0 1 = 3 4 0 0 0 3 ) ( 3 4 0 0 ) = ( 0 1 0 0 ) ( 1 2 3 4 ). 1.1.4. Deníció. (G, ) neve félcsoport, ha egy kétváltozós asszociatív m velet a G halmazon. Megjegyzés: ha e G : a G : a e = e a = a akkor G neve egységelemes félcsoport, e a m veletre nézve neutrális elem. Például az n n-es R feletti mátrixok a mátrixszorzás m velettel félcsoportot alkotnak. 1.1.5. Deníció. G csoport a m veletre nézve, ha félcsoport és a G : a 1 : a a 1 = a 1 a = e Ha a m velet kommutatív, akkor kommutatív csoport(abel-csoport). Az a 1 elemet az a elem inverzének nevezzük. Példák: A Z egész számok halmaza a rajtuk értelmezett + összeadás m veletre tekintve kommutatív-csoport. az n n-es R feletti invertálható mátrixok a mátrixszorzás m velettel (nem kommutatív) csoport. A csoportok néhány egyszer tulajdonságai:

1.2. A CSOPORTOK ÉS ELEMEIK RENDJE, RÉSZCSOPORTOK 5 1.1.1. Tétel. Bármely (G, ) csoportra igazak a következ k: 1. G neutrális eleme egyértelm 2. G minden elemének inverze egyértelm 3. a G-re (a 1 ) 1 = a 4. a, b G-re (a b) 1 = b 1 a 1 Bizonyítás. 1. Legyenek e és f neutrális elemei a csoportnak, ekkor a neutrális elem denícióját felhasználva e = e f = f e = f nyerhet, így a neutrális elem valóban egyértelm. 2. Legyenek a, b, c G, b, c egyaránt az a elem inverzei. Ekkor c = c e = c (a b) = (c a) b = e b = b adódik, a m velet asszociativitása miatt, tehát a csoport tetsz leges elemének inverze egyértelm. 3. A harmadik állítás következik a másodikból, hiszen ha egy elem inverzének az inverze egy harmadik elem lenne, nem állna fenn az egyértelm ség. 4. (a b) (b 1 a 1 ) = a (b (b 1 a 1 )) = a ((b b 1 ) a 1 ) = a (e a 1 ) = e 1.2. A csoportok és elemeik rendje, részcsoportok 1.2.1. Deníció. Egy G csoport véges, ha elemeinek száma véges, ez a szám a csoport rendje. Jele: ord(g) Nem véges elemszámú csoport rendje végtelen. 1.2.2. Deníció. Legyen a (G, ). Ha a m = 1, m Z (a hatványozása a m velet ismételt végrehajtása önmagával), akkor a véges rend, ha n : n < m, a n = 1, akkor m az a rendje. Ha nem létezik ilyen véges szám, akkor a végtelen rend elem. Jele: ord(a) 1.2.1. Tétel. Ha a G rendje n, akkor a m = 1-b l n m következik.

6 FEJEZET 1. BEVEZETÉS Bizonyítás. Az m szám maradékos osztással el áll m = n q + r alakban, ahol 0 r < n, ebb l pedig miatt r = 0. a m = a n q+r = (a n ) q a r = a r = 1 1.2.3. Deníció. Legyen (G, ) csoport, H G. Ha (H, ) csoport, akkor a H csoport részcsoportja a G-nek. 1.2.2. Tétel. Egy H G halmaz akkor és csak akkor részcsoport, ha a, b H: a 1 b H. Bizonyítás. Ha H részcsoport, akkor minden a, b H esetén a 1 b H teljesül. A másik irány belátásának feltéltele, hogy a 1 b H igaz minden a, b H-re. Kell, hogy a csoportm velet asszociatív legyen a H halmazon, ez a tulajdonság örökl dik G-b l. Kell továbbá a neutrális elem és az inverz elemek létezése. A feltevés szerint c H : e = c c 1 H és ebb l c 1 e H, tehát létezik neutrális elem, és minden elemnek létezik az inverze is, tehát H részcsoportja G-nek. 1.2.4. Deníció. Legyen G csoport, u G, H G részcsoportja. Ekkor az uh = {u h h H} Hu = {h u h H} halmazokat a G csoport H részcsoport szerinti baloldali és jobboldali mellékosztályainak nevezzük. Megjegyzés: Abel-csoportok esetén uh és Hu megegyeznek u esetén. Példa: n > 1 esetén nz az n-el osztható számok halmaza. A (Z, +) csoport nz szerinti mellékosztályai a modulo n maradékosztályok. 1.2.3. Tétel. Legyen H G részcsoport. Ekkor: 1. c bh = ch = bh 2. bh ch = és bh = ch közül pontosan az egyik igaz. Bizonyítás. 1. c H miatt c írható b h 1 alakban, ahol h 1 H. Tetsz leges c h ch elemre c h = (b h 1 ) h = b (h 1 h) = c h bh = ch bh Hasonlóan belátható a másik irányú tartalmazás.

1.2. A CSOPORTOK ÉS ELEMEIK RENDJE, RÉSZCSOPORTOK 7 2. Tegyük fel, hogy c ah bh. Ekkor ch = ah és ch = bh = ah = bh Megjegyzés: ebb l a két tulajdonságból következik, hogy a G csoport H szerinti baloldali mellékosztályai G-nek egy osztályozását adják. 1.2.4. Tétel. (Lagrange-tétel) Ha H G részcsoportja és G véges, akkor ord(h) ord(g). Bizonyítás. Legyen a G egy osztályozása a 1 H, a 2 H,..., a s H. Ekkor G = a 1 H a 2 H... a s H, ahol i j esetén a i H a j H =. ord(a i H) = ord(h), emiatt G = a 1 H + a 2 H +... + a s H = s H 1.2.5. Deníció. A G csoport egy M részhalmazát a csoport generátorrendszerének nevezzük, ha az t tartalmazó legsz kebb részhalmaz G. 1.2.6. Deníció. Az egy elemmel generált csoport neve ciklikus csoport. Példa: Z/pZ ciklikus. 1.2.5. Tétel. Ha egy véges csoport rendje prím, akkor a csoport ciklikus. Bizonyítás. Legyen a G csoport rendje p prím, a G a neutrális elemt l különböz. Az a által generált H részcsoport rendje Lagrange tétele miatt osztja G rendjét, p-t, tehát az is egyenl p-vel, és így H = G ciklikus csoport.

2. Diszkrét logaritmus Ezen fejezet célja a diszkrét logaritmus problémának (DLP) és annak egy lehetséges megoldásának, az index kalkulus módszernek a bemutatása. A fejezet Raminder Ruprai az interneten fellelhet Improvements in the Index-Calculus algorithm for Solving the Discrete Logarithm problem over F p [3] cím munkájából merít. 2.1. A diszkrét logaritmus probléma A diszkrét logaritmus probléma (DLP) a következ módon értelmezhet : a x = b ahol a, b G valamilyen G csoportra, b < a > (b az a által generált részcsoport eleme), a hatványozás a csoportm velet ismételt végrehajtását jelöli, és az x Z meghatározása a feladat. A DLP legjobban Z/pZ fölött szemléltethet, ezért a továbbiakban csak ez a speciális eset kerül tárgyalásra. 2.1.1. Deníció. Legyenek a, b Z/pZ, p prím, a pedig generátora Z/pZ-nek. Ekkor a diszkrét logaritmus problémája olyan x Z keresése, melyre a x b (mod p) teljesül. 2.1.2. Deníció. Legyen n, p N. Az n p-sima, ha n kanonikus alakjában fellép összes prímtényez nem nagyobb, mint p. Példa: A 84 szám 84 = 2 2 3 7 miatt 7-sima. 9

10 FEJEZET 2. DISZKRÉT LOGARITMUS 2.2. Az index kalkulus módszer Legyen B egy halmaz, melynek tagjai néhány pozitív prím. Ekkor B neve faktorbázis. 2.2.1. Deníció. Egy n N szám F -sima, ha az n kanonikus alakjában fellép prímek mind elemei az F faktorbázisnak: n = p r 1 1 pr 2 2 pr l l F = {..., p 1, p 2,..., p l,...} Az eljárás elején választunk egy véletlenszer t (1... p 1) számot, és erre kiszámítjuk a t c (mod p) értékét, és c-t mint egész számot faktorizájuk. Ekkor c kanonikus alakja: c = p r 1 1 pr 2 2 pr l l a Amennyiben c B-sima, úgy a kanonikus alakjának logaritmusát véve adódik t r 1 log a p 1 + r 2 log a p 2 + + r l log a p l (mod p 1) egyenlet, melyben a logaritmus értékek az ismeretlenek. Ha legalább l darab ilyen véletlenszer en választott t számot találunk, akkor egy olyan egyenletrendszer nyerhet, melyb l a p i prímek diszkrét logaritmusa meghatározható. Megjegyzés: A különböz egyenletek együtthatóiból kapott szám l-esek mint vektorok közül legalább l darab vektor lineáris függetlensége szükséges a megoldhatósághoz. Ezzel megkaptuk a B minden elemének a diszkrét logaritmusát. A következ lépésben véletlenszer q számokra vizsgáljuk, hogy a q b B-simae modulo p. Ha igen, akkor a q b p d 1 1 pd 2 2 pdn n (mod p) alakban írható, ahol p i, i {1... n} a B faktorbázis elemei. Ennek a logaritmusát véve q + log a b d 1 log a p 1 + d 2 log a p 2 + + d n log a p n (mod p) adódik, melyb l csak a x = log a b nem ismert, ennek értéke (mely a probléma megoldása) átrendezéssel nyerhet.

2.3. PÉLDA AZ ALGORITMUS M KÖDÉSÉRE 11 2.3. Példa az algoritmus m ködésére A feladat: 19 k = 4 (mod 5209). A faktorbázis {2, 3, 5}. Ekkor: 19 30 2 3 5 (mod 5209) 19 180 2 3 2 5 2 (mod 5209) 19 274 2 4 3 2 5 (mod 5209) melynek logaritmusát véve 30 log 19 2 + log 19 3 + log 19 5 (mod 5208) 180 log 19 2 + 2 log 19 3 + 2 log 19 5 (mod 5208) 274 4 log 19 2 + 2 log 19 3 + log 19 5 (mod 5208) adódik. Az egyenletrendszert megoldva a választott prímek logaritmusai: log 19 2 5088 (mod 5208) log 19 3 604 (mod 5208) log 19 5 4754 (mod 5208) Ebb l, és a 19 60 4 2 4 3 2 5 2 (mod 5209) kongruenciából 60 + log 19 4 4 log 19 2 + 2 log 19 3 + 2 log 19 5 4 5088 + 2 3208 + 2 4754 31008 4968 (mod 5208) az eredmény k = 4968. 2.4. Faktorbázis és a kiválasztás módszere A denícióban azt mondtuk, hogy a t érték véletlenszer en választott, de érdemes megvizsgálni, hogy hogyan változik a lefutási id (lépésszámokban mérve), ha ehelyett egyesével lépegetünk végig az [1... p 1]-beli egész számokon, valamint azt, hogy ha az algoritmus bemeneténél egy adott faktorbázis helyett egy nagyobb, például a kétszerese szerepel. Ennek megfelel en egy partikuláris problémát négyféleképpen fogunk megoldani,

12 FEJEZET 2. DISZKRÉT LOGARITMUS egyszer a t véletlenszer en kerül kiválasztásra, egyszer pedig befutja az [1... p 1]- beli egészeket mindaddig, amíg meg nem lesz a megoldáshoz elegend számú egyenelet. Mindkét módszert alkalmazzuk egy kisebb és egy kétszer akkora számosságú faktorbázisra. Legyen a probléma 47 k 126 (mod 25219). Els eset: t véletlenszer választása a B = {2, 3, 5, 7} faktorbázissal: A következ egyenletek adódtak: 47 10828 2 3 5 (mod 25219) 47 11107 3 3 5 (mod 25219) 47 8299 2 3 2 5 7 (mod 25219) 47 11411 3 5 4 (mod 25219) ahol a baloldalon álló hatványkitev k a véletlen t értékek. A rendszer logaritmusát véve 10828 log 47 2 + log 47 3 + log 47 5 (mod 25218) 11107 3 log 47 3 + log 47 5 (mod 25218) 8299 log 47 2 + 2 log 47 3 + log 47 5 + log 47 7 (mod 25218) 11411 log 47 3 + 4 log 47 5 (mod 25218) adódik. Az egyenletrendszert megoldva a faktorbázis elemeinek logaritmusai: log 47 2 1139 (mod 25219) log 47 3 709 (mod 25219) log 47 5 8980 (mod 25219) log 47 7 21980 (mod 25219) A megoldás k = 24537. Második eset: t véletlenszer választása a B = {2, 3, 5, 7, 11, 13, 17, 19} faktorbázissal: A következ egyenletek adódtak:

2.4. FAKTORBÁZIS ÉS A KIVÁLASZTÁS MÓDSZERE 13 47 630 2 2 3 2 5 7 11 (mod 25219) 47 24286 2 3 3 3 7 2 (mod 25219) 47 18342 2 2 3 5 13 19 (mod 25219) 47 14901 2 3 5 2 7 2 (mod 25219) 47 14017 2 3 2 7 11 13 17 (mod 25219) 47 17147 2 3 4 7 11 (mod 25219) 47 3445 2 4 3 3 7 (mod 25219) 47 17009 2 7 2 17 (mod 25219) ahol a baloldalon álló hatványkitev k a véletlen t értékek. A rendszer logaritmusát véve 630 2 log 47 2 + 2 log 47 3 + log 47 5 + log 47 7 + log 47 11 (mod 25218) 24286 3 log 47 2 + 3 log 47 3 + 2 log 47 7 (mod 25218) 18342 2 log 47 2 + log 47 3 + log 47 5 + log 47 13 + log 47 19 (mod 25218) 14901 3 log 47 2 + 2 log 47 5 + 2 log 47 7 (mod 25218) 14017 log 47 2 + 2 log 47 3 + log 47 7 + log 47 11 + log 47 13 + log 47 17 (mod 25218) 17147 log 47 2 + 4 log 47 3 + log 47 7 + log 47 11 (mod 25218) 3445 4 log 47 2 + 3 log 47 3 + log 47 7 (mod 25218) 17009 log 47 2 + 2 log 47 7 + log 47 17 (mod 25218) adódik. Az egyenletrendszert megoldva a faktorbázis elemeinek logaritmusai: log 47 2 1139 (mod 25219) log 47 3 709 (mod 25219) log 47 5 8980 (mod 25219) log 47 7 21980 (mod 25219) log 47 11 16410 (mod 25219) log 47 13 23506 (mod 25219) log 47 17 22346 (mod 25219) log 47 19 8087 (mod 25219) A megoldás itt is k = 24537. Harmadik eset: t sorban való próbálgatása 1-t l 25218-ig, a B = {2, 3, 5, 7} faktorbázissal:

14 FEJEZET 2. DISZKRÉT LOGARITMUS A következ egyenletek adódtak: 47 28 2 3 3 7 (mod 25219) 47 179 2 3 7 (mod 25219) 47 12623 2 5 2 7 2 (mod 25219) 47 12676 2 2 3 2 5 (mod 25219) ahol a baloldalon álló hatványkitev k a véletlen t értékek. A rendszer logaritmusát véve 28 log 47 2 + 3 log 47 3 + log 47 7 (mod 25218) 179 3 log 47 2 + log 47 7 (mod 25218) 12623 log 47 2 + 2 log 47 5 + 2 log 47 7 (mod 25218) 12676 2 log 47 2 + 2 log 47 3 + log 47 5 (mod 25218) adódik. Az egyenletrendszert megoldva a faktorbázis elemeinek logaritmusai nem változtak: log 47 2 1139 (mod 25219) log 47 3 709 (mod 25219) log 47 5 8980 (mod 25219) log 47 7 21980 (mod 25219) Az eredmény természetesen ismét k = 24537. Negyedik eset: t sorban való próbálgatása 1-t l 25218-ig, a B = {2, 3, 5, 7, 11, 13, 17, 19} faktorbázissal: A következ egyenletek adódtak: 47 10 5 3 13 (mod 25219) 47 28 2 3 3 7 (mod 25219) 47 136 2 3 13 (mod 25219) 47 153 2 6 3 3 11 (mod 25219) 47 12623 2 5 2 7 2 (mod 25219) 47 12632 7 3 17 (mod 25219) 47 12643 2 4 19 (mod 25219) 47 12676 2 2 3 2 5 (mod 25219)

2.4. FAKTORBÁZIS ÉS A KIVÁLASZTÁS MÓDSZERE 15 ahol a baloldalon álló hatványkitev k a véletlen t értékek. A rendszer logaritmusát véve 10 3 log 47 5 + log 47 13 (mod 25218) 28 log 47 2 + 3 log 47 3 + log 47 7 (mod 25218) 136 log 47 2 + log 47 3 + log 47 13 (mod 25218) 153 6 log 47 2 + 3 log 47 3 + log 47 11 (mod 25218) 12623 log 47 2 + 2 log 47 5 + 2 log 47 7 (mod 25218) 12632 3 log 47 7 + log 47 17 (mod 25218) 12643 4 log 47 2 + log 47 19 (mod 25218) 12676 2 log 47 2 + 2 log 47 3 + log 47 5 (mod 25218) adódik. Az egyenletrendszert megoldva a faktorbázis elemeinek logaritmusai: log 47 2 1139 (mod 25219) log 47 3 709 (mod 25219) log 47 5 8980 (mod 25219) log 47 7 21980 (mod 25219) log 47 11 16410 (mod 25219) log 47 13 23506 (mod 25219) log 47 17 22346 (mod 25219) log 47 19 8087 (mod 25219) A megoldás itt is k = 24537.

3. Magma kód Itt a példák számításához használt programcsomag, a MAGMA [2] ingyenes, interneten elérhet változatához íródott kódok találhatóak. Az alább látható lépeget s módszer kódjánál gyelembe kell venni azt, hogy az alguritmus mindenféleképpen n n-es együtthatómátrixot keres a faktorbázis elemeinek a logaritmusának megtalálásához (ahol n a faktorbázis számossága), pedig lehetséges, hogy az kevesebb egyenletb l is nyerhet lenne. IK:=function(a,b,p,FB) FBsub:={k: k in Subsets(SequenceToSet(FB)) #k gt 0}; fac:=factorization(p-1); facb:=[t[1]^t[2]: t in fac]; kitevok:={}; Lm1:=(p-1) div 2; s:=1; logmatrix:=zeromatrix(integers(p-1),#fb,#fb); logvector:=vector(integers(p-1),[0: l in [1..#FB]]); k:=1; while not s eq #FB+1 do if not k in kitevok then pd:=primedivisors(a^k mod p); pdm:=primedivisors((-a^k) mod p); if SequenceToSet(pd) in FBsub then kitevo_vektor:=vector(integers(p-1),[valuation(a^k mod p,fb[l]): l in [1..#FB]]); logmatrix:=logmatrix; logmatrix[s]:=kitevo_vektor; if &and[rank(changering(logmatrix,gf(t))) eq s: t in facb] then logvector[s]:=k; logmatrix:=logmatrix; s:=s+1; if SequenceToSet(pdm) in FBsub and s lt #FB then 17

18 FEJEZET 3. MAGMA KÓD kitevo_vektor:=vector(integers(p-1),[valuation(-a^k mod p,fb[l]): l in [1..#FB]]); logmatrix:=logmatrix; logmatrix[s]:=kitevo_vektor; if &and[rank(changering(logmatrix,gf(t))) eq s: t in facb] then logvector[s]:=k-lm1; logmatrix:=logmatrix; s:=s+1; kitevok:=kitevok join {k}; k:=k+1; end while; time logsol:=solution(transpose(logmatrix),logvector); kitevok2:={}; nyer:=false; k:=1; while not nyer do if not k in kitevok then pdb:=primedivisors((a^k*b) mod p); if SequenceToSet(pdb) in FBsub then kitevo_vektor2:=vector(integers(p-1),[valuation((a^k*b) mod p, FB[l]): l in [1..#FB]]); logeredmeny:=integers(p-1)!((&+[kitevo_vektor2[t]*logsol[t]: t in [1..#FB]])-k); nyer:=true; print k; kitevok2:=kitevok2 join {k}; k:=k+1; end while; return logmatrix,logvector,logeredmeny; end function; A másik, véletlenszer en keres algoritmus kódja: IK:=function(a,b,p,FB) FBsub:={k: k in Subsets(SequenceToSet(FB)) #k gt 0};

19 fac:=factorization(p-1); facb:=[t[1]^t[2]: t in fac]; kitevok:={}; Lm1:=(p-1) div 2; s:=1; logmatrix:=zeromatrix(integers(p-1),#fb,#fb); logvector:=vector(integers(p-1),[0: l in [1..#FB]]); while not s eq #FB+1 do k:=random([1..p-1]); if not k in kitevok then pd:=primedivisors(a^k mod p); pdm:=primedivisors((-a^k) mod p); if SequenceToSet(pd) in FBsub then kitevo_vektor:=vector(integers(p-1),[valuation(a^k mod p,fb[l]): l in [1..#FB]]); logmatrix:=logmatrix; logmatrix[s]:=kitevo_vektor; if &and[rank(changering(logmatrix,gf(t))) eq s: t in facb] then logvector[s]:=k; logmatrix:=logmatrix; s:=s+1; if SequenceToSet(pdm) in FBsub and s lt #FB then kitevo_vektor:=vector(integers(p-1),[valuation(-a^k mod p,fb[l]): l in [1..#FB]]); logmatrix:=logmatrix; logmatrix[s]:=kitevo_vektor; if &and[rank(changering(logmatrix,gf(t))) eq s: t in facb] then logvector[s]:=k-lm1; logmatrix:=logmatrix; s:=s+1; kitevok:=kitevok join {k}; end while; time logsol:=solution(transpose(logmatrix),logvector); kitevok2:={}; nyer:=false;

20 FEJEZET 3. MAGMA KÓD while not nyer do k:=random([1..p-1]); if not k in kitevok then pdb:=primedivisors((a^k*b) mod p); if SequenceToSet(pdb) in FBsub then kitevo_vektor2:=vector(integers(p-1),[valuation((a^k*b) mod p, FB[l]): l in [1..#FB]]); logeredmeny:=integers(p-1)!((&+[kitevo_vektor2[t]*logsol[t]: t in [1..#FB]])-k); nyer:=true; print k; kitevok2:=kitevok2 join {k}; end while; return logmatrix,logvector,logeredmeny; end function;

Irodalomjegyzék [1] B. Bódi. Algebra. Kossuth Lajos Tudományegyetem Természettudományi Kar, 1997. [2] W. Bosma, J. Cannon, and C. Playoust. The Magma algebra system. I. The user language. J. Symbolic Comput., 24(3-4):235265, 1997. Computational algebra and number theory (London, 1993). [3] R. Ruprai. Improvements in the index-calculus algorithm for solving the discrete logarithm problem over F p. 2007. Elérhet : http://www.isg.rhul.ac.uk/ prai175/isgstudentsem07/indexcalculus.pdf. 21