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