ARYTMETYKA MODULARNA Grzegorz Szkibiel Wiosna 2014/15
Spis tre±ci 1 Denicja kongruencji i jej podstawowe wªasno±ci 3 2 Systemy pozycyjne 8 3 Elementy odwrotne 12 4 Pewne zastosowania elementów odwrotnych 17 5 Maªe Twierdzenie Fermata 20 6 Twierdzenie Eulera 23 7 Twierdzenie Lagrange'a 27 8 Chi«skie Twierdzenie o Resztach 30 9 RSA i gra w orªa i reszk przez telefon 36 10 Kongruencje wy»szych stopni 40 11 Liczby pseudopierwsze 46 12 Pierwiastki pierwotne 49 13 Istnienie pierwiastków pierwotnych 53 14 Logarytm dyskretny 58 15 Pewne zastosowania pierwiastków pierwotnych 61 2
Wykªad 11 Liczby pseudopierwsze Teoria liczb znalazªa najwi ksze zastosowanie w kryptograi, a tam potrzeba du»ych liczb pierwszych i to takich, których nikt nie zna. Pojawia si zatem potrzeba szybkich algorytmów szukaj cych liczb pierwszych lub testuj cych liczby na pierwszo±. Warunek równowa»ny pierwszo±ci liczby, daje nam np. Twierdzenie Wilsona, które mówi,»e liczba n jest pierwsza wtedy i tylko wtedy, gdy (n 1)! 1 (mod n). Nie jest to jednak dobre kryterium ªatwiej sprawdzi czy n jest liczb pierwsz dziel c j przez kolejne liczby nieparzyste ni» oblicza (n 1)! (nawet modulo n). Dobrym testem pierwszo±ci jest Maªe Twierdzenie Fermata (5.1). Problem w tym, i» nie jest to warunek równowa»ny pierwszo±ci. Na przykªad, 2 340 1 (mod 341), (11.1) chocia» 341 nie jest liczb pierwsz. Nasze rozwa»ania oprzemy jednak na tym twierdzeniu, badaj c które liczby zªo»one speªniaj tez MTF. Liczb zªo»on n nazywamy pseudopierwsz przy podstawie a (lub a- pseudopierwsz ), je±li a n 1 1 (mod n). (11.2) Piszemy wówczas w skrócie: n jest psp(a). Zauwa»my,»e ka»da liczba pseudopierwsza przy podstawie a jest wzgl dnie pierwsza z a, Jak wynika z (11.1), liczba 341 jest 2-pseudopierwsza. Jak pokazaª Sarrus w 1819 roku, jest to najmniejsza liczba pseudopierwsza przy podstawie 2. Kolejne odkrywane liczby psp(2) byªy nieparzyste. Dopiero w 1950, D.H. Lehmer odkryª pierwsz parzyst liczb 2-pseudopierwsz. Najmniejsz liczb pseudopierwsz przy podstawie 3 jest, natomiast, 91. 46
Skoro najmniejsze liczby pseudopierwsze s tak du»e, to powstaje pytanie, czy jest ich niesko«czenie wiele. Odpowied¹ jest pozytywna. 11.1 Twierdzenie. Mamy niesko«czenie wiele liczb pseudopierwszych przy podstawie a. Dowód. Niech p > 2 b dzie dowoln liczb pierwsz. Rozwa»my liczby n = ap 1 a 1, m = ap + 1 a + 1, N = nm. Przypu± my,»e p nie jest dzielnikiem a, a 1 ani a + 1. Wówczas z Maªego Twierdzenia Fermata mamy p a p 1 1. Poniewa» a 1 a p 1 1 oraz NWD(p, a 1) = 1, wi c p ap 1 1. Zatem a 1 n 1 = ap a p 1 + a p 1 1 a 1 1 = a p 1 1 + ap 1 1 a 1 jest podzielna przez p. Dodatkowo jeszcze, n = 1 + a + a 2 + + a p 1, wi c n 1 jest sum parzystej ilo±ci liczb o tej samej parzysto±ci, czyli jest liczb parzyst. Zatem 2p n 1. Dalej, mamy m 1 = ap a a + 1 = aap 1 1 a + 1. Poniewa» p a + 1, wi c, podobnie jak poprzednio, zauwa»amy»e 2p m 1. Ale, N 1 = nm 1 = (n 1)(m 1) + (n 1) + (m 1), wi c 2p N 1. Zauwa»my teraz,»e czyli N(a 2 1) = a 2p 1 i N = nm = ap 1 a 1 ap + 1 a + 1 = a2p 1 a 2 1, a 2p 1 (mod N). (11.3) Rozwa»my a N 1 1. Poniewa» 2p N 1, wi c istnieje liczba k, taka»e N 1 = 2pk. Po podniesieniu obu stron kongruencji (11.3) do pot gi k otrzymujemy a N 1 1 (mod N). Zatem N, która jest oczywi±cie liczb zªo»on, jest psp(a). Oczywi±cie, takich liczb N jest niesko«czenie wiele, poniewa» mamy niesko«czenie wiele liczb pierwszych, za pomoc których mo»emy zdeniowa liczby n oraz m. 47
Posªu»ymy si algorytmem z powy»szego twierdzenia. Dla a = 2 oraz p = 5 otrzymujemy liczb N = 341, a dla p = 7, liczb 5461. Podobnie, podstawiaj c a = 3 oraz p = 5, dostajemy liczb N = 7381, pseudopierwsz przy podstawie 3. Ogólnie, mamy 5597 liczb psp(2) mniejszych od miliarda oraz 5804 liczby psp(3) mniejsze od miliarda. Posiadaj c baz tych liczb mo»emy zastosowa nast puj cy test pierwszo±ci dla liczb n mniejszych od miliarda: 1. sprawd¹, czy liczba n speªnia tez Maªego Twierdzenia Fermata dla a = 2, je±li tak 2. sprawd¹, czy liczba n jest na li±cie liczb pseudopierwszych przy podstawie 2. Je±li nie, n jest pierwsza. 3. Je±li tak, powtórz kroki 1 i 2 dla a = 3. Jak wida, liczby pseudopierwsze nie s tak g sto rozmieszczone jak liczby pierwsze. Wydaje si wi c,»e bior c odpowiednio du»o pocz tkowych liczb pierwszych jako podstawy dojdziemy w ko«cu do sytuacji, w której nie znajdziemy liczb pseudopierwszych mniejszych od okre±lonej liczby. Jak odkryª w 1912 roku R.D. Carmichael, jest to sytuacja niemo»liwa. Liczb zªo»on n nazywamy liczb Carmichaela, je±li n jest psp(a) dla ka»dej liczby a wzgl dnie pierwszej z n. Jak pokazaª w roku 1992 A. Granville, liczb Carmichaela jest niesko«czenie wiele. Podamy przykªad jednej z nich. 11.2 Przykªad. Mamy 561 = 3 11 17. Niech a b dzie liczb wzgl dnie pierwsz z 561. Korzystaj c z Maªego Twierdzenia Fermata, otrzymujemy: a 2 1 (mod 3) a 560 (a 2 ) 280 1 (mod 3) a 10 1 (mod 11) a 560 (a 10 ) 56 1 (mod 11) a 16 1 (mod 17) a 560 (a 16 ) 35 1 (mod 17). Dalej, z chi«skiego twierdzenia o resztach, dostajemy a 560 1 (mod 561), co oznacza,»e 561 jest liczb Carmichaela. Do± du»y post p w skuteczno±ci testów opartych na liczbach pseudopierwszych daje nast puj ca obserwacja. Je±li liczba p jest pierwsza, to kongruencja x 2 1 (mod p) ma dokªadnie 2 rozwi zania: 1 i 1 (twierdzenie Lagrange'a). Z tego samego twierdzenia wynika,»e je»eli kongruencja x 2 1 (mod n) 48
ma wi cej ni» dwa rozwi zania, to n musi by liczb zªo»on. Zatem problem testowania liczby n na pierwszo± sprowadza si do szukania nietrywialnych pierwiastków stopnia 2 z jedynki modulo n. Z oczywistych wzgl dów, b dziemy dalej rozwa»a tylko nieparzyste liczby n. Skoro n jest nieparzysta, to n 1 mo»na zapisa w postaci 2 r s, gdzie s jest liczb nieparzyst oraz r > 0. Przypu± my,»e liczba n jest pierwsza lub pseudopierwsza przy podstawie a. Wówczas a n 1 1 (mod n). Rozwa»amy po kolei liczby x 0 = a s mod n, x 1 = a 2s mod n,... x r = a 2rs mod n. Zauwa»my,»e aby obliczy warto±ci wszystkich wyrazów ci gu X = (x 0, x 1,..., x r ), wystarczy obliczy x 0, a nast pnie podnosi j sukcesywnie do kwadratu i redukowa modulo n otrzymuj c kolejne wyrazy. Ostatecznie, mamy 3 mo»- liwo±ci: 1. istnieje 0 < t r, takie»e x t = 1 oraz x t 1 = 1, 2. istnieje 0 < t r, takie»e x t = 1, x t 1 ±1, 3. x 0 = 1. Oczywi±cie, je±li x t = 1, to dla i > t mamy x i = 1. Zatem je±li w pewnym momencie konstrukcji w ci gu X pojawi si 1, to wszystkie nast pne wyrazy te» s równe 1. Poniewa» x r = a n 1, wi c x r = 1. Je±li speªniony jest warunek 2, to oznacza to,»e kongruencja x 2 1 (mod n) ma wi cej ni» dwa pierwiastki (bo 1, 1 oraz x t 1 ), czyli n na pewno nie jest liczb pierwsz. Pozostaªe przypadki daj nast puj c denicj. Przypu± my,»e n jest nieparzyst psp(a). Mówimy,»e n jest liczb silnie pseudopierwsz, przy podstawie a lub spsp(a), je»eli a s 1 (mod n) lub istnieje 0 < t < r, takie»e a 2ts 1 (mod n), gdzie n 1 = 2 r s, s jest liczb nieparzyst oraz r > 0. W terminologii ci gu X mamy,»e n jest spsp(a), je±li jest speªniony warunek 1 lub 3. 11.3 Przykªad. Rozwa»my najmniejsz psp(2), czyli 341. Mamy 340 = 2 2 85 oraz x 0 = 32, x 1 =1. Oznacza to,»e 341 nie jest spsp(2). Co wi cej, poniewa» x 0 jest nietrywialnym pierwiastkiem kwadratowym z 1 modulo 341, wi c mo»emy znale¹ rozkªad 341 obliczaj c NWD(32 1, 341) = 31 oraz NWD(32 + 1, 341) = 11. 49
11.4 Przykªad. We¹my n = 561. Jest to liczba Carmichaela, czyli jest ona pseudopierwsza przy ka»dej podstawie. Mamy 560 = 2 4 35 i niech a = 2. Wówczas x 0 = 263, x 1 = 166, x 2 = 67, x 3 = 1. Zatem 561 nie jest spsp(2). 11.5 Przykªad. Najmniejsz liczb silnie pseudopierwsz przy podstawie 2 jest 2047 = 23 89. Poka»emy,»e jest to istotnie liczba silnie pseudopierwsza. Mamy 2046 = 2 1023 oraz x 0 = 1. Wszystkich liczb psp(2) mniejszych od dziesi ciu miliardów jest 14884, ale liczb spsp(2) jest ju» tylko 3291. Najmniejsz liczb b d c jednocze±nie spsp(2) oraz spsp(3) jest 1373653 = 829 1657. Nie ma liczby mniejszej od dziesi ciu miliardów, która by byªa jednocze±nie spsp(a) dla liczb a z przedziaªu [2, 13]. Mimo to liczb silnie pseudopierwszych przy dowolnej podstawie jest niesko«czenie wiele, co udowodnili C. Pomerance, J.L. Selfridge i S.S. Wagsta w 1980 roku. Trudny dowód ogólnego twierdzenia pomijamy i zadowolimy si tylko dowodem w przypadku a = 2. 11.6 Twierdzenie. Je±li n jest nieparzyst psp(2), to 2 n 1 jest spsp(2). Dowód. Poniewa» n jest liczb zªo»on, wi c tak»e 2 n 1 jest liczb zªo»on. Dalej, n jest psp(2), wi c 2 n 1 1 (mod n). Zapiszmy 2 n 1 1 = nk, przy czym liczba k (tak jak n) jest nieparzysta. Niech m = 2 n 1. Wówczas m 1 = 2 n 2 = 2nk. Zatem cz ±ci nieparzyst m 1 jest s = nk. Poniewa» mamy oczywist kongruencj 2 n 1 0 (mod m), wi c zachodzi te» 2 n 1 (mod m). Podnosz c strony tej kongruencji do pot gi k otrzymamy 2 nk 1 (mod m), czyli 2 s 1 (mod m) i m jest spsp(2). 50