TEORIA LICZB. Niech a i b EGOLF]EDPLFDáNRZLW\PLa, b =).



Podobne dokumenty
Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 6a

Dr inż. Robert Wójcik, p. 313, C-3, tel Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska

Przykładowe zadania z teorii liczb

Zadania do samodzielnego rozwiązania

Wybrane zagadnienia teorii liczb

Matematyka dyskretna

Twierdzenie Eulera. Kongruencje wykład 6. Twierdzenie Eulera

Równania wielomianowe

Matematyka dyskretna

Kongruencje twierdzenie Wilsona

Teoria liczb. Magdalena Lemańska. Magdalena Lemańska,

MADE IN CHINA czyli SYSTEM RESZTOWY

1. Wykład NWD, NWW i algorytm Euklidesa.

o partnerstwie publiczno-prywatnym.

Największy wspólny dzielnik Algorytm Euklidesa (także rozszerzony) WZAiP1: Chińskie twierdzenie o resztach

Zastosowania arytmetyki modularnej. Zastosowania arytmetyki modularnej

Spis treści. Przedmowa... 9

Algorytmy w teorii liczb

Algorytm Euklidesa. ZADANIE 1. Oblicz korzystając z algorytmu Euklidesa: (a) NWD(120, 195), (b) NWD(80, 208), (c) NWD(36, 60, 90),

Matematyka dyskretna

Zegar ten przedstawia reszty z dzielenia przez 6. Obrazuje on jak kolejne liczby można przyporządkować do odpowiednich pokazanych na zegarze grup.

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

Matematyka dyskretna

Matematyka dyskretna

Funkcja kwadratowa. f(x) = ax 2 + bx + c = a

Zestaw 2. Definicje i oznaczenia. inne grupy V 4 grupa czwórkowa Kleina D n grupa dihedralna S n grupa symetryczna A n grupa alternująca.

2 Kongruencje 5. 4 Grupy 9. 5 Grupy permutacji Homomorfizmy grup Pierścienie 16

Jan Bień. Modelowanie obiektów mostowych w procesie ich eksploatacji

Kongruencje pierwsze kroki

Pierwiastki pierwotne, logarytmy dyskretne

Teoria liczb. Zajmuje się własnościami liczb, wszystkim całkowitych

Algorytmy i struktury danych. Wykład 4

Arytmetyka. Działania na liczbach, potęga, pierwiastek, logarytm

Piotr 7U\EDáD. Leasing 3RUDGQLN3U]HGVLELRU \

Informatyka A. Algorytmy

Bezpieczeństwo systemów komputerowych

1. Określenie pierścienia

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium Nr 10.

0.1 Pierścienie wielomianów

Grzegorz Bobiński. Matematyka Dyskretna

Liczby całkowite. Zadania do pierwszych dwóch lekcji

Ciała skończone. 1. Ciała: podstawy

Ataki na RSA. Andrzej Chmielowiec. Centrum Modelowania Matematycznego Sigma. Ataki na RSA p. 1

Grzegorz Bobiński. Matematyka Dyskretna

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 15, Kryptografia: algorytmy asymetryczne (RSA)

Rozdział 1. Zadania. 1.1 Liczby pierwsze. 1. Wykorzystując sito Eratostenesa wyznaczyć wszystkie liczby pierwsze mniejsze niż 200.

Analiza kongruencji. Kongruencje Wykład 3. Analiza kongruencji

Kongruencje oraz przykłady ich zastosowań

Funkcja kwadratowa. f(x) = ax 2 + bx + c,

1. PARAMETRY TECHNICZNE WAG NAJAZDOWYCH.

Tematyka do egzaminu ustnego z matematyki. 3 semestr LO dla dorosłych

Algorytm. a programowanie -

Liczby pierwsze na straży tajemnic

Matematyka dyskretna

Podstawowe struktury algebraiczne

Kongruencje. Sławomir Cynk. 24 września Nowy Sącz. Instytut Matematyki Uniwersytetu Jagiellońskiego

ALGORYTMY MATEMATYCZNE Ćwiczenie 1 Na podstawie schematu blokowego pewnego algorytmu (rys 1), napisz listę kroków tego algorytmu:

Zapis stenograficzny (1653) 27. posiedzenie Komisji Spraw Unii Europejskiej w dniu 25 lutego 2005 r.

Indukcja matematyczna

Luty 2001 Algorytmy (8) 2000/2001

Zestaw zadań dotyczących liczb całkowitych

Jarosław Wróblewski Matematyka Elementarna, zima 2012/13

Sumy kwadratów kolejnych liczb naturalnych

Wykład 1. Na początku zajmować się będziemy zbiorem liczb całkowitych

I) Reszta z dzielenia

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 5

Spis treœci :VWS Poziom podstawowy Poziom rozszerzony R]ZL]DQLD áRZQLF]HN Literatura

Pierścień wielomianów jednej zmiennej

Iteracje. Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony.

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 14, Kryptografia: algorytmy asymetryczne (RSA)

Matematyka dyskretna. Andrzej Łachwa, UJ, 2019 Zadania 1-100

Jeśli lubisz matematykę

Matematyka Dyskretna. Andrzej Szepietowski. 25 marca 2004 roku

Algebra Liniowa 2 (INF, TIN), MAP1152 Lista zadań

