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, 2340 ≡ 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 apseudopierwsz¡ ), je±li an−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. podstawie Dowód. Mamy niesko«czenie wiele liczb pseudopierwszych przy a. 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 | ap−1 − 1. Poniewa» a − 1 | ap−1 − 1 oraz ap−1 −1 NWD(p, a − 1) = 1, wi¦c p | . Zatem a−1 n−1= ap − ap−1 + ap−1 − 1 ap−1 − 1 − 1 = ap−1 − 1 + a−1 a−1 jest podzielna przez p. Dodatkowo jeszcze, n = 1 + a + a2 + · · · + ap−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 ap−1 − 1 =a . a+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 N = nm = ap − 1 ap + 1 a2p − 1 · = 2 , a−1 a+1 a −1 czyli N (a2 − 1) = a2p − 1 i a2p ≡ 1 (mod N ). (11.3) Rozwa»my aN −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 aN −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: a2 ≡ 1 (mod 3) a10 ≡ 1 (mod 11) a16 ≡ 1 (mod 17) ⇒ ⇒ ⇒ a560 ≡ (a2 )280 ≡ 1 (mod 3) a560 ≡ (a10 )56 ≡ 1 (mod 11) a560 ≡ (a16 )35 ≡ 1 (mod 17). Dalej, z chi«skiego twierdzenia o resztach, dostajemy a560 ≡ 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 x2 ≡ 1 (mod p) ma dokªadnie 2 rozwi¡zania: 1 i −1 (twierdzenie Lagrange'a). Z tego samego twierdzenia wynika, »e je»eli kongruencja x2 ≡ 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 2r s, gdzie s jest liczb¡ nieparzyst¡ oraz r > 0. Przypu±¢my, »e liczba n jest pierwsza lub pseudopierwsza przy podstawie a. Wówczas an−1 ≡ 1 (mod n). Rozwa»amy po kolei liczby x0 = as mod n, x1 = a2s mod n, ... r xr = a2 s mod n. Zauwa»my, »e aby obliczy¢ warto±ci wszystkich wyrazów ci¡gu X = (x0 , x1 , . . . , xr ), wystarczy obliczy¢ x0 , 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 xt = 1 oraz xt−1 = −1, 2. istnieje 0 < t ≤ r, takie »e xt = 1, xt−1 ̸= ±1, 3. x0 = 1. Oczywi±cie, je±li xt = 1, to dla i > t mamy xi = 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» xr = an−1 , wi¦c xr = 1. Je±li speªniony jest warunek 2, to oznacza to, »e kongruencja x2 ≡ 1 (mod n) ma wi¦cej ni» dwa pierwiastki (bo 1, −1 oraz xt−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 as ≡ 1 (mod n) lub t istnieje 0 < t < r, takie »e a2 s ≡ −1 (mod n), gdzie n − 1 = 2r 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 · 85 oraz x0 = 32, x1 =1. Oznacza to, »e 341 nie jest spsp(2). Co wi¦cej, poniewa» x0 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. 2 49 11.4 Przykªad. We¹my n = 561. Jest to liczba Carmichaela, czyli jest ona pseudopierwsza przy ka»dej podstawie. Mamy 560 = 24 · 35 i niech a = 2. Wówczas x0 = 263, x1 = 166, x2 = 67, x3 = 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 x0 = 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 2n − 1 jest spsp(2). Poniewa» n jest liczb¡ zªo»on¡, wi¦c tak»e 2n − 1 jest liczb¡ zªo»on¡. Dalej, n jest psp(2), wi¦c 2n−1 ≡ 1 (mod n). Zapiszmy 2n−1 − 1 = nk , przy czym liczba k (tak jak n) jest nieparzysta. Niech m = 2n −1. Wówczas m−1 = 2n −2 = 2nk . Zatem cz¦±ci¡ nieparzyst¡ m − 1 jest s = nk . Poniewa» mamy oczywist¡ kongruencj¦ 2n − 1 ≡ 0 (mod m), wi¦c zachodzi te» 2n ≡ 1 (mod m). Podnosz¡c strony tej kongruencji do pot¦gi k otrzymamy 2nk ≡ 1 (mod m), czyli 2s ≡ 1 (mod m) i m jest spsp(2). Dowód. 50