14. Logarytm dyskretny

Transkrypt

14. Logarytm dyskretny
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
51
13 Istnienie pierwiastków pierwotnych
55
14 Logarytm dyskretny
60
15 Pewne zastosowania pierwiastków pierwotnych
63
2
Wykªad 14
Logarytm dyskretny
Zaªó»my, »e g jest pierwiastkiem pierwotnym modulo n. W naszym przypadku oznacza to, »e n = pk lub n = 2pk , gdzie p jest nieparzyst¡ liczb¡
pierwsz¡. Je»eli g y ≡ x (mod n), to mówimy »e y jest logarytmem dyskretnym lub indeksem z x przy podstawie g . Mo»emy zapisa¢
logg x ≡ y
⇔
(mod φ(n))
g y ≡ x (mod n).
(14.1)
Mamy tu funkcj¦
logg : Zn → Zφ(n) ,
logg : x 7→ y,
której warto±ci s¡ trudne do obliczenia. Dla odmiany, warto±ci funkcji wykªadniczej obliczamy w miar¦ prosto. Funkcja odwrotna do logg jest wi¦c
typowym przykªadem funkcji jednokierunkowej. Tego rodzaju funkcje wykorzystywane s¡ w kryptograi.
14.1 Przykªad. Niech
n = 17 oraz g = 3. Poniewa» 38 ≡ −1 (mod 17),
wi¦c log3 (−1) = 8. Podobnie sprawdzamy, »e log3 4 = 12 oraz log7 4 = 4.
Podstawowe wªasno±ci logarytmu dyskretnego s¡ zawarte w nast¦puj¡cym
twierdzeniu.
14.2 Twierdzenie.
Przypu±¢my, »e
g
dulo
jest pierwiastkiem pierwotnym mo-
n. Zachodz¡ nast¦puj¡ce wªasno±ci.
logg 1 = 0,
(b) logg g = 1,
(c) logg (x1 x2 ) ≡ logg x1 +logg x2 (mod φ(n)) dla dowolnych liczb x1 , x2 ∈ Z,
(a)
60
logg (xa ) ≡ a logg x (mod φ(n)) dla x, a ∈ Z,
(e) dla dowolnych liczb x1 , x2 ∈ Z, logg x1 ≡ logg x2 (mod φ(n))
tylko wtedy, gdy x1 ≡ x2 (mod n).
(d)
wtedy i
Poniewa» g 0 = 1 oraz g 1 = g , wi¦c wªasno±ci (a) oraz (b) s¡ oczywiste. Aby udowodni¢ punkt (c), zapiszmy logg (x1 x2 ) ≡ y (mod φ(n)). Wobec (14.1), oznacza to, »e g y ≡ x1 x2 (mod n). Poniewa» g jest pierwiastkiem
pierwotnym modulo n, istniej¡ liczby y1 oraz y2 , takie »e
Dowód.
g y1 ≡ x1
(mod n)
oraz
g y2 ≡ x2
(mod n).
Mno»¡c te kongruencje stronami otrzymujemy g y1 g y2 ≡ x1 x2 (mod n), czyli
g y1 +y2 ≡ g y1 g y2 ≡ g y (mod n). Z Twierdzenia Eulera mamy y1 + y2 ≡ y
(mod φ(n)), co nale»aªo pokaza¢.
Wªasno±¢ (d) udowadniamy najpierw dla nieujemnych a stosuj¡c Zasad¦
Indukcji Matematycznej. Dalej, z punktów (a) oraz (c), mamy
0 = logg 1 ≡ logg (xx−1 ) ≡ logg x + logg x−1
(mod φ(n)).
Z powy»szej kongruencji wynika bezpo±rednio przystawanie
logg x−1 ≡ − logg x
(mod n).
Dla dowolnej warto±ci ujemnej a dowód wynika przez zastosowanie wyniku
dla a > 0 i zast¡pienie x przez x−1 oraz a przez −a.
Aby udowodni¢ cz¦±¢ (e) twierdzenia, zauwa»my »e z udowodnionych ju»
cz¦±ci (c) i (d) wynika
0 = logg 1 ≡ logg x1 − logg x2 ≡ logg (x1 x−1
2 )
(mod φ(n)).
Wobec (14.1) powy»sza kongruencja jest równowa»na
g 0 = 1 ≡ x1 x−1
2
(mod n),
która jest równowa»na kongruencji x1 ≡ x2 (mod n).
W nast¦pnych przykªadach podamy pewne zastosowania logarytmu dyskretnego.
61
14.3 Przykªad. Niech
n = 17 oraz g = 3. Rozwi¡»emy kongruencj¦ wykªadnicz¡ 7 ≡ 4 (mod 17). Mamy kolejno
x
7x ≡
log3 7x ≡
x log3 7 ≡
11x ≡
x≡
4
log3 4
log3 4
12
4
(mod
(mod
(mod
(mod
(mod
17)
16)
16)
16)
16).
Zatem x = 4 + 16k , gdzie k ∈ Z jest rozwi¡zaniem naszej kongruencji.
14.4 Przykªad. Ponownie rozwa»ymy
n = 17 oraz g = 3, przy czym tym
razem rozwa»ymy kongruencj¦ 8k 5 ≡ 3 (mod 17). Przykªadaj¡c obustronnie
log3 mamy
log3 8k 5
log3 8 + 5 log3 k
5 log3 k
log3 k
k
≡
≡
≡
≡
≡
log3 3
1
−9
11
311 ≡ 10
(mod
(mod
(mod
(mod
(mod
16)
16)
16)
16)
17).
Ostatecznie k = 10 + 17n, gdzie n ∈ Z jest rozwi¡zaniem naszej kongruencji.
Na zako«czenie tego wykªadu, podamy algorytm Shanksa na obliczenie
logarytmu dyskretnego modulo liczba pierwsza p. Dokªadnie, liczby g oraz x
s¡ znane (g jest pierwiastkiem pierwotnym), a chcemy obliczy¢ y = logg x.
Zapiszmy y = mq + r dla pewnej ustalonej liczby m. Mamy
g mq+r ≡ x
(mod p),
czyli
g mq ≡ xg −r
(mod p).
W nast¦pnym kroku tworzymy tablic¦ warto±ci m i odpowiadaj¡cych im g mq
dla 0 ≤ q ≤ m − 1 oraz warto±ci r i odpowiadaj¡cych im yg −r dla 0 ≤ r ≤
m − 1. Teraz szukamy q oraz r, dla których g mq ≡ xg −r (mod p).
14.5√Przykªad. Obliczymy
log2 22 modulo p = 37. Ustalamy liczb¦ m =
37 − 1 i tworzymy tabele.
6≈
0 1 2 3 4 5
r 0 1 2 3 4 5
2
1 27 26 36 10 11
22 · 19r 22 11 24 12 6 3
Zauwa»amy liczb¦ 11, która jako jedyna powtarza si¦ w dolnym wierszu tabeli. Bierzemy liczby znad 11 i otrzymujemy x = 6 · 5 + 1 = 31.
q
6q
62