WYKŁAD 3 (13 MARZEC 2014) LICZBY CAŁKOWITE I RZECZYWISTE. Bartosz Łakomy i Dariusz Dobiesz

Kongruencje i ich zastosowania

Proste programy w C++ zadania

Zapis stenograficzny (1532) 187. posiedzenie.rplvml3rolw\nl6sráhf]qhml=gurzld w dniu 25 listopada 2004 r.

a)wykaż,żejeżeli2 n 1jestliczbapierwszą,to2 n 1 (2 n 1)jestliczbądoskonałą.

ALGORYTMY Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Daniela Spurtacz, klasa 8W, rok szkolny 2018/2019

Funkcje. Materiały pomocnicze do wykładu. przedmiot: Matematyka Dyskretna 1 wykładowca: dr Magdalena Kacprzak

Zapis stenograficzny (1530) 162. posiedzenie.rplvml6dpru]gx7hu\wruldoqhjr i AdmiQLVWUDFML3DVWZRZHM w dniu 25 listopada 2004 r.

Luty 2001 Algorytmy (7) 2000/2001

Elementy teorii liczb. Matematyka dyskretna

Grupy, pierścienie i ciała

1. Równania i nierówności liniowe

Algebra liniowa z geometrią analityczną

Największy wspólny dzielnik dwóch liczb naturalnych ALGORYTM EUKLIDESA

WHILE (wyrażenie) instrukcja;

Zapis stenograficzny (1537) 188. posiedzenie.rplvml3rolw\nl6sráhf]qhml=gurzld w dniu 30 listopada 2004 r.

Zastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA

Algorytmy i struktury danych

Matematyka Dyskretna Zestaw 2

Projekt Era inżyniera pewna lokata na przyszłość jest współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

n = p q, (2.2) przy czym p i q losowe duże liczby pierwsze.

Projekt Era inżyniera pewna lokata na przyszłość jest współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Treść wykładu. Pierścienie wielomianów. Dzielenie wielomianów i algorytm Euklidesa Pierścienie ilorazowe wielomianów

Paweł Gładki. Algebra. pgladki/

Transkrypt:

TEORIA LICZB Niech a i b EGOLF]EDPLFDáNRZLW\PLa, b =). 0yZL VL *H a dzieli b (a jest dzielnikiem b, a jest czynnikiem b), MH*HOL LVWQLHMH WDND OLF]ED FDáNRZLWD c *H b = ac FR R]QDF]D VL symbolem a b. Dla wszystkich a, b, c = zachodzi: a a a b b c a c a b a c x, y = : a (bx + cy) a b b a a = ± b -H*HOLa, b =, a ponadto b 1, to zwyczajne dzielenie a przez b, oznaczane jako a / b, daje w rezultacie iloraz q oraz UHV]WUWDNLH*H a = qb + r, gdzie 0 r < b, SRQDGWR]Dq i rvz\]qdf]rqhmhgqr]qdf]qlh :SURZDG]DVLR]QDF]HQLDr = a mod b oraz q = a div b. a, b = b 0 a div b = a / b a mod b = a - b a / b a, b, c = c a c b c jest wspólnym dzielnikiem a i b 1DMZLNV]\PZVSyOQ\PG]LHOQLNLHPJUHDWHVWFRPPRQGLYLVRUliczb FDáNRZLW\FKa i bmhvwqlhxmhpqdolf]edfdánrzlwdd = gcd(a, b) taka, *H d jest wspólnym dzielnikiem a i b c a c b c d SU]\MPXMHVL*Hgcd(0, 0) = 0 ).

1DMPQLHMV]ZVSyOQZLHORNURWQRFLOHDVWFRPPRQPXOWLSOHliczb FDáNRZLW\FKa i bmhvwqlhxmhpqdolf]edfdánrzlwdd = lcm(a, b) taka, *H a d b d a c b c d c a > 0 b > 0 lcm(a, b) = ab / gcd(a, b) gcd(a, b) = 1 a i bv Z]JOGQLH SLHUZV]H UHODWLYHO\ prime, coprime) -H*HOL MHG\Q\PL GRGDWQLPL G]LHOQLNDPL OLF]E\ FDáNRZLWHM p 2 V liczby 1 i p, to liczba p jest OLF]E SLHUZV] SULPH QXPEHU. W przeciwnym przypadku liczba p jest OLF]E ]ár*rq FRPSRVLWH number). p MHVWOLF]ESLHUZV] p ab p a p b Twierdzenie o liczbach pierwszych: Niech π ( x ) R]QDF]DOLF]EOLF]ESLHUZV]\FK x. Wtedy prawdziwa π MHVW]DOH*QRü lim ( x ) = 1 x x/lnx Dla x 17: x π ( x) > lnx Dla x > 1: x π ( x) < 125506. lnx

