11. Liczby pseudopierwsze

advertisement
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
Download