Matematyka Dyskretna Andrzej Szepietowski 17 marca 2003 roku
Rozdział 1 Teoria liczb 1.1 Dzielenie całkowitoliczbowe Zacznijmy od przypomnienia szkolnego algorytmu dzielenia liczb naturalnych. Podzielmy 1743 przez 12. 1 4 5 1 7 4 3 : 1 2 1 2 5 4 4 8 6 3 6 0 3 W wyniku dzielenia otrzymaliśmy iloraz 145 i resztę 3. Liczby te spełniają równanie 1743 = 145 12 + 3 i reszta jest mniejsza od dzielnika. Podobnie możemy postąpić dla dowolnych liczb naturalnych a i b pod warunkiem, że b 0. Twierdzenie 1.1 Dla dowolnych liczb naturalnych a oraz b > 0 istnieje dokładnie jedna para liczb naturalnych q i r spełniających warunki: a = bq + r 0 r < b q nazywa się ilorazem całkowitoliczbowym a przez b, a r nazywa się reszt a z dzielenia Zauważmy, że iloraz q jest zaokr agleniem w dół normalnego ilorazu q = a/b. Iloraz całkowitoliczbowy liczb a i b bȩdziemy oznaczać przez a b lub a div b. 3
4 Rozdział 1. Teoria liczb a resztę przez a mod b. Przykład 1.2 22 4 = 5 oraz 22 mod 4 = 2, ponieważ 22 = 5 4 + 2 oraz 0 2 < 4. W przypadku, gdy a i b są liczbami całkowitymi iloraz i różnice można róznie definiować. Na przykład w jȩzyku Pascal iloraz dwóch liczb typu całkowitego oznacza siȩ przez a div b i jest to a/b zaokr aglenie ilorazu a/b w dół, gdy a/b jest dodatnie i a/b, zaokr aglenie ilorazu a/b w górȩ, gdy a/b jest ujemne. Reszta, któr a oznacza siȩ przez jest określona wzorem: Mamy wiȩc, na przykład: a mod b, a mod b = a-(a div b)*b. 22 div 4 = 5; (-22)div 4 = -5; 22 div(-4)= -5; (-22)div(-4)= 5; 22 mod 4 = 2; (-22)mod 4 = -2; 22 mod(-4)= 2; (-22)mod(-4)= -2. 1.2 Podzielność liczb Mówimy, że liczba całkowita a 0 dzieli liczbȩ całkowit a b, jeżeli istnieje liczba całkowita z, taka że: b = az. Bȩdziemy to oznaczać przez a b. Zauważmy, że zachodzi wtedy: Liczbȩ a nazywamy dzielnikiem liczby b. Przykład 1.3 3 6, 3 6 oraz 3 0. b mod a = 0. Lemat 1.4 Jeżeli a b oraz a c, to a (b + c) oraz a (b c) Dowód. Jeżeli a b i a c, to istniej a dwie liczby całkowite k i m, takie że: b = ak oraz c = am. Mamy wiȩc: oraz b + c = ak + am = a(k + m) b c = ak am = a(k m) czyli a dzieli b + c oraz b c.
1.3 Relacja kongruencji 1.3. Relacja kongruencji 5 Niech m bȩdzie dowoln a liczb a naturaln a m 0. Powiemy, że dwie liczby całkowite a i b s a równoważne (lub przystaj a) modulo m, jeżeli m (a b). Bȩdziemy wtedy pisać: a = b (mod m). Przykład 1.5 1 = 4 (mod 3), 3 = 0 (mod 3), 1 = 2 (mod 3), 1 = 7 (mod 3). Jeżeli a i b są dodatnie, to a = b same reszty z dzielenia przez m. (mod m) wtedy i tylko wtedy, gdy a i b mają takie Lemat 1.6 Relacja przystawania modulo jest relacj a równoważności, czyli spełnia nastȩpuj ace trzy warunki: zwrotność, dla każdego a zachodzi a = a (mod m), symetriȩ, dla każdego a i b, jeżeli a = b (mod m), to b = a (mod m), przechodniość, dla każdego a, b i c, jeżeli a = b (mod m) i b = c (mod m), to a = c (mod m). Dowód. Udowodnimy tylko przechodniość relacji. Jeżeli m (a b) oraz m (b c), to m ((a b) + (b c)), czyli m (a c). Ponadto relacja modulo jest zgodna z dodawaniem, odejmowaniem i mnożeniem. Twierdzenie 1.7 Jeżeli a = b (mod m) oraz c = d (mod m), to: a + c = b + d (mod m), a c = b d (mod m), ac = bd (mod m). Dowód. Z założenia mamy: z tego zaś łatwo wynika, że m dzieli: m (a b) oraz m (c d), (a + c) (b + d), (a c) (b d) oraz ac bd = a(c d) + d(a b), czyli zachodzi teza twierdzenia. Przykład 1.8 Twierdzenie 1.7 może być użyte do obliczania reszty z dzielenia Jeżeli chcemy policzyć na przykład 1999 mod 3,
6 Rozdział 1. Teoria liczb to pytamy, która z trzech liczb {0, 1, 2} przystaje do 1999 modulo 3. Zróbmy najpierw kilka prostych obserwacji. Po pierwsze: 10 = 1 (mod 3), bo 3 (10 1). Z twierdzenia 1.7 wynika, że każda potȩga liczby dziesiȩć przystaje do 1 modulo 3, czyli: 10 k = 1 (mod 3) dla każdego k. Mamy teraz: 1999 = 1000 + 9 100 + 9 10 + 9 = 1 + 9 + 9 + 9 = 1 (mod 3). Podobnie, dla dowolnej liczby x, jeżeli zapiszemy x w postaci dziesiȩtnej: to x = d i 10 i, x = d i (mod 3), czyli x ma takie same reszty modulo 3 co suma cyfr w zapisie dziesiȩtnym. Przykład 1.9 Aby przekonać się, że 2002 1999 4001999 wystarczy zauważyć, że liczba 2002 jest parzysta, więc także wynik mnożenia powinien byż parzysty. Mówiac inaczej 2002 = 0 (mod 2) oraz 1999 = 1 (mod 2), więc na podstawie twierdzenia 1.7 mamy 2002 1999 = 0 (mod 2), a liczba 4001999 przystaje do jedynki modulo 2. Podobnie możemy się przekonać, że 2002 1999 4001996 wystarczy zauważyć, że w iloczynie 2002 1999 ostatnia cyfra powinno być 8 a nie 6. Inaczej 2002 = 2 (mod 10) oraz 1999 = 9 (mod 10), więc na podstawie twierdzenia 1.7 mamy 2002 1999 = 8 (mod 10), a liczba 4001996 przystaje do 6 modulo 10. 1.4 Klasy abstrakcji Dla relacji przystawania modulo m definiujemy klasy abstrakcji. Dla dowolnej liczby całkowitej x, klasȩ abstrakcji elementu x definiujemy w nastȩpuj acy sposób: [x] = {y y = x (mod m)}. Innymi słowy, klasa abstrakcji liczby x to zbiór wszystkich liczb z ni a równoważnych. Przykład 1.10 Dla m = 3 mamy trzy klasy abstrakcji
1.5. Pierścień Z m 7 [0] = {3k k Z} = {..., 9, 6, 3, 0, 3, 6, 9,...} [1] = {3k + 1 k Z} = {..., 8, 5, 2, 1, 4, 7, 10,...} [2] = {3k + 2 k Z} = {..., 7, 4, 1, 2, 5, 8, 11,...} Zauważmy, że klasy abstrakcji elementów równoważnych pokrywaj a siȩ. Lemat 1.11 Jeżeli x = y (mod m), to [x] = [y]. Dowód. Jeżeli z [x], to z = x (mod m) i z przechodniości relacji z = y (mod m), czyli: z [y], a wiȩc pokazaliśmy, że: [x] [y]. Identycznie pokazujemy zawieranie odwrotne [y] [x]. Nastȩpna ważna własność klas abstrakcji to ich rozł aczność. Lemat 1.12 Jeżeli [x] [y], to [x] = [y], inaczej, dwie klasy abstrakcji [x] i [y] albo s a identyczne, albo s a rozł aczne. Dowód. Przypuśćmy, że klasy [x] i [y] maj a wspólny element z. Wtedy: z = x (mod m) oraz z = y (mod m). Z przechodniości mamy wtedy x = y (mod m), a z lematu 1.11 [x] = [y]. 1.5 Pierścień Z m Klasy abstrakcji relacji modulo m wygl adaj a nastȩpuj aco: [0], [1],..., [m 1]. Dla dowolnego k z przedziału 0 k m 1, klasa [k] jest postaci: [k] = {jm + k j Z} (Z oznacza zbiór liczb całkowitych). Zbiór klas abstrakcji modulo m oznacza siȩ przez Z m. Ponieważ relacja modulo jest zgodna z działaniami dodawania i mnożenia, możemy zdefiniować dodawanie i mnożenie na klasach abstrakcji. Mówi ac w skrócie, aby wykonać działanie na dwóch klasach abstrakcji, wybieramy dowolnych przedstawicieli tych
8 Rozdział 1. Teoria liczb klas i wykonujemy działania na tych przedstawicielach. Dokładniej, dodawanie klas abstrakcji definiujemy nastȩpuj aco: [x] + [y] = [x + y]. Podobnie definiujemy odejmowanie i mnożenie: [x] [y] = [x y], [x] [y] = [x y]. Poniższy lemat pokazuje, że działania te s a dobrze zdefiniowane; że wynik działania na dwóch klasach nie zależy od wyboru reprezentantów. Lemat 1.13 Jeżeli [x] = [y] oraz [u] = [w], to: [x + u] = [y + w], [xu] = [yw] oraz [x u] = [y w]. Dowód. Z założenia mamy: a z twierdzenia 1.7: x = y (mod m) oraz u = w (mod m). [x + u] = [y + w], [x u] = [y w] oraz [xu] = [yw]. Przykład 1.14 Niech m = 3. Dla dowolnych dwóch liczb x [0] i y [1] ich suma x + y należy do [0 + 1] = [1] a iloczyn do [0 1] = [0]. Lemat 1.15 Działania na klasach abstrakcji spełniaj a nastȩpuj ace warunki: [0], [1],..., [n 1] dodawanie oraz mnożenie s a przemienne i ł aczne, klasa [0] jest elementem neutralnym dodawania, to znaczy dla każdego a mamy [a] + [0] = [a], dla każdej klasy [a] istnieje klasa do niej przeciwna [ a], taka że [a] + [ a] = [0], klasa [1] jest elementem neutralnym mnożenia, to znaczy dla dowolnego [x] mamy [x] [1] = [x], mnożenie jest rozdzielne wzglȩdem dodawania, czyli dla każdych trzech klas [x], [y], [z] mamy [x]([y] + [z]) = [x][y] + [x][z]. Zbiór z dwoma działaniami spełniaj acymi powyższe warunki nazywa siȩ pierścieniem przemiennym z jedynk a. Dowód: Udowodnimy tylko rozdzielność: [x]([y] + [z]) = [x][y + z] = [x(y + z)] = [xy + xz] = [xy] + [xz] = [x][y] + [x][z]. Skorzystaliśmy w tym dowodzie z rozdzielności mnożenia wzglȩdem dodawania dla liczb całkowitych.
1.5. Pierścień Z m 9 1.5.1 Pierścień Z 5 Rozważmy zbiór reszt modulo 5. Składa siȩ on z piȩciu klas: [0], [1], [2], [3], [4], dla prostoty bȩdziemy dalej opuszczać nawiasy. Mamy wiȩc zbiór: Z 5 = {0, 1, 2, 3, 4} z dodawaniem i mnożeniem określonym nastȩpuj acymi tabelami: + 0 1 2 3 4 0 0 1 2 3 4 1 1 2 3 4 0 2 2 3 4 0 1 3 3 4 0 1 2 4 4 0 1 2 3 0 1 2 3 4 0 0 0 0 0 0 1 0 1 2 3 4 2 0 2 4 1 3 3 0 3 1 4 2 4 0 4 3 2 1 Zauważmy, że każdy element oprócz zera ma w Z 5 element odwrotny wzglȩdem mnożenia, czyli dla każdego x Z 5 {0} istnieje x 1, taki że xx 1 = 1: 1 1 = 1, 2 1 = 3, 3 1 = 2, 4 1 = 4. Dlatego Z 5 jest ciałem, czyli pierścieniem przemiennym z jedynk a i z odwrotności a wzglȩdem mnożenia. 1.5.2 Pierścień Z 4 Rozważmy teraz pierścień reszt modulo 4: Z 4 = {0, 1, 2, 3}, gdzie dodawanie i mnożenie jest określone nastȩpuj acymi tabelami: + 0 1 2 3 0 0 1 2 3 1 1 2 3 0 2 2 3 0 1 3 3 0 1 2 0 1 2 3 0 0 0 0 0 x 1 0 1 2 3 2 0 2 0 2 3 0 3 2 1 Z 4 nie jest ciałem, ponieważ nie ma w nim elementu odwrotnego do 2. Ponadto w Z 4 mamy: 2 2 = 0, czyli zero można przedstawić jako iloczyn dwóch liczb różnych od zera. Łatwo zauważyć, że jeżeli liczba m jest złożona, m = pq dla 1 < p, q < m, to w pierścieniu Z m mamy pq = 0 i ani p, ani q nie maj a elementów odwrotnych. Przypuśćmy bowiem, że istnieje p 1. Mamy wtedy: 0 = p 1 0 = p 1 (pq) = (p 1 p)q = 1q = q,
10 Rozdział 1. Teoria liczb czyli q = 0, sprzeczność. Tak wiȩc Z m nie jest ciałem, jeżeli m jest liczb a złożon a. W dalszej czȩści tego rozdziału zobaczymy, że jeżeli m jest liczb a pierwsz a, to Z m jest ciałem. 1.6 Najwiȩkszy wspólny dzielnik Dla dwóch liczb całkowitych a i b, ich najwiȩkszy wspólny dzielnik to po prostu najwiȩksza liczba całkowita n, która dzieli a i b. Najwiȩkszy wspólny dzielnik liczb a i b bȩdziemy oznaczać przez NW D(a, b). Na przykład: NW D(4, 6) = 2, NW D(4, 0) = 4. Najwiȩkszy wspólny dzielnik dwóch liczb dodatnich można obliczyć za pomoc a algorytmu Euklidesa, którego najprostsza wersja wygląda następująco: Aby obliczyć najwiȩkszy wspólny dzielnik dwóch dodatnich liczb naturalnych a, b, powtarzamy aż do skutku: jeżeli a = b, to koniec, NW D(a, b) = a, jeżeli a > b, to a := a b, jeżeli a < b, to b := b a. Powyższy algorytm odejmuje od wiȩkszej liczby mniejsz a tak długo, aż liczby bȩd a równe. Wtedy wynikiem działania algorytmu jest wspólna wartość tych liczb. W poniższej tabeli pokazano kolejne kroki działania algorytmu Euklidesa na parze liczb 36 i 15: p q 36 15 21 15 6 15 6 9 6 3 3 3 Tak wiȩc 3 jest najwiȩkszym wspólnym dzielnikiem liczb 15 i 36. Poprawność powyższego algorytmu wynika z prostego faktu, że para a, b ma taki sam zbiór wspólnych dzielników jak para a b, b. Rzeczywiście, jeżeli liczba r jest wspólnym dzielnikiem pary a, b, to r dzieli także a b, czyli r jest wspólnym dzielnikiem pary (a b), b. Na odwrót, jeżeli liczba r jest wspólnym dzielnikiem pary (a b), b, to r dzieli także (a b) + b = a, czyli r jest wspólnym dzielnikiem pary a, b. Jeżeli zechcemy według tego uproszczonego algorytmu policzyć największy wspólny dzielnik dla pary a = 2000001 i b = 2, to algorytm będzie milion razy obliczał a = a b i po tym wszystkim a będzie równe reszcie z dzielenia a przez b, czyli 1. Dlatego częściej stosuje się algorytm, w którym zamiast odejmowania oblicza się resztę z dzielenia większej liczby przez mniejszą i robi się to tak długo, aż otrzymamy zero.
1.7 Algorytm Euklidesa 1.7. Algorytm Euklidesa 11 Algorytm Euklidesa Aby obliczyć najwiȩkszy wspólny dzielnik dwóch dodatnich liczb naturalnych a, b, powtarzamy aż do skutku: jeżeli a = 0 lub b = 0 to koniec, NW D(a, b) = a + b, jeżeli a > b, to a := a mod b, jeżeli a < b, to b := b mod a. Powyższy algorytm oblicza resztę z dzielenia wiȩkszej liczby przez mniejsz a tak długo, aż otrzyma zero. Wtedy wynikiem działania algorytmu jest ta druga liczba (jeżeli a = 0, to a + b = b, a jeżeli b = 0, to a + b = a). W poniższej tabeli pokazano kolejne kroki działania algorytmu Euklidesa na parze liczb 36 i 15: p q 36 15 6 15 6 3 0 3 Tak wiȩc 3 jest najwiȩkszym wspólnym dzielnikiem liczb 15 i 36. W uproszczonej wersji jȩzyka Pascal algorytm Euklidesa można zapisać w nastȩpuj acy sposób: p:=a;q:=b; while p*q<>0 do if p>q then p:=p mod q else q:=q mod p; NWD(a,b):=p+q Poprawność algorytmu Euklidesa wynika z poniższego lematu. Lemat 1.16 Niech p i q bȩd a dwoma liczbami naturalnymi i niech 0 < q < p. Wtedy para p, q ma taki sam zbiór wspólnych dzielników jak para p mod q, q. Dowód. Z definicji ilorazu i reszty mamy p = (p q) q + p mod q Jeżeli liczba r jest wspólnym dzielnikiem pary p, q, to r dzieli także resztę p mod q, czyli r jest wspólnym dzielnikiem pary (p mod q), q. Na odwrót, jeżeli liczba r jest wspólnym dzielnikiem pary (p mod q), q, to r dzieli także p, czyli r jest wspólnym dzielnikiem pary p, q.
12 Rozdział 1. Teoria liczb Tak wiȩc po każdej iteracji pȩtli while para p, q ma taki sam zbiór wspólnych dzielników, a wiȩc także taki sam najwiȩkszy wspólny dzielnik. Na końcu, gdy p = 0 lub q = 0, NW D(p, q) = p + q, czyli jest równy tej drugiej liczbie. Należy jeszcze pokazać, że dla każdej pary dodatnich liczb naturalnych a i b algorytm zatrzyma siȩ. Ale to wynika z faktu, że po każdej iteracji pȩtli while liczba max{p, q} jest coraz mniejsza, a ponieważ jest to zawsze liczba naturalna dodatnia, wiȩc nie może zmniejszać siȩ w nieskończoność. Twierdzenie 1.17 Niech a i b bȩd a dwoma dodatnimi liczbami naturalnymi i niech d = NW D(a, b). Wtedy istniej a liczby całkowite x i y, takie że: xa + yb = d, lub mówi ac inaczej, d jest kombinacj a całkowitoliczbow a liczb a i b. Dowód. Pokażmy, że wszystkie wartości, jakie przyjmuj a zmienne p i q w trakcie wykonywania algorytmu Euklidesa, s a całkowitoliczbowymi kombinacjami liczb a i b. Na pocz atku, gdy p = a i q = b, mamy: p = 1a + 0b, q = 0a + 1b. Załóżmy teraz, że po i-tej iteracji pȩtli p > q oraz że zachodzi: p = x p a + y p b, q = x q a + y q b. Wtedy w (i + 1) iteracji p bȩdzie pomniejszone o q (p q) i bȩdziemy mieli: oraz p = (x p x q (p q))a + (y p y q (p q))b q = x q a + y q b. Z tego wynika, że także ostateczna wartość d jest całkowitoliczbow a kombinacj a liczb a i b. Algorytm Euklidesa można tak zmodyfikować, aby oprócz najwiȩkszego wspólnego dzielnika NW D(a, b), wyliczał także liczby x i y, takie że: Oto ten algorytm w jȩzyku Pascal: p:=a;q:=b; xp:=1;yp:=0; xq:=0;yq:=1; while p<>q do xa + yb = NW D(a, b).
1.7. Algorytm Euklidesa 13 if p>q then begin p:=p-q; xp:=xp-xq*(p div q); yp:=yp-yq*(p div q) end else begin q:=q-p; xq:=xq-xp*(q div p); yq:=yq-yp*(q div p) end; NWD(a,b):=p; x:=xp,y:=yp W poniższej tabeli pokazano kolejne kroki działania rozszerzonego algorytmu Euklidesa na parze liczb 36 i 15: p q xp yp xq yq 36 15 1 0 0 1 6 15 1-2 0 1 6 3 1-2 -2 5 0 3 5-12 -2 5 Tak wiȩc liczbȩ 3 można przedstawić jako kombinacjȩ liczb 15 i 36 w nastȩpuj acy sposób: 3 = ( 2) 36 + (5) 15. Zauważmy, że jeżeli jakaś liczba r dzieli liczby a i b, to dzieli także każd a ich kombinacjȩ całkowit a xa + yb, a wiȩc dzieli także najwiȩkszy wspólny dzielnik N W D(a, b). Udowodniliśmy poniższy lemat. Lemat 1.18 NW D(a, b) jest podzielny przez każdy wspólny dzielnik liczb a i b. Z lematu 1.18 wynika, że najwiȩkszy wspólny dzielnik NW D(a, b) może być równoważnie zdefiniowany jako taki wspólny dzielnik liczb a i b, który jest podzielny przez każdy wspólny dzielnik a i b. Lemat 1.19 Liczba d jest najwiȩkszym wspólnym dzielnikiem liczb a i b wtedy i tylko wtedy gdy d bȩdzie wspólnym dzielnikiem a i b oraz istniej a liczby całkowite x i y, takie że d = xa + yb.
14 Rozdział 1. Teoria liczb Dowód Jeżeli NW D(a, b) = d to d a, d b oraz (z twierdzenia 1.17) istniej a liczby całkowite x i y, takie że: d = xa + yb. Na odwrót, jeżeli d dzieli a i b oraz xa + yb = d, to każdy wspólny dzielnik a i b dzieli d, a wiȩc d jest najwiȩkszym wspólnym dzielnikiem a i b. Wniosek 1.20 Jeżeli istniej a liczby całkowite x i y, takie, że xa+yb = 1, to NW D(a, b) = 1. Przykład 1.21 Zastanówmy siȩ, ile wynosi NW D(1998, 2000). Ponieważ: 2000 1998 = 2 oraz 2 jest wspólnym dzielnikiem 1998 i 2000, wiȩc NW D(1998, 2000) = 2. Zastanówmy siȩ teraz, ile wynosi NW D(1999, 2001). Ponieważ: 2001 1999 = 2, wiȩc NW D(1999, 2001) dzieli 2, a ponieważ 2 nie dzieli ani 1999, ani 2001, wiȩc NW D(1999, 2001) = 1. 1.8 Liczby pierwsze i wzglȩdnie pierwsze Dwie liczby naturalne a i b są wzglȩdnie pierwsze, jeżeli NW D(a, b) = 1, a liczba naturalna p jest pierwsza, jeżeli p > 1 i jedynymi dzielnikami naturalnymi p s a jedynka i samo p. Oto wszystkie liczby pierwsze mniejsze od 50: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47. Liczba n > 1, która nie jest pierwsza jest złożona. Istnieją wtedy dwie liczby k, m < n, takie, że n = k m. 1.9 Rozkład liczb na czynniki pierwsze W tym rozdziale zobaczymy, że każd a liczbȩ naturaln a n > 1 można rozłożyć na czynniki pierwsze i że taki rozkład jest jednoznaczny z dokładności a do kolejności czynników. Na przykład: 12 = 2 2 3 i 180 = 2 2 3 2 5. Twierdzenie 1.22 Każd a liczbȩ naturaln a n > 1 można przedstawić jako iloczyn liczb pierwszych (niekoniecznie różnych): n = q 1 q 2 q r.
1.9. Rozkład liczb na czynniki pierwsze 15 Dowód nie wprost. Przypuśćmy, że istnieje liczba naturalna n, której nie można przedstawić jako iloczynu liczb pierwszych i że n jest najmniejsz a tak a liczb a. n nie może być liczb a pierwsz a (bo wtedy n = q 1 ), wiȩc n jest liczb a złożon a, czyli jest postaci: n = km dla k, m < n. Ale ponieważ k i m s a mniejsze od n, wiȩc można je rozłożyć na czynniki pierwsze k = p 1 p 2 p s oraz m = r 1 r 2 r t, ale wtedy, wbrew założeniu, mamy rozkład liczby n na czynniki pierwsze: n = p 1 p 2 p s r 1 r 2 r t. Aby pokazać, że rozkład jest jednoznaczny (z dokładności a do kolejności czynników), musimy najpierw udowodnić dwa lematy. Lemat 1.23 Niech a i b bȩd a dodatnimi wzglȩdnie pierwszymi liczbami naturalnymi. Wtedy dla dowolnej liczby c, jeżeli a bc, to a c. Dowód. Z twierdzenia 1.17, istniej a dwie liczby całkowite x i y, takie że: xa + yb = 1. Pomnóżmy teraz obie strony tego równania przez c: xac + ybc = c, i zauważmy, że a dzieli oba składniki po lewej stronie równania, a wiȩc dzieli praw a stronȩ, czyli c. Lemat 1.24 Jeżeli liczba pierwsza p dzieli iloczyn liczb pierwszych q 1 q 2 q r (niekoniecznie różnych), to wtedy p jest równe jednej z liczb q i. Dowód przez indukcjȩ ze wzglȩdu na r. Dla r = 1 mamy p q 1, a ponieważ q 1 jest pierwsza i p > 1, wiȩc p = q 1. Załóżmy teraz, że teza zachodzi dla r i przypuśćmy, że p dzieli q 1 q 2 q r q r+1. Mamy dwa przypadki: albo p dzieli q r+1, albo nie. W pierwszym przypadku p = q r+1. W drugim przypadku mamy NW D(p, q r+1 ) = 1, bo 1 i q r+1 to jedyne dzielniki liczby q r+1. Z lematu 1.23 wynika teraz, że p dzieli q 1 q 2 q r, a z założenia indukcyjnego, że p = q i dla jakiegoś 1 i r..
16 Rozdział 1. Teoria liczb Udowodnimy teraz, że rozkład liczby na czynniki pierwsze jest jednoznaczny, z dokładności a do kolejności czynników. Twierdzenie 1.25 Każd a liczbȩ naturaln a n > 1 można w dokładnie jeden sposób przedstawić w postaci iloczynu: n = p α1 1 pα2 2... pαr r, gdzie α i s a dodatnimi liczbami naturalnymi, p i s a liczbami pierwszymi oraz zachodzi p 1 < p 2 <... < p r. Dowód. Twierdzenie 1.22 orzeka, że liczba ma rozkład na czynniki pierwsze. Trzeba pokazać, że jest to rozkład jednoznaczny. n = 2 jako liczba pierwsza ma jednoznaczny rozkład. Przypuśćmy, że n jest najmniejsz a liczb a z dwoma różnymi rozkładami: n = p α1 1 pα2 2... pαr r = q β1 1 qβ2 2... qβs s. (1.1) Wtedy z jednej strony p 1 nie może wystȩpować po prawej stronie równania (1.1), bo n/p 1 byłoby mniejsz a liczb a z niejednoznacznym rozkładem. Z drugiej strony p 1 dzieli praw a stronȩ, a wiȩc, z lematu 1.24 wystȩpuje po prawej stronie. Mamy wiȩc sprzeczność. Lemat 1.26 Jeżeli a i b s a wzglȩdnie pierwsze, to ich rozkłady s a rozł aczne, to znaczy maj a rozł aczny zbiór liczb pierwszych wystȩpuj acych w ich rozkładach. 1.10 Elementy odwracalne Definicja 1.27 Element a Z m jest odwracalny, jeżeli istnieje b Z m, takie, że a b = 1 (mod m). b nazywamy elementem odwrotnym do a i oznaczamy przez a 1. (mod 8). Oprócz 3 w Z 8 odwra- Przykład 1.28 3 jest odwracalna w Z 8 bo 3 3 = 1 calne sa także 1, 5 i 7. Lemat 1.29 Liczba a Z m jest odwracalna wtedy i tylko wtedy, gdy NW D(a, m) = 1. Dowód. Jeżeli NW D(a, m) = 1, to istniej a liczby całkowite x i y, takie że: xa + ym = 1, a wiȩc m dzieli ax 1, czyli: ax = 1 (mod m). Teraz wystarczy przyj ać za a 1 tak a liczbȩ z przedziału od 1 do m 1, która przystaje do x modulo m. Z drugiej strony jeżeli istnieje element a 1 odwrotny do a to a 1 a = 1 (mod m)
1.10. Elementy odwracalne 17 czyli dla jakiegoś k. Mamy wiȩc a 1 a 1 = k m a 1 a + ( k)m = 1 czyli NW D(a, m) = 1 (wniosek 1.20). Z powyższego dowodu wynika, że element odwrotny do a można wyliczyć stosuj ac algorytm Euklidesa. Na przykład policzmy element odwrotny do 12 w pierścieniu Z 17. Najpierw zastosujemy algorytm Euklidesa, aby obliczyć x i y, takie że: 12x + 17y = 1. Kolejne kroki algorytmu przedstawiono w tabeli: p q xp yp xq yq 17 12 1 0 0 1 5 12 1-1 0 1 5 2 1-1 -2 3 1 2 5-7 -2 3 1 0 5-7 -12 17 Mamy wiȩc: czyli: ale: 5 17 + ( 7)12 = 1, ( 7)12 = 1 (mod 17), 7 = 10 (mod 17), czyli 10 jest elementem odwrotnym do 12 w pierścieniu Z 17. Definicja 1.30 Zbiór elementów odwracalnych w Z n oznaczamy przez Z n. Przykład 1.31 Z 8 = {1, 3, 5, 7}. Lemat 1.32 Jeżeli liczba m jest pierwsza, to każdy element a Z m, a 0, jest odwracalny, czyli pierścień Z m jest ciałem. Lemat 1.33 Jeżeli a, b Z n to ab Z n oraz a 1 Z n. To oznacza, że Z n z mnożeniem jest grup a. Dowód: Elementem odwrotnym do iloczynu ab jest b 1 a 1, a elementem odrotnym do a 1 jest a.
18 Rozdział 1. Teoria liczb 1.11 Funkcja liniowa Zastanówmy siȩ jak w pierścieniu Z m działa funkcja liniowa f(x) = a x (mod m). Rozpatrzmy najpierw przypadek, gdy a i m s a wzglȩdnie pierwsze, czyli gdy NW D(a, m) = 1. Dla m = 8 i a = 3 wartości funkcji przedstawia tabela x 0 1 2 3 4 5 6 7 3x 0 3 6 1 4 7 2 5 W takim przypadku istnieje a 1 element odwrotny do a i funkcja g(x) = a 1 x, która jest odwrotna do f. Rzeczywiście f(g(x)) = aa 1 x = x. Z tego wynika, że f jest wzajemnie jednoznaczna i "na" oraz, że dla każdego b Z m równanie ax = b ma dokładnie jedno rozwi azanie w pierścieniu Z m, jest ono równe x = a 1 b. Funkcja f jest permutacj a w Z m i wykorzystuje siȩ j a, gdy trzeba wymieszać (przepermutować) elementy Z m. Zauważmy, że f jest także permutacją w Z m. Rzeczywiście, jeżeli x Z m, to na podstawie lematu 1.33 f(x) = ax Z m. Mamy wiȩc Lemat 1.34 Jeżeli N W D(a, m) = 1, to funkcja f(x) = ax jest funkcj a wzajemnie jednoznaczn a w Z m i w Z m. Rozpatrzmy teraz przypadek, gdy a i m nie s a wzglȩdnie pierwsze, czyli gdy NW D(a, m) = d > 1. Dla m = 8 i a = 6 wartości funkcji przedstawia tabela x 0 1 2 3 4 5 6 7 6x 0 6 4 2 0 6 4 2 Zauważmy, że jeżeli b jest wartości a funkcji f, czyli gdy to istnieje takie k, że ax = b (mod m) ax b = km, a ponieważ d dzieli a i m, to d dzieli b, a wiȩc wartościami funkcji f mog a być tylko liczby podzielne przez d. Lemat 1.35 Jeżeli NW D(a, m) = d oraz d b, to równania oraz ax = b (mod m) (a/d)x = (b/d) (mod m/d) s a równoważne, czyli maj a ten sam zbiór rozwi azań w zbiorze liczb całkowitych.
1.11. Funkcja liniowa 19 Dowód ax = b (mod m) wtedy i tylko wtedy, gdy istnieje k takie że ax b = km, a to zachodzi wtedy i tylko wtedy, gdy istnieje k takie, że (a/d)x (b/d) = k(m/d), czyli wtedy i tylko wtedy, gdy (a/d)x = (b/d) (mod m/d). Przypuśćmy teraz, że d dzieli b i rozwi ażmy równanie w pierścieniu Z m, czyli szukamy takich x {0,..., m 1}, że Z lematu 1.35, to równanie jest równoważne równaniu ax = b (1.2) ax = b (mod m) (1.3) (a/d)x = (b/d) (mod m/d) (1.4) Ale teraz NW D(a/d, m/d) = 1 i równanie (1.4) ma dokładnie jedno rozwi azanie x 0 {0,..., m/d 1} takie że (a/d)x 0 = (b/d) (mod m/d). Ale równania (1.4) i (1.3) s a spełnione także przez liczby x 0, x 0 + m/d, x 0 + 2m/d,..., x 0 + (d 1)m/d. S a to wszystkie liczby ze zbioru {0,..., m 1} spełniaj ace równania (1.4) i (1.3), czyli wszystkie rozwi azania równania (1.2) w pierścieniu Z m. Przykład 1.36 Rozwi ażmy równanie 6x = 9 (mod 15). (1.5) Ponieważ NW D(6, 15) = 3, wiȩc najpierw rozwi azujemy równanie 2x = 3 (mod 5) W Z 5 mamy 2 1 = 3 wiȩc rozwi azaniem jest x 0 = 3 3 = 4. Tak wiȩc rozwi azaniami równaia (1.5) w Z 15 s a liczby 4, 9, 14.
20 Rozdział 1. Teoria liczb 1.12 Szyfry liniowe Przypuśćmy, że mamy tekst zapisany za pomoc a 26 liter alfabetu łacińskiego: a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, i chcemy ten tekst zaszyfrować. W tym celu utożsamiamy zbiór liter z elementami pierścienia Z 26 : a = 0, b = 1, c = 2,..., z = 25, wybieramy dwie liczby a, b Z 26, takie że NW D(a, 26) = 1, i szyfrujemy litera po literze według wzoru: C(x) = ax + b (mod 26). Funkcja deszyfruj aca jest określona wzorem: Rzeczywiście: D(y) = a 1 y a 1 b (mod 26). D(C(x)) = a 1 (ax + b) a 1 b = a 1 ax + a 1 b a 1 b = x. Z tego wynika, że funkcja szyfruj aca C(x) jest wzajemnie jednoznaczna. Przykład 1.37 Wybierzmy a = 23 i b = 20 i zaszyfrujmy słowo matematyka. W tym celu musimy zaszyfrować 6 liter: m, a, t, e, y oraz k. Obliczenia przedstawiono w tabeli: litera x C(x) szyfr m 12 10 k a 0 20 u t 19 15 p e 4 8 i y 24 0 a k 10 16 q Słowo matematyka po zaszyfrowaniu wygl ada tak: kupikupaqu. Jeżeli zaś zastosujemy ten sam szyfr do pocz atkowego zdania z wiersza Lokomotywa Juliana Tuwima: to otrzymamy: stoi na stacji lokomotywa, spewhuspuotwneqekepagu.
1.13. Chińskie twierdzenie o resztach 21 Szyfry liniowe s a bardzo starym wynalazkiem. W prostszej wersji z a = 1 stosował je już Juliusz Cezar. Ich wad a jest to, że bardzo łatwo daj a siȩ łamać. Czasami wystarcza odgadn ać, jak zaszyfrowano dwie litery. Można to zrobić analizuj ac czȩstości wystȩpowania liter w zaszyfrowanym tekście. Przykład 1.38 (kontynuacja przykładu 1.37) W naszym drugim zaszyfrowanym tekście litera e wystȩpuje cztery razy, a litery p i u po trzy razy. Może to nam pomóc w odgadniȩciu, że litera e koduje literȩ o, a litera p koduje literȩ t. Mamy wiȩc dwa równania: Po odjȩciu tych równań stronami mamy: 15 = 19a + b (mod 26), 4 = 14a + b (mod 26). 11 = 5a (mod 26). Korzystaj ac z algorytmu Euklidesa, możemy teraz wyliczyć element odwrotny do 5 w pierścieniu Z 26. Jest to 21, ponieważ: ( 5)5 + 26 = 1 oraz 5 = 21 (mod 26), tak wiȩc: a = 21 11 = 231 = 23 (mod 26). Teraz z drugiego równania możemy wyliczyć b: b = 15 19 23 = 20 (mod 26). 1.13 Chińskie twierdzenie o resztach W starożytnych Chinach generałowie używali pewnego ciekawego sposobu liczenia swoich żołnierzy. Dla kilku niewielkich liczb parami wzglȩdnie pierwszych, na przykład dla: m 1 = 3, m 2 = 5, m 3 = 7, obliczano i zapamiȩtywano reszty z dzielenia liczby żołnierzy przez te liczby. W celu obliczenia reszt kazano żołnierzom ustawić siȩ trójkami, pi atkami i siódemkami. Jeżeli przy nastȩpnym apelu wszystkie trzy reszty były takie same, to znaczyło, że nie brakuje żadnego żołnierza. Zobaczmy, jak ten sposób działa. Weźmy najpierw dwie liczby: m 1 = 2 m 2 = 3. W poniższej tabeli mamy zestawione reszty modulo 2 i 3 liczb od 0 do 5:
22 Rozdział 1. Teoria liczb a a (mod 2) a (mod 3) 0 0 0 1 1 1 2 0 2 3 1 0 4 0 1 5 1 2 Każda z liczb od 0 do 5 = 2 3 1 ma inny zestaw reszt oraz dla każdej pary reszt (a 1, a 2 ), spełniaj acych warunek 0 a 1 < 2, 0 a 2 < 3, istnieje liczba a, taka że: Oczywiście 6 ma takie same reszty jak 0: a 1 = a (mod 2), a 2 = a (mod 3). 0 = 6 (mod 2), 0 = 6 (mod 3), i ogólnie, jeżeli dwie liczby a i b różni a siȩ o wielokrotność liczby 6 = 2 3, czyli: a = b + k 6 dla jakiegoś całkowitego k, to a (mod 2) = b (mod 2), a (mod 3) = b (mod 3). Z tego widać, że sposób chińskich generałów, z liczbami 2 i 3, liczy żołnierzy z dokładności a do piȩciu. Sytuacja jest inna, jeżeli m 1 i m 2 nie s a wzglȩdnie pierwsze. Jeżeli, na przykład, m 1 = 4 i m 2 = 6, to wśród liczb od 0 do 23 = 4 6 1 istniej a takie, które maj a takie same reszty, na przykład 1 i 13: 1 (mod 4) = 13 (mod 4) = 1, 1 (mod 6) = 13 (mod 6) = 1. Ponadto nie istnieje taka liczba a, dla której: 1 = a (mod 4), 0 = a (mod 6). Rzeczywiście, z pierwszej równości wynika, że a powinno być nieparzyste, a z drugiej, że parzyste. Jeżeli jednak m 1 i m 2 s a wzglȩdnie pierwsze, to każda z liczb od 0 do m 1 m 2 1 ma inny zestaw reszt oraz dla każdej pary reszt (a 1, a 2 ), spełniaj acych warunek 0 a 1 < m 1, 0 a 2 < m 2, istnieje liczba a, taka że: zachodzi bowiem poniższe twierdzenie. a 1 = a (mod m 1 ), a 2 = a (mod m 2 ),
1.13. Chińskie twierdzenie o resztach 23 Twierdzenie 1.39 (chińskie twierdzenie o resztach) Niech m 1, m 2,..., m r bȩd a dodatnimi liczbami wzglȩdnie pierwszymi, to znaczy dla każdej pary 1 i < j r mamy NW D(m i, m j ) = 1, oraz niech a 1, a 2,..., a r bȩd a dowolnymi resztami. Wtedy istnieje liczba całkowita a, taka że: a 1 = a (mod m 1 ), a 2 = a (mod m 2 ), (1.6)... a r = a (mod m r ). Ponadto jeżeli liczby a i b s a rozwi azaniami układu kongruencji (1.6), to ich różnica a b dzieli siȩ przez iloczyn wszystkich liczb m i, czyli przez: M = r m i. i=1 Dowód. Najpierw udowodnimy drug a czȩść twierdzenia. Dla każdego 1 i r mamy: a i = a (mod m i ) oraz a i = b (mod m i ). Po odjȩciu stronami tych dwóch równań mamy: czyli 0 = a b (mod m i ), m i (a b), wiȩc każda spośród liczb m i dzieli a b, a skoro liczby m 1... m r s a wzglȩdnie pierwsze, wiȩc także ich iloczyn M dzieli a b. Rzeczywiście, przypuśćmy bowiem, że M ma rozkład M = p α1 1 pα2 2 pαs s. Weźmy teraz dowolne p αi i. Ponieważ rozkłady liczb m 1,..., m r s a rozł aczne, wiȩc p αi i występuje w rozkładzie jakiegoś m j, czyli dzieli m j oraz a b, a wiȩc w rozkładzie liczby a b, liczba p i wystȩpuje z wykładnikiem β α i. Dlatego M dzieli a b. Zobaczymy teraz, że układ (1.6) ma rozwi azanie. Niech M i = M/m i, czyli: M i = m 1 m i 1 m i+1... m r. Ponieważ M i i m i maj a rozł aczne rozkłady, wiȩc NW D(m i, M i ) = 1 oraz istnieje N i, takie że: M i N i = 1 (mod m i ).
24 Rozdział 1. Teoria liczb Weźmy teraz: r a = a i M i N i. i=1 Zauważmy, że jeżeli i j, to m i M j, oraz: a j M j N j = 0 (mod m i ), co daje: a = a i M i N i = a i (mod m i ) dla każdego i, a wiȩc a jest rozwi azaniem układu równań (1.6). Przykład 1.40 Każda z liczb od 0 do 104 = 3 5 7 1 ma inny zestaw reszt wzglȩdem liczb 3, 5 i 7. Tak wiȩc stosuj ac sposób chińskich generałów z liczbami 3, 5, 7 możemy liczyć żołnierzy z dokładności a do 104. Ale sposób chińskich generałów pozwala także stwierdzić, o ile zmieniła siȩ liczba żołnierzy. Przypuśćmy bowiem, że na porannym apelu było x żołnierzy i uzyskano reszty: x 1 = x (mod 3), x 2 = x (mod 5), x 3 = x (mod 7), a na apelu wieczornym było y żołnierzy i otrzymano reszty: y 1 = y (mod 3), y 2 = y (mod 5), y 3 = y (mod 7), wtedy różnica x y spełnia nastȩpuj acy układ kongruencji: x 1 y 1 = x y (mod 3), x 2 y 2 = x y (mod 5), x 3 y 3 = x y (mod 7). Jak widać, chińskie twierdzenie o resztach pozwala wnioskować o dużych liczbach za pomoc a operacji na małych liczbach. Zobaczmy teraz inne zastosowanie tego twierdzenia. Przykład 1.41 Zastanówmy siȩ, ile wynosi reszta z dzielenia liczby M = 1 997 199 919 przez 15. Łatwo można policzyć, że: M = 4 (mod 5) oraz M = 1 (mod 3), a wiȩc: M = 4 (mod 15), ponieważ 4 jest jedyn a liczb a z przedziału 0, 1, 2,..., 14, która posiada reszty 4 = 1 (mod 3) oraz 4 = 4 (mod 5).
1.14 Pierwiastki kwadratowe 1.14. Pierwiastki kwadratowe 25 Definicja 1.42 Liczbȩ y nazywamy pierwiastkiem kwadratowym liczby x w pierścieniu Z m, jeżeli x = y 2 (mod m). Przykład 1.43 W Z 5 pierwiastkami 4 s a 2 i 3, a liczba 2 nie posiada pierwiastka. Zauważmy, że jeżeli y 2 = x (mod m) to (m y) 2 = m 2 2my + y 2 = y 2 = x (mod m), czyli m y = y (mod m), też jest pierwiastkiem x. Lemat 1.44 Jeżeli m jest liczb a pierwsz a i x = y 2, to y i y s a jedynymi pierwiastkami z x. Dowód Jeżeli z 2 = y 2 (mod m), to m dzieli z 2 y 2 = (z y)(z + y), a ponieważ m jest pierwsze to m dzieli z y lub z + y. W pierwszym przypadku z = y (mod m), w drugim z = y (mod m). Przykład 1.45 Tak nie musi być, jeżeli m nie jest liczb a pierwsz a. Na przykład w Z 15 mamy cztery pierwiastki z 1, s a to 1, 4, 11 i 14. Ogólnie rozważmy liczbȩ m która jest iloczynem dwóch różnych liczb pierwszych p > q > 2. Weźmy teraz dowoln a liczbȩ y, dla której oraz Wtedy y mod p = 1 lub y mod p = 1 y mod q = 1 lub y mod q = 1 y 2 mod p = 1 oraz y 2 mod q = 1 czyli z chińskiego twierdzenia o resztach wynika, że y 2 = 1 (mod pq). Ponieważ p > q > 2, to 1 1 (mod p) oraz 1 1 (mod q) i mamy wtedy cztery różne pierwiastki z 1, y 1, y 2, y 3, y 4. S a to liczby dla których y 1 mod p = 1, y 1 mod q = 1, y 2 mod p = 1, y 2 mod q = 1, y 3 mod p = 1, y 3 mod q = 1, y 4 mod p = 1 y 4 mod q = 1. Zauważmy, że y 1 = 1 (mod n) oraz y 4 = 1 (mod n).
26 Rozdział 1. Teoria liczb 1.15 Funkcja Eulera Definicja 1.46 Funkcja Eulera, jest to funkcja, która liczbie m przypisuje φ(m) liczbȩ elementów odwracalnych w Z m. Z definicji przyjmujemy φ(1) = 1. Przykład 1.47 φ(8) = 4, bo w Z 8 odwracalne sa {1, 3, 5, 7}. Podobnie φ(2) = 1, φ(3) = 2, φ(4) = 2, φ(6) = 2, φ(9) = 6. Lemat 1.48 a) Jeżeli p jest liczb a pierwsz a, to dla dowolnego α 1, φ(p α ) = p α 1 (p 1). W szczególności φ(p) = p 1. b) Jeżeli m i n s a wzglȩdnie pierwsze, to φ(m n) = φ(m) φ(n) Dowód: a) Zauważmy że, wśród liczb 0,..., p α wzglȩdnie pierwsze z p α nie s a te, które s a podzielne przez p, jest ich p α /p = p α 1, czyli φ(p α ) = p α p α 1 = p α 1 (p 1). b) Najpierw zauważmy, ze dla dowolnej liczby x, 0 x < mn wtedy i tylko wtedy gdy NW D(x, mn) = 1 NW D(x, m) = 1 oraz NW D(x, n) = 1 a to zachodzi wtedy i tylko wtedy gdy reszty r m = x mod m oraz r n = x mod n spełniaj a warunki NW D(r m, m) = 1 oraz NW D(r n, n) = 1 (1.7) Par reszt (r m, r n ) spełniaj acych warunek (1.7) jest φ(m) φ(n), a z chińskiego twierdzenia o resztach każdej liczbie x, 0 x < mn odpowiada dokładnie jedna para reszt, i na odwrót każdej parze reszt odpowiada jedna liczba. Tak wiȩc liczb wzglȩdnie pierwszych z mn jest φ(m) φ(n). 1.16 Szybkie potȩgowanie Teraz zastanowimy siȩ jak można potȩgować, czyli jak obliczyć a k mod n dla a Z n oraz k N. Pierwszy nasuwaj acy siȩ algorytm potȩgowania polega na k krotnym mnożeniu przez a: y:=1; for i:=0 to k do y:=y*a mod n
1.16. Szybkie potȩgowanie 27 W kryptografii oblicza siȩ potȩgi z wykładnikami posiadaj acymi po kilkaset bitów. Do takich zastosowań powyższy algorytm jest nieprzydatny (wymaga on k mnożeń). Pokażemy teraz jak można potȩgować dużo szybciej. Zauważmy, że i ogólnie a a = a 2, a 2 a 2 = a 4 a 2i a 2i = a 2i+1. Dlatego, aby obliczyć potȩgȩ o wykładniku, który jest potȩg a dwójki k = 2 j należy wykonać y:=a; for i:=1 to j do y:=y*y mod n Przykład 1.49 Aby obliczyć 2 16 w Z 13 obliczmy 2 2 = 2 2 = 4 (mod 13), 2 4 = 4 4 = 3 (mod 13), 2 8 = 3 3 = 9 (mod 13), 2 16 = 9 9 = 3 (mod 13). Jeżeli wykładnik jest sum a potȩg dwójki k = 2 i + 2 j, to a k = a 2i a 2j. Przykład 1.50 Aby obliczyć 2 19 mod 13 trzeba wymnożyć 2 19 = 2 16 2 2 2 1 = 3 4 2 = 11 (mod 13). Zauważmy, że każda liczba naturalna k jest sum a potȩg dwójki k = j d i 2 i, i=1 gdzie d i {0, 1} to cyfry rozwiniȩcia dwójkowego k. Powyższe uwagi sugeruj a nastȩpuj acy algorytm obliczania potȩgi a k. Algorytm szybkiego potęgowania Dane wejściowe: podstawa a oraz wykładnik k=(dj,...,d0) w postaci binarnej. x:=a; y:=1 if d0=1 then y:=y*a mod n for i:=1 to j do x:=x*x mod n; if di=1 then y:=y*x mod n Zmienna x zawiera kolejne potȩgi a o wykładnikach bȩd acych potȩgami 2. Na pocz atku x = a = a 20. Po i tej iteracji pȩtli for x = a 2i. Jeżeli di = 1 to mnożymy y przez x = a 2i. Na końcu y = a d0 a d1 21 a dj 2j = a k.
28 Rozdział 1. Teoria liczb Przykład 1.51 Prześledźmy działanie algorytmu podczas obliczania 2 19 (mod 13). 19 w zapisie dwójkowym ma postać (10011) 2. Poniższa tabela zawiera wartości zmiennej x i y przed wejściem do pętli for i=0) oraz po każdej iteracji. i x y 0 2 2 1 4 8 2 3 8 3 9 8 4 3 11 Zauważmy, że wyniki pośrednie, i ostateczny, należą do Z m i algorytm nie potrzebuje zbyt dużej pamiȩci. Algorytmu tego nie można stosować do obliczania a k w liczbach całkowitych, jeżeli k jest duże, to wynik ostateczny oraz pośrednie bȩdą zbyt duże, żeby mógł siȩ zmieścić w pamiȩci komputera. 1.17 Małe twierdzenie Fermata Twierdzenie 1.52 (Fermata) Niech a Z m, wtedy a φ(m) = 1 (mod m). Dowód Niech a 1, a 2,..., a φ(m) to bȩd a wszystkie elementy Z m. Jeżeli pomnożymy je przez a aa 1, aa 2,..., aa φ(m) to zgodnie z lematem 1.34 otrzymamy te same elementy tylko w innej kolejności. Wymnóżmy teraz elemnty obu ci agów φ(m) i=1 a i = φ(m) i=1 φ(m) aa i = a φ(m) i=1 a i (mod m). Po pomnożeniu przez odwrotność φ(m) i=1 a i otrzymamy tezȩ twierdzenia. Wniosek 1.53 Jeżeli p jest liczb a pierwsz a, to dla każdego a wzglȩdnie pierwszego z p mamy a p 1 = 1 (mod p).
1.18. Szyfry RSA 29 1.18 Szyfry RSA W szyfrach one-pad opisanych w rozdziale o funkcjach boolowskich klucz do szyfrowania jest ten sam co klucz do deszfrowania. W szyfrach liniowych wprawdzie klucze do szyfrowania i deszyfrowania s a różne, ale jaden łatwo można wyliczyć z drugiego. Takie szyfry nazywamy symetrycznymi. Teraz zapoznamy siȩ ze sposobem szyfrowania, w których klucz do szyfrowania może być jawny, nawet ogłaszany publicznie, a klucz do deszyfrowania jest tajny i jest praktycznie niemożliwe wyliczenie klucza tajnego z klucza jawnego. Sposób ten zaproponowali Rivest, Shamir i Adleman. Przypuśćmy, że Alicja chce utworzyć swój klucz. Bierze w tym celu dwie duże liczby pierwsze p i q, każda może zawierać po kilkaset bitów. Tworzy ich iloczyn n = pq. Funkcja Eulera φ(n) = (p 1)(q 1). Nastȩpnie Alicja losuje liczbȩ e, która jest wzglȩdnie pierwsza z φ(n). Skoro NW D(e, φ(n)) = 1 to istnieje liczba d, taka, że ed = 1 (mod φ(n)). Teraz para (e, n) jest jawnym kluczem Alicji i może być publicznie ogłoszona. Para (n, d) jest kluczem prywatnym Alicji, nie powinna go ona nikomu zdradzać. Alicja nie powinna też zdradzać rozkładu liczby n na czynniki. Jeżeli ktoś zna p i q, to może wyliczyć φ(n) oraz d. Przypuśćmy, że Bob chce przesłać Alicji jak aś zaszyfrowan a wiadomość x. Traktujemy tȩ wiadomość jako liczbȩ x < n. (Jeżeli wiadomość jest ci agiem znaków, to kodujemy każdy znak jako 8 bitów i cały ci ag może być traktowany jako liczba w postaci dwójkowej.) Bob szyfruje wiadomość przy pomocy funkcji szyfruj acej C A (x) = x e mod n i przesyła j a Alicji. Alicja odszyfrowuje za pomoc a funkcji deszyfruj acej D A (y) = y d mod n. Pokażemy teraz, że jeżeli NW D(x, n) = 1, to Mamy Ponieważ ed = 1 D A (C A (x)) = x. D A (C A (x)) = x ed mod n. (mod φ(n)), wiȩc istnieje k takie, że ed = 1 + kφ(n), czyli D A (C A (x)) = x 1+kφ(n) = x x kφ(n) (mod n) ale jeżeli NW D(x, n) = 1, to x kφ(n) = (x φ(n) ) k = 1 (mod n). Tak wiȩc D A (C A (x)) = x. Do powyższego potrzebne było założenie, że NW D(x, n) = 1. Ale gdy ktoś trafi na wiadomość x, która nie jest wzglȩdnie pierwsza z n, to Alicja ma pecha, ponieważ wtedy można dokonać rozkładu liczby n i złamać jej szyfr. Łatwo też można pokazać, że C A (D A (x)) = x. Niesymetryczne szyfry daj a nowe możliwości. Można ich na przykład używać do podpisu. Aby podpisać jak aś wiadomość m, Alicja szyfruje j a swoim szyfrem prywatnym D A (m) i jest to podpis wiadomości m. Alicja wysyła Bobowi parȩ (m, D A (m)). Żeby sprawdzić, że wszystko siȩ zgadza Bob szyfruje podpis publicznym kluczem Alicji i sprawdza czy C A (D A (m)) = m.
30 Rozdział 1. Teoria liczb 1.19 Testy pierwszości W tym rozdziale zajmiemy siȩ zagadnieniem jak sprawdzić, czy liczba n jest pierwsza. Możemy sobie wyobrazić, że n ma kilkaset bitów. Jak widać z poprzedniego rozdziału duże liczby pierwsze mog a być przydatne. 1.19.1 Test naiwny Najprostszy sposób to, dzielić n przez kolejne liczby (pierwsze) aż do n. Jednak ten test jest zupełnie niepraktyczny, jeżeli n ma kilkaset bitów. 1.19.2 Test Fermata Drugi test jest algorytmem probabilistycznym i opiera siȩ na twierdzeniu Fermata 1.52. Losujemy liczbȩ a < n i najpierw sprawdzamy, czy NW D(a, n) = 1. Jeżeli a i n nie s a wzglȩdnie pierwsze, i NW D(a, n) = d > 1, to d jest dzielnikiem n i n nie jest pierwsza. Jeżeli NW D(a, n) = 1, to obliczamy a n 1 mod n. Jeżeli a n 1 1 (mod n), to mamy pewność, że n nie jest liczb a pierwsz a. Definicja 1.54 Tak a liczbȩ a, dla której NW D(a, n) = 1 oraz a n 1 1 (mod n) bȩdziemy nazywać świadkiem Fermata dla n, ponieważ zaświadcza ona, że n jest złożona. Jeżeli a n 1 = 1 (mod n), to orzekamy, że liczba n jest pierwsza. W tym przypadku możemy siȩ pomylić. Liczba n może być złożona a mimo to wylosowaliśmy pechowo i a n 1 = 1 (mod n). Ale zachodzi nastȩpuj acy lemat. (mod n), to przynajmniej poło- Lemat 1.55 Jeżeli istnieje takie a Z n, że an 1 1 wa elementów Z n jest świadkiem Fermata dla n. Dowód. Przypuśćmy, że {b 1,..., b k } są to wszystkie elementy Z n, dla których bn 1 i = 1 (mod n). Wtedy po pomnożeniu przez a otrzymamy k elementów {ab 1,..., ab k } różnych miȩdzy sob a (lemat 1.34), z których każdy jest świadkiem Fermata. Rzeczywiście (ab i ) n 1 = a n 1 b n 1 i = a n 1 1 (mod n). A wiȩc świadków złożoności jest co najmniej połowa. Jeżeli n jest pierwsze, to z Twierdzenia Fermata, algorytm zawsze orzeknie dobrze. Z lematu 1.55 wynika, że jeżeli n jest złożona i istnieje świadek Fermata dla n, to takich świadków jest co najmniej połowa, i nasz algorytm pomyli siȩ z prawdopodobieństwem < 1/2. Prawdopodobieństo, to można zmniejszyć poprzez powtórzenie algorytmu r razy, z różnymi wylosowanymi a.
1.19. Testy pierwszości 31 Istniej a jednak liczby złożone n, które nie maj a świadków złożoności. Na przykład n = 561. Kłopot bierze siȩ st ad, że 561 = 3 11 17, a 560 = 561 1 dzieli siȩ przez 2 = 3 1, 10 = 11 1 oraz przez 16 = 17 1. Dlatego dla dowolnego a, jeżeli NW D(a, 561) = 1, to a jest wzglȩdnie pierwsze z 3, 11 i 17 oraz mamy a 560 = (a 2 ) 280 = 1 (mod 3) a 560 = (a 10 ) 56 = 1 (mod 11) a 560 = (a 16 ) 35 = 1 (mod 17) i z chińskiego twierdzenia o resztach wynika, że a 560 = 1 (mod 561) Takie liczby nazywaj a sie liczbami Carmichaela. Pierwsze trzy z nich to 561, 1105 i 1729. Wystȩpuj a one bardzo rzadko, jest ich tylko 255 wśród liczb mniejszych od 100 000 000. 1.19.3 Test Millera-Rabina Zakładamy, że n jest nieparzyste (2 jest jedyn a parzyst a liczb a pierwsz a). Najpierw sprawdzamy, czy n jest potȩg a jakiejś liczby naturalnej. Dla α od 2 do log 2 n sprawdzamy czy n = k α, dla jakiegoś k. W rozdziale o arytmetyce opisano jak za pomoc a binary search stwierdzić, czy liczba jest potȩg a innej liczby. Jeżeli n jest potȩg a, to jest złożona. Ponieważ n jest nieparzyste, to n 1 możemy przedstawić w postaci n 1 = m 2 k. dla jakiegoś m nieparzystego. Losujemy a < n. Sprawdzamy, czy NW D(a, n) = 1 (jeżeli NW D(a, n) > 1, to n jest złożona). Nastȩpnie obliczamy a m mod n. Jeżeli a m mod n = 1, to koniec, stwierdzamy, że n jest pierwsza. Jeżeli a m mod n 1, to obliczamy po kolei a m2 mod n, a m22 mod n,..., a m2k mod n. Zauważmy, że w tym ci agu każda liczba jest kwadratem poprzedniej. Jeżeli wśród tych liczb nie ma jedynki, to z twierdzenia Fermata wynika, że n jest złożona, bo wtedy Jeżeli w tym ci agu jest jedynka, na przykład a m2k = a n 1 1 (mod n). a m2i = 1 (mod n) to patrzymy na poprzedni element x = a m2i 1. Jeżeli x 1, to znależliśmy nietrywialny pierwiastek z 1. Z twierdzenia 1.44 wynika, że jest to możliwe tylko wtedy gdy n nie jest pierwsze. Jeżeli x = 1, to orzekamy, że n jest pierwsze.
32 Rozdział 1. Teoria liczb Łatwo wiȩc widać, że jeżeli n jest pierwsze, to test zawsze odpowie prawidłowo, niezależnie od losowania. Wiadomo też, że jeżeli n jest złożona i nie jest potȩg a liczby pierwszej, to z prawdopodobieństwem wiȩkszym niż 1/2 wykryjemy to (dowód tego faktu wybiega poza zakres tej ksi ażki i pomijamy go). W praktyce stosujemy wszystkie trzy testy na raz. Maj ac nieparzyst a liczbȩ n, najpierw sprawdzamy, czy dzieli siȩ ona przez kilka kolejnych liczb pierwszych p 1, p 2,..., p d. Dobór d zależy od tego jak duże liczby sprawdzamy. W ten sposób eliminujemy duż a czȩść liczb. Zauważmy, że obliczaj ac iloczyn tych liczb x = d i=1 i sprawdzaj ac, czy NW D(x, n) = 1 możemy za jednym razem sprawdzić, czy n dzieli siȩ przez któr aś z tych liczb. Po przejściu pierwszego testu stosujemy test drugi, a gdy liczba n go przejdzie stosujemy test trzeci. Ponieważ liczby Carmichaela s a dość rzadkie, wiȩc drugi test wyeliminuje wiȩkszość liczb złożonych. 1.19.4 Losowanie liczb pierwszych Jeżeli chcemy wyklosować liczbȩ pierwsz a to losujemy nieparzyst a liczbȩ, a mastȩpnie sprawdzamy, czy jest ona pierwsza. Jeżeli nie, to sprawdzamy nastȩpne liczby n + 2, n + 4,... 1.20 Zadania 1. Podziel (oblicz ilorazy i reszty) liczb 175 oraz 1754 przez 11. 2. Dla każdej z liczb:x = 8, 8, 120 oraz 120 znajdź liczbę y {0, 1, 2, 3, 4} taką, że x = y (mod 5). 3. Oblicz: a) (50 51 + 15) mod 7, b) 15 36 mod 7; c) 15 3 (37) 3 mod 7. 4. Oblicz: a) 10 39 mod 11, b) 2 39 mod 5 c) 7 40 mod 10. 5. Przedstaw klasy abstrakcji relacji kongruencji dla m = 6. 6. Jak wyglądają działania dodawania i mnożenia w pierścieniu Z 6 7. W pierścieniu Z 8 wykonaj działania 7 + 6 oraz 7 6. 8. W pierścieniu Z 8 rozwiąż równania: a) 1 + x = 0, b) 1 + x = 2, c) 5 + x = 0, d) 5 + x = 2. p i
1.20. Zadania 33 9. Podaj tabliczkȩ dodawania i mnożenia w ciele Z 7. Podaj elementy odwrotne do 5 i 6 w Z 7. 10. Dla liczb a = 600 i b = 1050 oblicz NW D(a, b) oraz liczby całkowite x i y spełniaj ace równanie xa + yb = NW D(a, b). 11. Oblicz N W D(667, 713). 12. Oblicz N W D(199816, 199819). 13. W pierścieniu Z 5 rozwiąż równania: a) 4 x = 1, b) 4 x = 2. 14. W pierścieniu Z 8 rozwiąż równania: a) 3 x = 1, b) 3 x = 2. 15. W pierścieniu Z 17 rozwiąż równania: a) 8x = 2, b) 9x = 4. 16. W pierścieniu Z 14 rozwiąż równania: a) 6x = 2, b) 6x = 9. 17. Znajdź całkowite rozwi azanie (x, y) spełniaj ace równanie: 17x + 40y = 1. 18. Podaj rozkład na czynniki pierwsze liczb 240 oraz 111. 19. Ile dzielników ma liczba 240? 20. Znajdź elementy odwrotne do wszystkich elementów dwracalnych w Z 12. 21. Przedstaw tabelę funkcji f(x) = 4 x + 5 w pierścieniu Z 13. 22. Przedstaw tabelę funkcji f(x) = 4 x + 5 w pierścieniu Z 12. 23. Rozwiąż układ kongruencji: 3 = a (mod 5), 5 = a (mod 6). 24. Sprawdź, czy 100136 = 200146 (mod 30) 25. Dla jakich par reszt (a 1, a 2 ) istniej a liczby a spełniaj ace układ kongruencji: a 1 = a (mod 4), a 2 = a (mod 6). 26. Które elementy Z 12 są resztami kwadratowymi? 27. Które elementy Z 13 są resztami kwadratowymi? 28. Ile jest pierwiastków z 1 w Z 30? 29. Pokaż,że w Z 105 jest osiem pierwiastków z 1. 30. Przy pomocy algorytmu szybkiego potęgowania oblicz: a) 3 100 mod 13; b)2 100 mod 15. 31. Oblicz: a) φ(24); b) φ(120).
34 Rozdział 1. Teoria liczb 1.21 Problemy 1.21.1 Największy wspólny dzielnik 1. Udowodnij, że każda liczba postaci xa+yb, dla x i y całkowitych, jest wielokrotności a NW D(a, b), i na odwrót, każda wielokrotność NW D(a, b) jest postaci xa + yb, dla jakiś x i y całkowitych. 2. Udowodnij, że N W D(a, b) jest najmniejsz a dodatni a liczb a d, dla której istnieje x i y całkowite, takie że xa + yb = d. 3. Zaprojektuj algorytm obliczania największego wspólnego dzielnika trzech (lub k) liczb. 4. Które z liczb całkowitych można przedstawić w postaci x 10 + y 21 (x i y Z)? 5. Które z liczb całkowitych można przedstawić w postaci x 10 + y 12 (x i y Z)? 1.21.2 Najmniejsza wspólna wielokrotność Niech N W W (a, b) oznacza najmniejsz a wspóln a wielokrotność liczb a i b. 1. Udowodnij, że N W W (a, b) dzieli każd a inn a wspóln a wielokrotność liczb a i b. 2. Pokaż, że NW W (a, b) NW D(a, b) = a b. 3. Jakie liczby całkowite dzielą się jednocześnie przez 24 i przez 54? 1.21.3 Liczby względnie pierwsze Udowodnij, że jeżeli m jest wzglȩdnie pierwsze z a i b, to m jest wzglȩdnie pierwsze z iloczynem tych liczb ab. Jako wniosek udowodnij, że jeżeli m jest wzglȩdnie pierwsze z każd a z liczb m 1,..., m k, to m jest wzglȩdnie pierwsze z iloczynem tych liczb 1.21.4 Liczby pierwsze k m i. 1. Udowodnij, że dla każdego k istnieje ciąg k kolejnych liczb złożonych. i=1 2. Udowodnij, że liczb pierwszych jest nieskończenie wiele. 3. Udowodnij, że jeżeli dwie liczby x i y spełniają warunki: x 2 = y 2 (mod n) oraz x y (mod n) i x y (mod n), to NW D(x+y, n) = d jest nietrywialnym dzielnikiem n.
1.21. Problemy 35 1.21.5 Układ kongruencji Istnieje inny sposób rozwi azywania układu kongruencji. Pokażemy go na przykładzie układu a 1 = a (mod 3), (1.8) a 2 = a (mod 5), Najpierw szukamy dwóch liczb a 01 i a 10 spełniaj acych warunki 0 = a 01 (mod 3), 1 = a 01 (mod 5), 1 = a 10 (mod 3), 0 = a 10 (mod 5), Udowodnij, że rozwi azaniem układu (1.8) jest a = a 1 a 10 + a 2 a 01 (mod 15). Jak policzyć a 01 oraz a 10? Ponieważ 3 i 5 s a wzglȩdnie pierwsze, wiȩc istniej a x i y takie, że 3x + 5y = 1 Pokaż, że jeżeli podstawimy a 01 = 3x (mod 15) oraz a 10 = 5y (mod 15), to bȩdzie dobrze. 1.21.6 Chińskie twierdzenie o resztach Z chińskiego twierdzenia o resztach wynika, że jeżeli N W D(m, n) = 1, to funkcja f(x) = (x mod m, x mod n) stanowi wzajemnie jednoznaczne odwzorowanie pomiȩdzy Z mn a iloczynem kartezjańskim Z m Z n. Na iloczynie kartezjańskim Z m Z n możemy określić działania dodawania i mnożenia w nastȩpuj acy sposób: (a, b) + (c, d) = (a + b, c + d) (a, b) (c, d) = (a b, c d). Łatwo można sprawdzić, że zbiór Z m Z n z tak określonymi działaniami, jest pierścieniem. Ponadto funkcja f spełnia warunki f(x+y) = f(x)+f(y) oraz f(x y) = f(x) (y). 1.21.7 System one-pad System one-pad (porównaj rozdział o funkcjach boolowskich) może być stosowany do ci agów liter alfabetu łacińskiego. Wtedy utożsamiamy litery z liczbami od 0 do 25 i zamiast operacji stosujemy: x + k (mod 26),
36 Rozdział 1. Teoria liczb czyli resztȩ z dzielenia (x + k) przez 26. Jak wygl ada wtedy operacja deszyfrowania? Pokaż, że system one-pad z literami jest równie bezpieczny jak system z dwoma cyframi 0 i 1. 1.21.8 Przestrzeń liniowa Zbiór B = {0, 1} z działaniami xor oraz koniunkcji jest ciałem Z 2. Udowodnij, że zbiór B n jest przestrzeni a liniow a nad ciałem {0, 1}, z jako dodawaniem oraz mnożeniem przez skalar zdefiniowanym przez: 0 x = 0 (tutaj zero po lewej stronie jest zerem z ciała, a zero po prawej stronie jest wektorem zerowym), 1 x = x. 1.21.9 Uogólnienie małego twierdzenia Fermata Udowodnij Twierdzenie 1.56 Niech G będzie dowolną grupa. Wtedy dla dowolnego a G. a G = 1