Podstawowe twierdzenie arytmetyki:.d*gd OLF]ED FDáNRZLWD n 2 PR*H E\ü SU]HGVWDZLRQD MDNR LORF]\Q GRGDWQLFKFDáNRZLW\FKSRWJOLF]ESLHUZV]\FK n = p 1 e1 p 2 e2... p k ek, gdzie p i V Uy*Q\PL liczbami pierwszymi. Ponadto takie przedstawienie (faktoryzacja) jest jedyne RSUyF]PR*OLZRFL]PLDQ\ NROHMQRFLF]\QQLNyZ -H*HOLa = p 1 e1 p 2 e2... p k ek i b = p 1 f1 p 2 f2... p k fk, gdzie e i 0 i f i 0, to: gcd (a, b) = p 1 min(e1, f1) p 2 min(e2, f2)... p k min(ek, fk) i lcm (a, b) = p 1 max(e1, f1) p 2 max(e2, f2)... p k max(ek, fk) (funkcja min (x, y) PDZDUWRüUyZQPQLHMV]HM]SDU\OLF]E(x, y)]d funkcja max (x, y) PDZDUWRüUyZQZLNV]HM]SDU\OLF]E(x, y)) 3U]\NáDG Niech a = 4864 = 2 8. 19 i b = 3458 = 2. 7. 13. 19. Wtedy: p 1 = 2 e 1 = 8 f 1 = 1 p 2 = 7 e 2 = 0 f 2 = 1 p 3 = 13 e 3 = 0 f 3 = 1 p 4 = 19 e 4 = 1 f 4 = 1 gcd(4864, 3458) = 2 1. 7 0. 13 0. 19 1 = 38 lcm(4864, 3458) = 2 8. 7 1. 13 1. 19 1 = 442624

Funkcja Eulera φ: Dla danej liczby naturalnej n Ν funkcja Eulera φ ( n ) RNUHORQD jest MDNR OLF]ED OLF]E QDWXUDOQ\FK QLH ZLNV]\FK RG n LZ]JOGQLH pierwszych z n. 3U]\NáDG\ φ (1) = 1 (!!!) φ (4) = 2 φ (7) = 6 φ (13) = 12 :ádvqrflixqnfml(xohudφ: -HOLp i qvolf]edplslhuzv]\plwr φ ( p) = p - 1 φ ( p a) = p a - 1 (p - 1), gdzie a Ν. φ ( pq ) = (p - 1)(q - 1) -H*HOLa i bvz]jogqlh pierwsze to φ ( ab) = φ ( a) φ ( b). -H*HOL n = p 1 e1 p 2 e2... p k ek MHVW UR]NáDGHP OLF]E\ n na czynniki pierwsze (IDNWRU\]DFM), to: 'ODOLF]EFDáNRZLW\Fh n 5: φ( n) = n 1 1 1 1 1... 1 p1 p2 pk n φ( n) > 6 lnln n a i b VOLF]EDPLQDWXUDOQ\PL a > b gcd (a, b) = gcd (b, a mod b)

Algorytm Euklidesa do wyznaczania gcd(a, b): =DáR*HQLH a i b VFDáNRZLW\PLOLF]EDPLQLHXMHPQ\PLSRQDGWRa b. Pseudokod algorytmu: while (b 0) do { r : = a mod b; a : = b; b : = r; } return (a) 3U]\NáDG Obliczenie gcd(4864, 3458): krok 1: a = 4864 b = 3458 r = 1406 krok 2: a = 3458 b = 1406 r = 646 krok 3: a = 1406 b = 646 r = 114 krok 4: a = 646 b = 114 r = 76 krok 5: a = 114 b = 76 r = 38 krok 6: a = 76 b = 38 r = 0 (krok 7): a = 38 b = 0 gcd (4864, 3458) = 38 Algorytm Euklidesa w wersji rekurencyjnej: Euclid(a, b) { if (b = 0) then return (a); else return Euclid(b, a mod b); }

Rozszerzony algorytm Euklidesa XPR*OLZLD REOLF]DQLH FDáNRZLWR- OLF]ERZ\FKZVSyáF]\QQLNyZx i y, WDNLFK*H d = gcd (a, b) = ax + by. Pseudokod rozszerzonego algorytmu Euklidesa: Ext_Euclid (a, b) { if (b = 0) then return (a, 1, 0); (d, x, y ) : = Ext_Euclid (b, a mod b); (d, x, y) : = (d, y, x - a / b y ); return (d, x, y); } KONGRUENCJE Niech a, b i n EGOLF]EDPLFDáNRZLW\PLa, b, n =) oraz n > 0. Notacja: a b (mod n) R]QDF]D *H a i b SU]\VWDM GR VLHELH ZHGáXJ PRGXáX n V kongruentne modulo n)luyzqrzd*qdmhvwwhpx*hn (a - b). Relacja QRVLQD]Zkongruencji. 3U]\NáDG\ 19 7 (mod 12) 42-9 (mod 17) -14 26 (mod 4)

