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