1LHNWyUHZáDFLZRFLUHODFMLNRQJUXHQFML a b (mod n) a mod n = b mod n a a (mod n) a b (mod n) b a (mod n) a b (mod n) b c (mod n) a c (mod n) a b (mod n) c d (mod n) a ± c b ± d (mod n) a c b d (mod n) a b (mod n) r n a b (mod r) a b (mod n) a b (mod m) gcd(m, n) = 1 a b (mod mn) d a d b d n ( a b (mod n) a / d b / d (mod n / d )) =ELyU ZV]\VWNLFK OLF]E FDáNRZLW\FK NRQJUXHQWQ\FK GR a modulo n QD]\ZDVLNODVUyZQRZD*QRFLOLF]E\D Dla ustalonego n zbiór = MHVW SRG]LHORQ\ SU]H] UHODFM NRQJUXHQFML modulo n na (ro]áf]qhnodv\uyzqrzd*qrfl a = qn + r 0 r < n a r (mod n) Wniosek:.D*GD OLF]ED FDáNRZLWD a jest kongruentna modulo n do unikalnej OLF]E\FDáNRZLWHM]]DNUHVXRG0 do (n - 1), zwanej QDMPQLHMV]UHV]W a modulo n ; a i r QDOH* GR WHM VDPHM NODV\ UyZQRZD*QRFL NWyUD PR*HE\üUHSUH]HQWRZDQDSU]H]WUHV]W Zbiór = n, zwany ]ELRUHPOLF]EFDáNRZLW\FKPRGXORQ, jest zbiorem liczb { 0, 1, 2,..., n-1 }. W zbiorze tym dodawanie, odejmowanie i PQR*HQLHZ\NRQ\ZDQHVPRGXORn. 3U]\NáDG W zbiorze = 21 : 7 + 18 = 4 7-18 = 10 7. 18 = 0 /LF]ED FDáNRZLWD x = n jest (multiplikatywnym) elementem odwrotnym GROLF]E\FDáNRZLWHMa = n ax 1 (mod n).

Dla elementu odwrotnego do azsurzdg]dvlr]qdf]hqlha -1. -H*HOL LVWQLHMH HOHPHQW RGZURWQ\ WR MHVW RQ XQLNDOQ\ W]QRNUHORQ\ jednoznacznie), a ponadto: a a -1 (mod n) = 1 -H*HOLb = n jest odwracalne, to wynik operacji dzielenia a przez b modulo n MHVWRNUHORQ\SU]H]LORF]\Qa b -1 (mod n). a = n jest odwracalne gcd (a, n) = 1 5R]V]HU]RQ\ DOJRU\WP (XNOLGHVD XPR*OLZLD REOLF]DQLH HOHPHQWX odwrotnego w zbiorze = n. :W\PFHOXZ\VWDUF]\]DXZD*\ü*HMHOLa i b VZ]JOGQLHSLHUZV]H to : d = gcd (a, b) = ax + by = 1 (*) d, x i y V ]ZUDFDQH SU]H] IXQNFM Ext_Euclid Z\ZRáDQ ] parametrami a i b. Równanie (*)MHVWUyZQRZD*QHUyZQDQLX (ax + by) 1 (mod b) (**) DSRQLHZD*y MHVWOLF]EFDáNRZLWZLF (by) 0 (mod b) DVWG ax 1 (mod b) czyli: x a -1 (mod b)

Niech d = gcd (a, n). Równanie ax b (mod n) PDUR]ZL]DQLHDx = n d b. SRQDGWRUR]ZL]DW\FKMHVWGRNáDGQLHd]DZV]\VWNLHUR]ZL]DQLD VNRQJUXHQWQHPRGXOR(n / d)) 3U]\NáDG 3x 2 (mod 5) 3. 0 (mod 5) = 0 3. 1 (mod 5) = 3 3. 2 (mod 5) = 6 (mod 5) = 1 3. 3 (mod 5) = 9 (mod 5) = 4 3. 4 (mod 5) = 12 (mod 5) = 2 d = gcd (3, 5) = 1 1 2 MHGQRUR]ZL]DQLH: x = 3-1. 2 (mod 5) = 2. 2 (mod 5) = 4 3U]\NáDG 3x 5 (mod 6) d = gcd (3, 6) = 3 QLHSUDZGD*H 3 5 EUDNUR]ZL]D 3. 0 (mod 6) = 0 3. 1 (mod 6) = 3 3. 2 (mod 6) = 6 (mod 6) = 0 3. 3 (mod 6) = 9 (mod 6) = 3 3. 4 (mod 6) = 12 (mod 6) = 0 3. 5 (mod 6) = 15 (mod 6) = 3 3U]\NáDG 3x 3 (mod 6) d = gcd (3, 6) = 3 3 3 WU]\UR]ZL]DQLD: x 1 = 1, x 2 = 3, x 3 = 5 n / d = 2 x 1 x 2 x 3 (mod 2)

&KLVNLHWZLHUG]HQLHRUHV]WDFK&KLQHVHUHPDLQGHUWKHRUHP-CRT): -H*HOLOLF]E\FDáNRZLWHn 1, n 2,..., n k VSDUDPLZ]JOGQLHSLHUZV]HWR XNáDGUyZQD x a 1 (mod n 1 ) x a 2 (mod n 2 )... x a k (mod n k ) PDMHGQR]QDF]QHUR]ZL]DQLHZ]ELRU]H= n, gdzie n = n 1 n 2... n k. Algorytm Gaussa jest jednym ze skutecznych algorytmów UR]ZL]\ZDQLDSRZ\*V]HJRXNáDGXUyZQD = k i = 1 x anm i i imod n gdzie: N i = n / n i i M i = N -1 i mod n i ]D]áR*RQRüREOLF]HQLRZD algorytmu: O (( log 2 n) 2 ). 3U]\NáDG x 3 (mod 7) x 7 (mod 13) 5R]ZL]DQLHZJDOJRU\WPX*DXVVD n 1 = 7 n 2 = 13 n = 7. 13 = 91 N 1 = 91 / 7 = 13 N 2 = 91 / 13 = 7 M 1 = 13-1 mod 7 = 6-1 mod 7 = 6 NODVDUyZQRZD*QRFL M 2 = 7-1 mod 13 = 2 x = (3. 13. 6 + 7. 7. 2) mod 91 = (234 + 98) mod 91 = 332 mod 91 = 59 mod 91 = 59

:D*Q\ZQLRVHNZ\QLNDMF\]&57 -H*HOLgcd (n 1, n 2 ) = 1, to para kongruencji: x a (mod n 1 ) x a (mod n 2 ) PDMHGQR]QDF]QHUR]ZL]DQLH x a (mod n 1 n 2 ) *UXSPXOWLSOLNDW\ZQ= n jest zbiór: = n = { a = n : gcd (a, n) = 1 }. :V]F]HJyOQRFLJG\n MHVWOLF]ESLHUZV] = n = { a = n : 1 a n - 1 }. 5]GHm = n jest liczba elementów tego zbioru, czyli = n. 3UDZG]LZDMHVW]DOH*QRü_= n = φ ( n ). Twierdzenie Eulera: n 2 a = * n a φ ( n ) 1 (mod n) (n MHVWLORF]\QHPGZyFKUy*Q\FKOLF]ESLHUZV]\FK r s(mod φ(n)) a r a s (mod n) Wniosek: :\NáDGQLNL SRWJ PRJ E\ü Z WDNLP SU]\SDGNX redukowane mod φ(n).

Ä0DáH WZLHUG]HQLH)HUPDWD Niech peg]lholf]eslhuzv]zwhg\ a = * p : a p - 1 1 (mod p) :QLRVNL]ÄPDáHJR WZLHUG]HQLD)HUPDWD a p a (mod p) n m (mod p - 1) a n a m (mod p) 3U]\NáDG]DVWRVRZDQLD =QDOH(ü RVWDWQL F\IU OLF]E\ 21000000 w systemie zapisu liczb FDáNRZLW\FKRSRGVWDZLH7. p = 7 p - 1 = 6 1000000 4 (mod 6) 21000000 (24 = 16) 2(mod 7) D ]DWHP RVWDWQL F\IU UHSUH]HQWDFML OLczby 21000000 w systemie zapisu o podstawie 7 jest cyfra 2. àf]qlhredwzlhug]hqldv]qdqhmdnrtwierdzenie Fermata-Eulera, ]DMHGQ]LFKNRQVHNZHQFMLMHVW]DOH*QRü a -1 a φ (n)-1 (mod n) 5]GHPOLF]E\D = * n jest najmniejsza liczba naturalna t = ord(a) WDND*H a t 1 (mod n) :D*QD]DOH*QRü ord(a) φ (n) Wynika ona z implikacji: a s 1 (mod n) ord(a) s

3U]\NáDG Niech n = 15. Wtedy =15 = { 1, 2, 4, 7, 8, 11, 13, 14 }. =15 = φ (15) = φ (3) φ (5) = 2. 4 = 8 a 1 a 2 a 3 a 4 ord(a) 1 1 2 4 8 1 4 4 1 2 7 4 13 1 4 8 4 2 1 4 11 1 2 13 4 7 1 4 14 1 2 3U]\NáDG Niech n = 7. Wtedy =7 = { 1, 2, 3, 4, 5, 6 }. =7 = φ (7) = 6 a 1 a 2 a 3 a 4 a 5 a 6 ord(a) 1 1 2 4 1 3 3 2 6 4 5 1 6 4 2 1 3 5 4 6 2 3 1 6 6 1 2 Niech a =n. ord(a) = φ (n) a jest generatorem (generator, primitive element) grupy multiplikatywnej =n =n ma generator =n jestpxowlsolndw\zqjuxsf\nolf]q

:ádflzrfljhqhudwruyz= * n : = * n ma generator n = 2, 4, p k lub 2p k, gdzie pmhvwqlhsdu]\vw OLF]ESLHUZV]]Dk 1 p MHVWOLF]ESLHUZV] = * p ma generator a jest generatorem = * n = * n = { a i mod n : 0 i φ (n) - 1} a jest generatorem = * n (b = a i mod n jest generatorem = * n gcd( i, φ (n)) = 1) ]WHJRZ\QLNDWDN*H*HOLF]EDJHQHUDWRUyZ= * n wynosi Φ (Φ (n))) a jest generatorem = * n a φ (n) / p 1 (mod n) GODND*GHMOLF]E\ pierwszej pegfhmg]lhoqlnlhpφ (n) Niech b =n. x = n : x 2 b (mod n) b jest UHV]WNZDGUDWRZPRGXORQ (quadratic residue modulo n), albo inaczej: kwadratem modulo n (square modulo n). -H*HOLWDNLHx nie istnieje b jest QLHUHV]WNZDGUDWRZPRGXORQ Q n Q n - zbiór wszystkich reszt kwadratowych modulo n - zbiór wszystkich niereszt kwadratowych modulo n 3RQLHZD*0 =* n ZLF0 Q n oraz 0 Q n p - nieparzysta liczba pierwsza, a - generator =* p. (b MHVW UHV]W NZDGUDWRZ modulo p b = a i mod p, gdzie i MHVW QLHXMHPQ SDU]\VWOLF]EFDáNRZLW). Z SRZ\*V]HJRZ\QLND Q p = (p - 1) / 2 oraz Q p = (p - 1) / 2

3U]\NáDG a = 3 jest generatorem =7. a 0 a 1 a 2 a 3 a 4 a 5 1 3 2 6 4 5 Q p = { 1, 2, 4 } Q p Sprawdzenie: = { 3, 5, 6 } 1 2 1 (mod 7) 2 2 4 (mod 7) 3 2 2 (mod 7) 4 2 2 (mod 7) 5 2 4 (mod 7) 6 2 1 (mod 7) (n = pq) (p i q - liczby pierwsze) (b = NZDGUDWRZ modulo n (b Q p ) (b Q q )) n MHVWUHV]W =SRZ\*V]HJRZ\QLND Q n = Q p. Q q = (p - 1)(q - 1) / 4 oraz Q n = 3 (p - 1)(q - 1) / 4 Niech b Q n. x = n VSHáQLD]DOH*QRüx 2 b (mod n) x jest pierwiastkiem kwadratowym z b modulo n (square root). Liczba pierwiastków kwadratowych: (p MHVWQLHSDU]\VWOLF]ESLHUZV]) (b Q p ) b PDGRNáDGQLH dwa pierwiastki kwadratowe modulo p Niech n = p 1 e1 p 2 e2... p k ek, gdzie p i VUy*Q\PL QLHSDU]\VW\PL OLF]EDPLSLHUZV]\PL]De i 1. Wtedy reszta kwadratowa b Q n PDGRNáDGQLH2 k Uy*Q\FKSLHUZLDVWNyZNZDGUDWRZ\FKmodulo n.

3U]\NáDG Q p = { 1, 2, 4 } jest zbiorem reszt kwadratowych dla =* 7 : Pierwiastkami kwadratowymi z 4 modulo 7 VOLF]E\2 i 5. 3U]\NáDG Niech n = p 1 p 2 = 3. 5 = 15. =3 = { 1, 2 }. =3 = φ (3) = 2. a 1 a 2 ord(a) 1 1 2 1 2 Jedynym generatorem =3 jest liczba 2. 2 0 2 1 1 2 Q 3 = { 1 } jest zbiorem reszt kwadratowych dla =* 3. =5 = { 1, 2, 3, 4 }. =5 = φ (5) = 4. a 1 a 2 a 3 a 4 ord(a) 1 1 2 4 3 1 4 3 4 2 1 4 4 1 2 Generatorami =5 VOLF]E\2 i 3. 2 0 2 1 2 2 2 3 1 2 4 3 3 0 3 1 3 2 3 3 1 3 4 2 Q 5 = { 1, 4 } jest zbiorem reszt kwadratowych dla =* 5.

(UWAGA: 1 4 (mod 3) - a zatem jako element tej samej klasy UyZQRZD*QRFL4 Q 3 ) =15 Q 15 = Q 3. Q 5 = 1. 2 = 2 = { 1, 2, 4, 7, 8, 11, 13, 14 } 1 2 1 (mod 15) 2 2 4 (mod 15) 4 2 1 (mod 15) 7 2 4 (mod 15) 11 2 1 (mod 15) 8 2 4 (mod 15) 14 2 1 (mod 15) 13 2 4 (mod 15) Q 15 = { 1, 4 } jest zbiorem reszt kwadratowych dla =* 15. Liczba 1 ma cztery pierwiastki kwadratowe modulo 15: 1, 4, 11 i 14. Liczba 4 ma cztery pierwiastki kwadratowe modulo 15: 2, 7, 8 i 13. Niech p EG]LH QLHSDU]\VW OLF]ESLHUZV] ]D a OLF]E FDáNRZLW Symbol Legendre a MHVWRNUHORQ\QDVWSXMFR: 0, gdy pa a = 1, gdy a Q p 1, gdya Q :ádflzrflv\perox/hjhqguh D Niech p EG]LHQLHSDU]\VWOLF]ESLHUZV]]Da, b =. p p :V]F]HJyOQRFL :\QLNDVWG*H 1 = 1 p a p a ( p 1)/ 2 (mod p) 1 p = ( 1) ( )/ p 1 2 p 1 (mod 4) -1 Q p oraz p 3 (mod 4) -1 Q p

:\QLNDVWG*H a =p 2 a p ab p a b = p p = 1 a b (mod p) a b = p p 2 p = ( ) ( )/ p 1 2 1 8 :\QLNDVWG*H p 1 (mod 8) p 7 (mod 8) oraz p 3 (mod 8) p 5 (mod 8) 2 = 1 p 2 = 1 p q MHVWQLHSDU]\VWOLF]ESLHUZV]Uy*Q od p :\QLNDVWG*H p 3 (mod 4) q 3 (mod 4) p q = q ( 1) p ( p 1)( q 1)/ 4 p q = q p w przeciwnym przypadku p q = q p

Uogólnieniem symbolu Legendre a dla nieparzystych liczb FDáNRZLW\FKnNWyUHQLHPXV]E\üOLF]bami pierwszymi, jest symbol Jacobiego. Niech n 3 EG]LHOLF]EQLHSDU]\VWSRVWDFLn = p 1 e1 p 2 e2... p k ek, gdzie p i VUy*Q\PL liczbami pierwszymi. :DUWRüsymbolu Jacobiego: a n = e1 :ádflzrflv\perox-dfrelhjr Niech m 3 i n 3 EG QLHSDU]\VW\PL OLF]EDPL FDáNRZLW\PL D ponadto a, b =. a n e2 a a a p p... p 1 2 { 1,0, 1 } k ek :V]F]HJyOQRFL a n = 0 JFGDQ ab n a b = n n :\QLNDVWG*H a =n 2 a n = 1 a a a = mn m n a b (mod n) a b n = n

1 1 n = :\QLNDVWG*H 1 n = ( 1) ( )/ n 1 n 1 (mod 4) = 1 oraz n 3 (mod 4) n 1 2 1 = 1 n :\QLNDVWG*H n 1 (mod 8) n 7 (mod 8) oraz 2 n n = ( ) ( )/ n 3 (mod 8) n 5 (mod 8) 1 2 18 m n = n ( 1) m 2 1 n = 2 1 n = ( m 1)( n 1)/ 4 :\QLNDVWG*H n 3 (mod 4) m 3 (mod 4) m n = n m w przeciwnym przypadku m n = n m

UWAGA dla symbolu Legendre a: a a Qn n = 1 a dla symbolu Jacobiego: a Qn n = 1 Niech n 3 EG]LHFDáNRZLWOLF]EQLHSDU]\VW 2]QDF]DMF]ELyU a Jn = a n n { = : = 1 } RNUHODVL]ELyUpseudokwadratów (pseudosquares) modulo n: ~ Q n = J n - Q n ~ (n = pq) (p i q - liczby pierwsze) Q n = Q n = (p-1)(q-1)/4 Wniosek: 3RáRZD HOHPHQWyZ ]ELRUX J n WR UHV]W\ NZDGUDWRZH ]D GUXJDSRáRZD- pseudokwadraty. 3U]\NáDG 5R]ZD*P\SRQRZQLHJUXSPXOWLSOLNDW\ZQ=15. a =15 1 2 4 7 8 11 13 14 a 2 mod n 1 4 1 4 4 1 4 1 a 3 1-1 1 1-1 -1 1-1 a 5 1-1 1-1 -1 1-1 1 a 1 1 1-1 1-1 -1-1 15 Q 15 = { 1, 4 } J 15 = { 1, 2, 4, 8 }

/LF]E%OXPDjest liczba postaci n = pq, gdzie p i q VUy*Q\PL liczbami pierwszymi, a ponadto: p 3 (mod 4) i q 3 (mod 4). (n = pq - liczba Bluma) (a Q n ) a ma GRNáDGQLH 4 pierwiastki kwadratowe modulo ndsrqdgwrgrnádgqlhmhghq]qlfkqdoh*\gr Q n i MHVWRQRNUHODQ\MDNRJáyZQ\SLHUZLDVWHNNZDGUDWRZ\z a modulo n (principal square root of a modulo n). 3U]\NáDG p = 3 q = 7 n = 21 (liczba Bluma) Q 21 = { 1, 4, 16 } J 21 = { 1, 4, 5, 16, 17, 20 } Pierwiastkami kwadratowymi z liczby 4 modulo 21 V2, 5, 16 i 19, przy czym liczba 16 MHVWSLHUZLDVWNLHPJáyZQ\P n = pq - liczba Bluma funkcja f : Q n Q n, RNUHORQD]DOH*QRFL f (x) = x 2 mod n MHVW SHUPXWDFM ]D MHM SHUPXWDFM RGZURWQMHVW funkcja: f -1 (x) = x ((p-1)(q-1)+4) / 8 mod n 3U]\NáDG 5R]ZD*P\JUXSPXOWLSOLNDW\ZQ=21. =21 = { 1, 2, 4, 5, 8, 10, 11, 13, 16, 17, 19, 20 } a 1 2 4 5 8 10 11 13 16 17 19 20 1 4 16 4 1 16 16 1 4 16 4 1 a 2 mod21 Q 21 = { 1, 4, 16 } f (x) = x 2 mod 21 f -1 (x) = x ((3-1)(7-1)+4) / 8 mod 21 = x 2 mod 21 = f(x) (inwolucja!!!) x 1 4 16 f(x) 1 16 4

=à2)212û$/*25<70ï::= n.d*g OLF]E FDáNRZLW a = n PR*QD SU]HGVWDZLü Z SRVWDFL reprezentacji binarnej: t i a = 2, gdzie k i { 0, 1 } k i i= 0 Ä'áXJRü UHSUH]HQWDFMLELQDUQHMt PR*QDRV]DFRZDüSU]H]log 2 n. :\QLNDVWG]áR*RQRüRSHUDFMLdodawania i odejmowania w = n : (a ± b) mod n = O ( log 2 n ) Operacja PQR*HQLD PR*H E\ü ]UHDOL]RZDQD SU]H] ]Z\F]DMQH PQR*HQLHGZyFKOLF]EFDáNRZLW\FKDQDVWSQLHZ\]QDF]HQLHUHV]W\] dzielenia iloczynu przez n VWG (a. b) mod n = O (( log 2 n ) 2 ) 0R*QDZ\ND]Dü*Hwyznaczanie elementu odwrotnego a -1 (mod n) zgodnie z rozszerzonym algorytmem Euklidesa prowadzi do oszacowania: a -1 mod n = O (( log 2 n ) 2 ) 2EOLF]DQLH SRWJL FDáNRZLWHM D k mod n, gdzie n > k 0 PR*QD ]UHDOL]RZDüQDSRGVWDZLHQDVWSXMFHJRVSRVWU]H*HQLD k = t k i i= 0 2 i, gdzie k i { 0, 1 } t k k k 2 2 k k a = a i = a a a 2 2 0 0 1 1... i= 0 i t t

3VHXGRNRGDOJRU\WPXSRWJRZDQLD Power (a, k, n) { b : = 1; if (k = 0) then return (b); x : = a; if (k 0 = 1) then b : = a; for i : = 1 until t do { x : = x 2 mod n; if (k i = 1) then b : = x. b mod n; } return (b); } 3U]\NáDG 1DOH*\REOLF]\ü3 8 mod 7. n = 7 a = 3 k = 8 = 1. 2 3 +0. 2 2 + 0. 2 1 + 0. 2 0.URNLZVWSQH b = 1 k 0 x = 3 k 0 1 Kolejne iteracje: i = 1 x = 3 2 mod 7 = 9 mod 7 = 2 k 1 = 0 i = 2 x = 2 2 mod 7 = 4 mod 7 = 4 k 2 = 0 i = 3 x = 4 2 mod 7 = 16 mod 7 = 2 k 3 = 1 b = 2. 1 mod 7 = 2 2GSRZLHG( 3 8 mod 7 = 2 =ár*rqrüsrz\*v]hjrdojru\wpxsrwjrzdqld a k mod n = O (( log 2 n ) 3 )

Do REOLF]DQLD ZDUWRFL V\PEROX -DFRELHJR Z\NRU]\VWDü PR*QD QDVWSXMFZáDFLZRü (n jest nieparzyste) (a = 2 e a 1 ) (a 1 jest nieparzyste) e a a n a a n = n 2 n = n n 1 2 mod 1 ( 1 1 1)( 1)/ 4 ( ) a1 :\QLND VWG UHNXUHQF\MQ\ DOJRU\WP QLH Z\PDJDMF\ IDNWRU\]DFML liczby n R]áR*RQRFLELWRZHMO (( log 2 n ) 2 ): 3VHXGRNRGDOJRU\WPXREOLF]DQLDZDUWRFLV\PEROX-DFRELHJR LV\PEROX/HJHQGUH DJG\QMHVWQLHSDU]\VWOLF]ESLHUZV] Jacobi (a, n) { if (a = 0) then return (0); if (a = 1) then return (1); ; przedstaw a w postaci 2 e a 1, gdzie a 1 jest nieparzyste if ( e jest parzyste ) then ( s : = 1 ); else if (( n 1 (mod 8 )) ( n 7 (mod 8 ))) then ( s : = 1 ); else if (( n 3 (mod 8 )) ( n 5 (mod 8 ))) then ( s : = -1 ); if (( n 3 (mod 4 )) (a 1 3 (mod 4 ))) then ( s : = -s ); n 1 : = n mod a 1 ; return ( s. Jacobi (n 1, a 1 ); } UWAGA: 0LPRL*GODOLF]E\SLHUZV]HMp ZLDGRPR*HOLF]EDniereszt kwadratowych Z\QRVL GRNáDGQLH (p-1)/2, to nie istnieje deterministyczny algorytm wielomianowy Z\]QDF]DMF\ WDN OLF]E QDOH*FGR=p, która jest QLHUHV]WNZDGUDWRZ Natomiast istnieje randomizowany algorytmsrohjdmf\qdnrohmq\fk losowych wyborach elementów z = plreolf]dqlxgodqlfkzduwrfl V\PEROX -DFRELHJR MH*HOL ZDUWRü WD Z\QRVL -1, to niereszta kwadratowa ]RVWDáDZ\]QDF]RQD2F]HNLZDQDOLF]EDLWHUDFMLGODWHJR algorytmu wynosi 2. e

LOGARYTM DYSKRETNY (INDEKS) Niech G EG]LH VNRF]RQ JUXS F\NOLF]Q U]GX n ]D a - generatorem grupy G. Logarytmem dyskretnym (indeksem) z b przy podstawie a jest MHGQR]QDF]QLHRNUHORQDOLF]EDFDáNRZLWD0 x n - 1WDND*H b = a x Logarytm dyskretny oznaczany jest jako log a b. :ádflzrflorjdu\wpxg\vnuhwqhjr Niech a EG]LHJHQHUDWRUHPF\NOLF]QHMJUXS\G U]GXn. Wtedy: b, c G s = log a (bc) = (log a b+log a c) mod n log a (b s ) = slog a b mod n 3U]\NáDG Niech G = =* p ]Da generatorem =* p. Niech ponadto p EG]LHOLF]ESLHUZV]5]GJUXS\Z\QRVLp-1. Dowolny element b =* p PR*QDSU]HGVWDZLüMHGQR]QDF]QLHMDNR b = a i mod p, gdzie 0 i p-2 VWGindeks). b = 1 i = 0 (log a 1 = 0) b = a i = 1 (log a a = 1) (b = a i mod p) (c = a j mod p) bc = (a i + j mod p) bc = a k mod p a k = a i + j mod p k = (i + j) mod φ(p) k = (i + j) mod (p - 1) (na podstawie tw.fermata-eulera) log a (bc) = (log a b+log a c) mod (p - 1) log a (b s ) = (log a b+log a b+...+ log a b) mod (p - 1) = (s log a b) mod (p - 1) s razy