Teoria liczb - Wkuwanko.pl

Transkrypt

Teoria liczb - Wkuwanko.pl
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
1
1
7
2
5
4
4
4
4
8
6
6
5
3
:
1
2
3
0
3
W wyniku dzielenia otrzymaliśmy iloraz 145 i reszt˛e 3. Liczby te spełniaja˛ równanie
1743 = 145 · 12 + 3
i reszta jest mniejsza od dzielnika. Podobnie możemy postapić
˛ dla dowolnych liczb naturalnych a i b pod warunkiem, że b 6= 0.
Twierdzenie 1.1 Dla dowolnych liczb naturalnych a oraz b > 0 istnieje dokładnie jedna
para liczb naturalnych q i r spełniajacych
˛
warunki:
• a = bq + r
• 0≤r<b
q nazywa si˛e ilorazem całkowitoliczbowym a przez b, a r nazywa si˛e reszta̧ z dzielenia
Zauważmy, że iloraz q jest zaokra̧gleniem w dół normalnego ilorazu q = ba/bc. Iloraz
całkowitoliczbowy liczb a i b bȩdziemy oznaczać przez
a÷b
lub
3
a div b.
4
Rozdział 1. Teoria liczb
a reszt˛e 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 sa˛ 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 ba/bc — zaokra̧glenie ilorazu a/b w dół, gdy a/b jest dodatnie i da/be, —
zaokra̧glenie ilorazu a/b w górȩ, gdy a/b jest ujemne. Reszta, która̧ oznacza siȩ przez
a mod b,
jest określona wzorem:
a mod b = a-(a div b)*b.
Mamy wiȩc, na przykład:
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 6= 0 dzieli liczbȩ całkowita̧ b, jeżeli istnieje liczba całkowita z, taka że:
b = az.
Bȩdziemy to oznaczać przez a|b. Zauważmy, że zachodzi wtedy:
b mod a = 0.
Liczbȩ a nazywamy dzielnikiem liczby b.
Przykład 1.3 3|6, 3| − 6 oraz 3|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 istnieja̧ dwie liczby całkowite k i m, takie że:
b = ak
oraz
c = am.
Mamy wiȩc:
b + c = ak + am = a(k + m)
oraz
b − c = ak − am = a(k − m)
czyli a dzieli b + c oraz b − c.
2
1.3. Relacja kongruencji
5
1.3 Relacja kongruencji
Niech m bȩdzie dowolna̧ liczba̧ naturalna̧ m 6= 0. Powiemy, że dwie liczby całkowite a i
b sa̧ równoważne (lub przystaja̧) modulo m, jeżeli
m|(a − b).
Bȩdziemy wtedy pisać:
a = b (mod m).
Przykład 1.5 1 = 4 (mod 3),
(mod 3).
3 = 0 (mod 3),
−1 = 2 (mod 3),
−1 = −7
Jeżeli a i b sa˛ dodatnie, to a = b (mod m) wtedy i tylko wtedy, gdy a i b maja˛ takie
same reszty z dzielenia przez m.
Lemat 1.6 Relacja przystawania modulo jest relacja̧ równoważności, czyli spełnia nastȩpuja̧ce
trzy warunki:
• zwrotno´
sc´, dla każdego a zachodzi
• symetriȩ, dla każdego a i b, jeżeli
a = a (mod m),
a = b (mod m),
• przechodnio´
sc´, dla każdego a, b i c,
jeżeli
a = b (mod m)
i
b = c (mod m),
to
to
b = a (mod m),
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).
2
Ponadto relacja modulo jest zgodna z dodawaniem, odejmowaniem i mnożeniem.
Twierdzenie 1.7 Jeżeli
a = b (mod m)
a + c = b + d (mod m),
oraz
c = d (mod m),
a − c = b − d (mod m),
to:
ac = bd (mod m).
Dowód. Z założenia mamy:
m|(a − b)
oraz
m|(c − d),
z tego zaś łatwo wynika, że m dzieli:
(a + c) − (b + d),
(a − c) − (b − d) oraz ac − bd = a(c − d) + d(a − b),
czyli zachodzi teza twierdzenia.
2
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:
10k = 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:
X
x=
di · 10i ,
to
x=
X
di
(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, że
2002 · 1999 6= 4001999
wystarczy zauważyć, że liczba 2002 jest parzysta, wi˛ec także wynik mnożenia powinien
byż parzysty. Mówiac
˛ inaczej 2002 = 0 (mod 2) oraz 1999 = 1 (mod 2), wi˛ec na
podstawie twierdzenia 1.7 mamy 2002 · 1999 = 0 (mod 2), a liczba 4001999 przystaje
do jedynki modulo 2. Podobnie możemy si˛e przekonać, że
2002 · 1999 6= 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˛ec 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ȩpuja̧cy sposób:
[x] = {y | y = x
(mod m)}.
Innymi słowy, klasa abstrakcji liczby x to zbiór wszystkich liczb z nia̧ równoważnych.
Przykład 1.10 Dla m = 3 mamy trzy klasy abstrakcji
1.5. Pierścień Zm
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 pokrywaja̧ 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].
2
Nastȩpna ważna własność klas abstrakcji to ich rozła̧czność.
Lemat 1.12 Jeżeli [x] ∩ [y] 6= ∅, to [x] = [y],
inaczej, dwie klasy abstrakcji [x] i [y] albo sa̧ identyczne, albo sa̧ rozła̧czne.
Dowód. Przypuśćmy, że klasy [x] i [y] maja̧ wspólny element z. Wtedy:
z = x (mod m)
Z przechodniości mamy wtedy x = y
oraz
z=y
(mod m).
(mod m), a z lematu 1.11 [x] = [y].
2
1.5 Pierścień Zm
Klasy abstrakcji relacji modulo m wygla̧daja̧ nastȩpuja̧co:
[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
Zm .
Ponieważ relacja modulo jest zgodna z działaniami dodawania i mnożenia, możemy
zdefiniować dodawanie i mnożenie na klasach abstrakcji. Mówia̧c 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ȩpuja̧co:
[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 sa̧ dobrze zdefiniowane; że wynik działania na
dwóch klasach nie zależy od wyboru reprezentantów.
Lemat 1.13 Jeżeli
[x] = [y]
[x + u] = [y + w],
oraz
[u] = [w],
[xu] = [yw]
to:
[x − u] = [y − w].
oraz
Dowód. Z założenia mamy:
x=y
(mod m)
oraz
u=w
(mod m).
a z twierdzenia 1.7:
[x + u] = [y + w],
[x − u] = [y − w] oraz [xu] = [yw].
2
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
[0], [1], . . . , [n − 1]
spełniaja̧ nastȩpuja̧ce warunki:
• dodawanie oraz mnożenie sa̧ przemienne i ła̧czne,
• 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łniaja̧cymi powyższe warunki nazywa siȩ pierścieniem
przemiennym z jedynka̧.
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.
2
1.5. Pierścień Zm
9
1.5.1 Pier´
scien´Z5
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:
Z5 = {0, 1, 2, 3, 4}
z dodawaniem i mnożeniem określonym nastȩpuja̧cymi 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 Z5 element odwrotny wzglȩdem mnożenia, czyli dla każdego x ∈ Z5 − {0} istnieje x−1 , taki że xx−1 = 1:
1−1 = 1,
2−1 = 3,
3−1 = 2,
4−1 = 4.
Dlatego Z5 jest ciałem, czyli pierścieniem przemiennym z jedynka̧ i z odwrotnościa̧
wzglȩdem mnożenia.
1.5.2 Pier´
scien´Z4
Rozważmy teraz pierścień reszt modulo 4:
Z4 = {0, 1, 2, 3},
gdzie dodawanie i mnożenie jest określone nastȩpuja̧cymi 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
x1
2
3
0
0
0
0
0
1
0
1
2
3
2
0
2
0
2
3
0
3
2
1
Z4 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 Zm mamy pq = 0 i ani p, ani q nie maja̧ 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 Zm nie jest ciałem, jeżeli m jest liczba̧ złożona̧.
W dalszej czȩści tego rozdziału zobaczymy, że jeżeli m jest liczba̧ pierwsza̧, 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 N W D(a, b). Na przykład: N W D(4, 6) = 2, N W D(4, 0) = 4.
Najwiȩkszy wspólny dzielnik dwóch liczb dodatnich można obliczyć za pomoca̧ algorytmu Euklidesa, którego najprostsza wersja wyglada
˛ nast˛epujaco:
˛
Aby obliczyć najwiȩkszy wspólny dzielnik dwóch dodatnich liczb naturalnych a, b,
powtarzamy aż do skutku:
• jeżeli a = b, to koniec, N W 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 mniejsza̧ tak długo, aż liczby bȩda̧ 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
36
21
6
6
6
3
q
15
15
15
9
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˛ekszy wspólny
dzielnik dla pary a = 2000001 i b = 2, to algorytm b˛edzie milion razy obliczał a = a − b
i po tym wszystkim a b˛edzie równe reszcie z dzielenia a przez b, czyli 1. Dlatego cz˛eściej stosuje si˛e algorytm, w którym zamiast odejmowania oblicza si˛e reszt˛e z dzielenia
wi˛ekszej liczby przez mniejsza˛ i robi si˛e to tak długo, aż otrzymamy zero.
1.7. Algorytm Euklidesa
11
1.7 Algorytm Euklidesa
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, N W 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˛e z dzielenia wiȩkszej liczby przez mniejsza̧ 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
36
6
6
0
q
15
15
3
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ȩpuja̧cy
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ȩda̧ 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˛e 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.
2
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, N W 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ȩda̧ dwoma dodatnimi liczbami naturalnymi i niech d =
N W D(a, b). Wtedy istnieja̧ liczby całkowite x i y, takie że:
xa + yb = d,
lub mówia̧c inaczej, d jest kombinacja̧ całkowitoliczbowa̧ liczb a i b.
Dowód. Pokażmy, że wszystkie wartości, jakie przyjmuja̧ zmienne p i q w trakcie wykonywania algorytmu Euklidesa, sa̧ całkowitoliczbowymi kombinacjami liczb a i b. Na
pocza̧tku, 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 = xp a + yp b,
q = xq a + yq b.
Wtedy w (i + 1) iteracji p bȩdzie pomniejszone o q · (p ÷ q) i bȩdziemy mieli:
p = (xp − xq · (p ÷ q))a + (yp − yq · (p ÷ q))b
oraz
q = xq a + yq b.
Z tego wynika, że także ostateczna wartość d jest całkowitoliczbowa̧ kombinacja̧ liczb a
i b.
2
Algorytm Euklidesa można tak zmodyfikować, aby oprócz najwiȩkszego wspólnego
dzielnika N W D(a, b), wyliczał także liczby x i y, takie że:
xa + yb = N W D(a, b).
Oto ten algorytm w jȩzyku Pascal:
p:=a;q:=b;
xp:=1;yp:=0;
xq:=0;yq:=1;
while p<>q do
1.7. Algorytm Euklidesa
if p>q then
begin
p:=p-q;
xp:=xp-xq*(p
yp:=yp-yq*(p
end
else
begin
q:=q-p;
xq:=xq-xp*(q
yq:=yq-yp*(q
end;
NWD(a,b):=p;
x:=xp,y:=yp
13
div q);
div q)
div p);
div p)
W poniższej tabeli pokazano kolejne kroki działania rozszerzonego algorytmu Euklidesa na parze liczb 36 i 15:
p
36
6
6
0
q
15
15
3
3
xp
1
1
1
5
yp
0
-2
-2
-12
xq
0
0
-2
-2
yq
1
1
5
5
Tak wiȩc liczbȩ 3 można przedstawić jako kombinacjȩ liczb 15 i 36 w nastȩpuja̧cy 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żda̧ ich kombinacjȩ
całkowita̧
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 N W 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 N W 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 istnieja̧ liczby całkowite x i y, takie
że d = xa + yb.
14
Rozdział 1. Teoria liczb
Dowód Jeżeli N W D(a, b) = d to d|a, d|b oraz (z twierdzenia 1.17) istnieja̧ 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.
2
Wniosek 1.20 Jeżeli istnieja̧ liczby całkowite x i y, takie, że xa+yb = 1, to N W D(a, b) =
1.
Przykład 1.21 Zastanówmy siȩ, ile wynosi N W D(1998, 2000). Ponieważ:
2000 − 1998 = 2
oraz 2 jest wspólnym dzielnikiem 1998 i 2000, wiȩc N W D(1998, 2000) = 2.
Zastanówmy siȩ teraz, ile wynosi N W D(1999, 2001). Ponieważ:
2001 − 1999 = 2,
wiȩc N W D(1999, 2001) dzieli 2, a ponieważ 2 nie dzieli ani 1999, ani 2001, wiȩc
N W D(1999, 2001) = 1.
1.8 Liczby pierwsze i wzglȩdnie pierwsze
Dwie liczby naturalne a i b sa˛ wzglȩdnie pierwsze, jeżeli N W D(a, b) = 1, a liczba
naturalna p jest pierwsza, jeżeli p > 1 i jedynymi dzielnikami naturalnymi p sa̧ 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. Istnieja˛ 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żda̧ liczbȩ naturalna̧ n > 1 można rozłoży ć na czynniki
pierwsze i że taki rozkład jest jednoznaczny z dokładnościa̧ do kolejności czynników. Na
przykład:
12 = 22 · 3
i
180 = 22 · 32 · 5.
Twierdzenie 1.22 Każda̧ liczbȩ naturalna̧ n > 1 można przedstawić jako iloczyn liczb
pierwszych (niekoniecznie różnych):
n = q 1 q2 · · · qr .
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 najmniejsza̧ taka̧ liczba̧. n nie może być
liczba̧ pierwsza̧ (bo wtedy n = q1 ), wiȩc n jest liczba̧ złożona̧, czyli jest postaci:
n = km
dla k, m < n. Ale ponieważ k i m sa̧ mniejsze od n, wiȩc można je rozłożyć na czynniki
pierwsze
k = p 1 p2 · · · ps
oraz
m = r 1 r2 · · · rt ,
ale wtedy, wbrew założeniu, mamy rozkład liczby n na czynniki pierwsze:
n = p 1 p 2 · · · p s r1 r2 · · · rt .
2
Aby pokazać, że rozkład jest jednoznaczny (z dokładnościa̧ do kolejności czynników),
musimy najpierw udowodnić dwa lematy.
Lemat 1.23 Niech a i b bȩda̧ dodatnimi wzglȩdnie pierwszymi liczbami naturalnymi.
Wtedy dla dowolnej liczby c, jeżeli a|bc, to a|c.
Dowód. Z twierdzenia 1.17, istnieja̧ 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 prawa̧
stronȩ, czyli c.
2
Lemat 1.24 Jeżeli liczba pierwsza p dzieli iloczyn liczb pierwszych
q1 q2 · · · qr
(niekoniecznie różnych), to wtedy p jest równe jednej z liczb qi .
Dowód przez indukcjȩ ze wzglȩdu na r. Dla r = 1 mamy p|q1 , a ponieważ q1 jest
pierwsza i p > 1, wiȩc p = q1 .
Załóżmy teraz, że teza zachodzi dla r i przypuśćmy, że p dzieli
q1 q2 · · · qr qr+1 .
Mamy dwa przypadki: albo p dzieli qr+1 , albo nie. W pierwszym przypadku p = qr+1 .
W drugim przypadku mamy N W D(p, qr+1 ) = 1, bo 1 i qr+1 to jedyne dzielniki liczby
qr+1 . Z lematu 1.23 wynika teraz, że p dzieli q1 q2 · · · qr , a z założenia indukcyjnego, że
p = qi dla jakiegoś 1 ≤ i ≤ r.
2.
16
Rozdział 1. Teoria liczb
Udowodnimy teraz, że rozkład liczby na czynniki pierwsze jest jednoznaczny, z dokładnościa̧
do kolejności czynników.
Twierdzenie 1.25 Każda̧ liczbȩ naturalna̧ n > 1 można w dokładnie jeden sposób przedstawić w postaci iloczynu:
αr
1 α2
n = pα
1 p2 . . . pr ,
gdzie αi sa̧ dodatnimi liczbami naturalnymi, pi sa̧ liczbami pierwszymi oraz zachodzi
p1 < 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 najmniejsza̧ liczba̧ z dwoma różnymi rozkładami:
β1 β2
βs
αr
2
n = p1α1 pα
2 . . . p r = q 1 q2 . . . qs .
(1.1)
Wtedy z jednej strony p1 nie może wystȩpować po prawej stronie równania (1.1), bo n/p1
byłoby mniejsza̧ liczba̧ z niejednoznacznym rozkładem. Z drugiej strony p 1 dzieli prawa̧
stronȩ, a wiȩc, z lematu 1.24 wystȩpuje po prawej stronie. Mamy wiȩc sprzeczność. 2
Lemat 1.26 Jeżeli a i b sa̧ wzglȩdnie pierwsze, to ich rozkłady sa̧ rozła̧czne, to znaczy
maja̧ rozła̧czny zbiór liczb pierwszych wystȩpuja̧cych w ich rozkładach.
1.10 Elementy odwracalne
Definicja 1.27 Element a ∈ Zm jest odwracalny, jeżeli istnieje b ∈ Zm , takie, że
a · b = 1 (mod m).
b nazywamy elementem odwrotnym do a i oznaczamy przez a −1 .
Przykład 1.28 3 jest odwracalna w Z8 bo 3 · 3 = 1 (mod 8). Oprócz 3 w Z8 odwracalne sa˛ także 1, 5 i 7.
Lemat 1.29 Liczba a ∈ Zm jest odwracalna wtedy i tylko wtedy, gdy N W D(a, m) = 1.
Dowód. Jeżeli N W D(a, m) = 1, to istnieja̧ 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 przyja̧ć za a−1 taka̧ 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
a−1 a − 1 = k · m
dla jakiegoś k. Mamy wiȩc
a−1 a + (−k)m = 1
czyli N W D(a, m) = 1 (wniosek 1.20).
2
Z powyższego dowodu wynika, że element odwrotny do a można wyliczy ć stosuja̧c
algorytm Euklidesa. Na przykład policzmy element odwrotny do 12 w pierścieniu Z17 .
Najpierw zastosujemy algorytm Euklidesa, aby obliczyć x i y, takie że:
12x + 17y = 1.
Kolejne kroki algorytmu przedstawiono w tabeli:
p
17
5
5
1
1
q
12
12
2
2
0
xp
1
1
1
5
5
yp
0
-1
-1
-7
-7
xq
0
0
-2
-2
-12
yq
1
1
3
3
17
Mamy wiȩc:
5 · 17 + (−7)12 = 1,
czyli:
(−7)12 = 1 (mod 17),
ale:
−7 = 10 (mod 17),
czyli 10 jest elementem odwrotnym do 12 w pierścieniu Z17 .
Definicja 1.30 Zbiór elementów odwracalnych w Zn 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 ∈ Zm , a 6= 0, jest odwracalny, czyli pierścień Zm 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 grupa̧.
Dowód: Elementem odwrotnym do iloczynu ab jest b−1 a−1 , a elementem odrotnym do
a−1 jest a.
2
18
Rozdział 1. Teoria liczb
1.11 Funkcja liniowa
Zastanówmy siȩ jak w pierścieniu Zm działa funkcja liniowa
f (x) = a · x
(mod m).
Rozpatrzmy najpierw przypadek, gdy a i m sa̧ wzglȩdnie pierwsze, czyli gdy N W D(a, m) =
1. Dla m = 8 i a = 3 wartości funkcji przedstawia tabela
x
3x
0
0
1
3
2
6
3
1
4
4
5
7
6
2
7
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 rozwia̧zanie w pierścieniu Zm , jest ono równe x = a−1 b.
Funkcja f jest permutacja̧ w Zm i wykorzystuje siȩ ja̧, gdy trzeba wymieszać (przepermutować) elementy Zm . Zauważmy, że f jest także permutacja˛ 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 funkcja̧ wzajemnie
jednoznaczna̧ w Zm i w Z∗m .
Rozpatrzmy teraz przypadek, gdy a i m nie sa̧ wzglȩdnie pierwsze, czyli gdy N W D(a, m) =
d > 1. Dla m = 8 i a = 6 wartości funkcji przedstawia tabela
x
6x
0
0
1
6
2
4
3
2
4
0
5
6
6
4
7
2
Zauważmy, że jeżeli b jest wartościa̧ funkcji f , czyli gdy
ax = b (mod m)
to istnieje takie k, że
ax − b = km,
a ponieważ d dzieli a i m, to d dzieli b, a wiȩc wartościami funkcji f moga̧ być tylko
liczby podzielne przez d.
Lemat 1.35 Jeżeli N W D(a, m) = d oraz d|b, to równania
ax = b (mod m)
oraz
(a/d)x = (b/d) (mod m/d)
sa̧ równoważne, czyli maja̧ ten sam zbiór rozwia̧zań 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).
2
Przypuśćmy teraz, że d dzieli b i rozwia̧żmy równanie
ax = b
(1.2)
w pierścieniu Zm , czyli szukamy takich x ∈ {0, . . . , m − 1}, że
ax = b (mod m)
(1.3)
Z lematu 1.35, to równanie jest równoważne równaniu
(a/d)x = (b/d) (mod m/d)
(1.4)
Ale teraz N W D(a/d, m/d) = 1 i równanie (1.4) ma dokładnie jedno rozwia̧zanie x 0 ∈
{0, . . . , m/d − 1} takie że
(a/d)x0 = (b/d) (mod m/d).
Ale równania (1.4) i (1.3) sa̧ spełnione także przez liczby
x0 , x0 + m/d, x0 + 2m/d, . . . , x0 + (d − 1)m/d.
Sa̧ to wszystkie liczby ze zbioru {0, . . . , m − 1} spełniaja̧ce równania (1.4) i (1.3), czyli
wszystkie rozwia̧zania równania (1.2) w pierścieniu Zm .
Przykład 1.36 Rozwia̧żmy równanie
6x = 9 (mod 15).
(1.5)
Ponieważ N W D(6, 15) = 3, wiȩc najpierw rozwia̧zujemy równanie
2x = 3 (mod 5)
W Z5 mamy 2−1 = 3 wiȩc rozwia̧zaniem jest x0 = 3 · 3 = 4. Tak wiȩc rozwia̧zaniami
równaia (1.5) w Z15 sa̧ liczby
4, 9, 14.
20
Rozdział 1. Teoria liczb
1.12 Szyfry liniowe
Przypuśćmy, że mamy tekst zapisany za pomoca̧ 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 Z26 :
a = 0, b = 1, c = 2, . . . , z = 25,
wybieramy dwie liczby a, b ∈ Z26 , takie że N W D(a, 26) = 1, i szyfrujemy litera po
literze według wzoru:
C(x) = ax + b (mod 26).
Funkcja deszyfruja̧ca jest określona wzorem:
D(y) = a−1 y − a−1 b (mod 26).
Rzeczywiście:
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 szyfruja̧ca 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
m
a
t
e
y
k
x
12
0
19
4
24
10
C(x)
10
20
15
8
0
16
szyfr
k
u
p
i
a
q
Słowo matematyka po zaszyfrowaniu wygla̧da tak:
kupikupaqu.
Jeżeli zaś zastosujemy ten sam szyfr do pocza̧tkowego zdania z wiersza Lokomotywa Juliana Tuwima:
stoi na stacji lokomotywa,
to otrzymamy:
spewhuspuotwneqekepagu.
1.13. Chińskie twierdzenie o resztach
21
Szyfry liniowe sa̧ bardzo starym wynalazkiem. W prostszej wersji z a = 1 stosował je już Juliusz Cezar. Ich wada̧ jest to, że bardzo łatwo daja̧ siȩ łamać. Czasami
wystarcza odgadna̧ć, jak zaszyfrowano dwie litery. Można to zrobić analizuja̧c 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:
15 = 19a + b (mod 26),
4 = 14a + b (mod 26).
Po odjȩciu tych równań stronami mamy:
11 = 5a (mod 26).
Korzystaja̧c z algorytmu Euklidesa, możemy teraz wyliczyć element odwrotny do 5 w pierścieniu Z26 . Jest to 21, ponieważ:
(−5)5 + 26 = 1
− 5 = 21 (mod 26),
oraz
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:
m1 = 3,
m2 = 5,
m3 = 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, pia̧tkami 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:
m1 = 2
m2 = 3.
W poniższej tabeli mamy zestawione reszty modulo 2 i 3 liczb od 0 do 5:
22
Rozdział 1. Teoria liczb
a
0
1
2
3
4
5
a (mod 2)
0
1
0
1
0
1
a (mod 3)
0
1
2
0
1
2
Każda z liczb od 0 do 5 = 2 · 3 − 1 ma inny zestaw reszt oraz dla każdej pary reszt
(a1 , a2 ), spełniaja̧cych warunek 0 ≤ a1 < 2, 0 ≤ a2 < 3, istnieje liczba a, taka że:
a1
a2
= a (mod 2),
= a (mod 3).
Oczywiście 6 ma takie same reszty jak 0:
0 = 6 (mod 2),
0 = 6 (mod 3),
i ogólnie, jeżeli dwie liczby a i b różnia̧ 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ścia̧
do piȩciu.
Sytuacja jest inna, jeżeli m1 i m2 nie sa̧ wzglȩdnie pierwsze. Jeżeli, na przykład,
m1 = 4 i m2 = 6, to wśród liczb od 0 do 23 = 4 · 6 − 1 istnieja̧ takie, które maja̧ 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 m1 i m2 sa̧ wzglȩdnie pierwsze, to każda z liczb od 0 do m1 · m2 − 1 ma
inny zestaw reszt oraz dla każdej pary reszt (a1 , a2 ), spełniaja̧cych warunek 0 ≤ a1 <
m1 , 0 ≤ a2 < m2 , istnieje liczba a, taka że:
a1
a2
= a (mod m1 ),
= a (mod m2 ),
zachodzi bowiem poniższe twierdzenie.
1.13. Chińskie twierdzenie o resztach
23
´
Twierdzenie 1.39 (chinskie
twierdzenie o resztach) Niech
m1 , m2 , . . . , m r
bȩda̧ dodatnimi liczbami wzglȩdnie pierwszymi, to znaczy dla każdej pary 1 ≤ i < j ≤ r
mamy N W D(mi , mj ) = 1, oraz niech
a1 , a2 , . . . , ar
bȩda̧ dowolnymi resztami. Wtedy istnieje liczba całkowita a, taka że:
a1
= a (mod m1 ),
a2
= a (mod m2 ),
ar
...
= a (mod mr ).
(1.6)
Ponadto jeżeli liczby a i b sa̧ rozwia̧zaniami układu kongruencji (1.6), to ich różnica
a − b dzieli siȩ przez iloczyn wszystkich liczb mi , czyli przez:
M=
r
Y
mi .
i=1
Dowód. Najpierw udowodnimy druga̧ czȩść twierdzenia. Dla każdego 1 ≤ i ≤ r mamy:
ai = a (mod mi )
oraz
ai = b (mod mi ).
Po odjȩciu stronami tych dwóch równań mamy:
0 = a − b (mod mi ),
czyli
mi |(a − b),
wiȩc każda spośród liczb mi dzieli a−b, a skoro liczby m1 . . . mr sa̧ wzglȩdnie pierwsze,
wiȩc także ich iloczyn M dzieli a − b. Rzeczywiście, przypuśćmy bowiem, że M ma
rozkład
αs
1 α2
M = pα
1 p2 · · · ps .
αi
i
Weźmy teraz dowolne pα
i . Ponieważ rozkłady liczb m1 , . . . , mr sa̧ rozła̧czne, wiȩc pi
wyst˛epuje w rozkładzie jakiegoś mj , czyli dzieli mj oraz a − b, a wiȩc w rozkładzie
liczby a − b, liczba pi wystȩpuje z wykładnikiem β ≥ αi . Dlatego M dzieli a − b.
Zobaczymy teraz, że układ (1.6) ma rozwia̧zanie. Niech M i = M/mi , czyli:
Mi = m1 · · · mi−1 mi+1 . . . mr .
Ponieważ Mi i mi maja̧ rozła̧czne rozkłady, wiȩc N W D(mi , Mi ) = 1 oraz istnieje Ni ,
takie że:
Mi Ni = 1 (mod mi ).
24
Rozdział 1. Teoria liczb
Weźmy teraz:
a=
r
X
a i M i Ni .
i=1
Zauważmy, że jeżeli i 6= j, to mi |Mj , oraz:
aj Mj Nj = 0 (mod mi ),
co daje:
a = a i M i Ni = a i
(mod mi )
dla każdego i, a wiȩc a jest rozwia̧zaniem układu równań (1.6).
2
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 stosuja̧c sposób chińskich generałów z liczbami 3, 5, 7 możemy
liczyć żołnierzy z dokładnościa̧ 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:
x1 = x
(mod 3),
x2 = x (mod 5),
x3 = x
(mod 7),
y3 = y
(mod 7),
a na apelu wieczornym było y żołnierzy i otrzymano reszty:
y1 = y
(mod 3),
y2 = y
(mod 5),
wtedy różnica x − y spełnia nastȩpuja̧cy układ kongruencji:
x1 − y 1
x2 − y 2
x3 − y 3
= x−y
= x−y
= x−y
(mod 3),
(mod 5),
(mod 7).
Jak widać, chińskie twierdzenie o resztach pozwala wnioskować o dużych liczbach za
pomoca̧ 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 jedyna̧ liczba̧ z przedziału 0, 1, 2, . . . , 14, która posiada reszty 4 = 1
(mod 3) oraz 4 = 4 (mod 5).
1.14. Pierwiastki kwadratowe
25
1.14 Pierwiastki kwadratowe
Definicja 1.42 Liczbȩ y nazywamy pierwiastkiem kwadratowym liczby x w pierścieniu
Zm , jeżeli
x = y 2 (mod m).
Przykład 1.43 W Z5 pierwiastkami 4 sa̧ 2 i 3, a liczba 2 nie posiada pierwiastka.
Zauważmy, że jeżeli y 2 = x
(mod m) to
(m − y)2 = m2 − 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 liczba̧ pierwsza̧ i x = y 2 , to y i −y sa̧ 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).
2
Przykład 1.45 Tak nie musi być, jeżeli m nie jest liczba̧ pierwsza̧. Na przykład w Z 15
mamy cztery pierwiastki z 1, sa̧ 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 dowolna̧ liczbȩ y, dla której
y mod p = 1 lub y mod p = −1
oraz
y mod q = 1 lub y mod q = −1
Wtedy
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 6= −1 (mod p) oraz 1 6= −1 (mod q) i mamy wtedy
cztery różne pierwiastki z 1, y1 , y2 , y3 , y4 . Sa̧ to liczby dla których
y1 mod p = 1,
y2 mod p = 1,
y3 mod p = −1,
y4 mod p = −1
y1 mod q = 1,
y2 mod q = −1,
y3 mod q = 1,
y4 mod q = −1.
Zauważmy, że y1 = 1 (mod n) oraz y4 = −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 Zm . Z definicji przyjmujemy φ(1) = 1.
Przykład 1.47 φ(8) = 4, bo w Z8 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 liczba̧ pierwsza̧, to dla dowolnego α ≥ 1, φ(p α ) =
α−1
p
(p − 1). W szczególności φ(p) = p − 1.
b) Jeżeli m i n sa̧ 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 sa̧ te, które sa̧ 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
N W D(x, mn) = 1
wtedy i tylko wtedy gdy
N W D(x, m) = 1 oraz N W D(x, n) = 1
a to zachodzi wtedy i tylko wtedy gdy reszty rm = x mod m oraz rn = x mod n
spełniaja̧ warunki
N W D(rm , m) = 1 oraz N W D(rn , n) = 1
(1.7)
Par reszt (rm , rn ) spełniaja̧cych 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).
2
1.16 Szybkie potȩgowanie
Teraz zastanowimy siȩ jak można potȩgować, czyli jak obliczyć ak mod n dla a ∈ Zn
oraz k ∈ N. Pierwszy nasuwaja̧cy 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 posiadaja̧cymi 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
a · a = a2 ,
a2 · a2 = a 4
i ogólnie
i
i
a2 · a2 = a 2
i+1
.
Dlatego, aby obliczyć potȩgȩ o wykładniku, który jest potȩga̧ dwójki k = 2j należy
wykonać
y:=a;
for i:=1 to j do y:=y*y mod n
Przykład 1.49 Aby obliczyć 216 w Z13 obliczmy
22 = 2 · 2 = 4 (mod 13),
24 = 4 · 4 = 3 (mod 13),
28 = 3 · 3 = 9 (mod 13),
216 = 9 · 9 = 3 (mod 13).
Jeżeli wykładnik jest suma̧ potȩg dwójki k = 2i + 2j , to
i
j
ak = a 2 · a2 .
Przykład 1.50 Aby obliczyć 219 mod 13 trzeba wymnożyć 219 = 216 · 22 · 21 = 3 · 4 · 2 =
11 (mod 13).
Zauważmy, że każda liczba naturalna k jest suma̧ potȩg dwójki
k=
j
X
i=1
di · 2i ,
gdzie di ∈ {0, 1} to cyfry rozwiniȩcia dwójkowego k.
Powyższe uwagi sugeruja̧ nastȩpuja̧cy algorytm obliczania potȩgi a k .
Algorytm szybkiego pot˛egowania
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ȩda̧cych potȩgami 2. Na pocza̧tku
0
i
i
x = a = a2 . Po i tej iteracji pȩtli for x = a2 . Jeżeli di = 1 to mnożymy y przez x = a2 .
Na końcu
1
j
y = ad0 ad1·2 · · · adj·2 = ak .
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˛etli for i=0) oraz po każdej iteracji.
i
0
1
2
3
4
x
2
4
3
9
3
y
2
8
8
8
11
Zauważmy, że wyniki pośrednie, i ostateczny, należa˛ do Zm i algorytm nie potrzebuje
zbyt dużej pamiȩci. Algorytmu tego nie można stosować do obliczania ak w liczbach
całkowitych, jeżeli k jest duże, to wynik ostateczny oraz pośrednie bȩda˛ 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
a1 , a2 , . . . , aφ(m)
to bȩda̧ wszystkie elementy Z∗m . Jeżeli pomnożymy je przez a
aa1 , aa2 , . . . , aaφ(m)
to zgodnie z lematem 1.34 otrzymamy te same elementy tylko w innej kolejności.
Wymnóżmy teraz elemnty obu cia̧gów
Y
φ(m)
i=1
Y
φ(m)
ai =
aai = a
i=1
Po pomnożeniu przez odwrotność
Y
φ(m)
φ(m)
ai
(mod m).
i=1
Qφ(m)
i=1
ai otrzymamy tezȩ twierdzenia.
2
Wniosek 1.53 Jeżeli p jest liczba̧ pierwsza̧, to dla każdego a wzglȩdnie pierwszego z p
mamy
ap−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 sa̧ 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 N W 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 jaka̧ś zaszyfrowana̧ wiadomość x. Traktujemy tȩ wiadomość jako liczbȩ x < n. (Jeżeli wiadomość jest cia̧giem znaków, to kodujemy
każdy znak jako 8 bitów i cały cia̧g może być traktowany jako liczba w postaci dwójkowej.) Bob szyfruje wiadomość przy pomocy funkcji szyfruja̧cej
CA (x) = xe mod n
i przesyła ja̧ Alicji. Alicja odszyfrowuje za pomoca̧ funkcji deszyfruja̧cej
DA (y) = y d mod n.
Pokażemy teraz, że jeżeli N W D(x, n) = 1, to
DA (CA (x)) = x.
Mamy
DA (CA (x)) = xed mod n.
Ponieważ ed = 1 (mod φ(n)), wiȩc istnieje k takie, że ed = 1 + kφ(n), czyli
DA (CA (x)) = x1+kφ(n) = x · xkφ(n)
kφ(n)
φ(n) k
(mod n)
ale jeżeli N W D(x, n) = 1, to x
= (x
) = 1 (mod n). Tak wiȩc DA (CA (x)) =
x. Do powyższego potrzebne było założenie, że N W 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 CA (DA (x)) = x.
Niesymetryczne szyfry daja̧ nowe możliwości. Można ich na przykład używać do
podpisu. Aby podpisać jaka̧ś wiadomość m, Alicja szyfruje ja̧ swoim szyfrem prywatnym DA (m) i jest to podpis wiadomości m. Alicja wysyła Bobowi parȩ (m, DA (m)).
Żeby sprawdzić, że wszystko siȩ zgadza Bob szyfruje podpis publicznym kluczem Alicji
i sprawdza czy
CA (DA (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 moga̧ być przydatne.
1.19.1 Test naiwny
Najprostszy sposób to, dzielić n przez kolejne liczby (pierwsze) aż do
test jest zupełnie niepraktyczny, jeżeli n ma kilkaset bitów.
√
n. Jednak ten
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 N W D(a, n) = 1. Jeżeli a i n
nie sa̧ wzglȩdnie pierwsze, i N W D(a, n) = d > 1, to d jest dzielnikiem n i n nie jest
pierwsza.
Jeżeli N W D(a, n) = 1, to obliczamy an−1 mod n. Jeżeli an−1 6= 1 (mod n), to
mamy pewność, że n nie jest liczba̧ pierwsza̧.
Definicja 1.54 Taka̧ liczbȩ a, dla której N W D(a, n) = 1 oraz an−1 6= 1 (mod n)
bȩdziemy nazywać świadkiem Fermata dla n, ponieważ zaświadcza ona, że n jest złożona.
Jeżeli an−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
an−1 = 1 (mod n). Ale zachodzi nastȩpuja̧cy lemat.
Lemat 1.55 Jeżeli istnieje takie a ∈ Z∗n , że an−1 6= 1 (mod n), to przynajmniej połowa elementów Z∗n jest świadkiem Fermata dla n.
Dowód. Przypuśćmy, że
{b1 , . . . , bk }
dla których bin−1 = 1 (mod n). Wtedy po pomnożeniu
sa˛ to wszystkie elementy
przez a otrzymamy k elementów
Z∗n ,
{ab1 , . . . , abk }
różnych miȩdzy soba̧ (lemat 1.34), z których każdy jest świadkiem Fermata. Rzeczywiście
(abi )n−1 = an−1 bin−1 = an−1 6= 1 (mod n).
A wiȩc świadków złożoności jest co najmniej połowa.
2
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
Istnieja̧ jednak liczby złożone n, które nie maja̧ świadków złożoności. Na przykład
n = 561. Kłopot bierze siȩ sta̧d, ż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
N W D(a, 561) = 1, to a jest wzglȩdnie pierwsze z 3, 11 i 17 oraz mamy
a560 = (a2 )280 = 1 (mod 3)
a560 = (a10 )56 = 1 (mod 11)
a560 = (a16 )35 = 1 (mod 17)
i z chińskiego twierdzenia o resztach wynika, że
a560 = 1 (mod 561)
Takie liczby nazywaja̧ sie liczbami Carmichaela. Pierwsze trzy z nich to 561, 1105 i 1729.
Wystȩpuja̧ 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 jedyna̧ parzysta̧ liczba̧ pierwsza̧). Najpierw sprawdzamy, czy n jest potȩga̧ jakiejś liczby naturalnej. Dla α od 2 do log2 n sprawdzamy czy
n = k α , dla jakiegoś k. W rozdziale o arytmetyce opisano jak za pomoca̧ binary search
stwierdzić, czy liczba jest potȩga̧ innej liczby. Jeżeli n jest potȩga̧, to jest złożona.
Ponieważ n jest nieparzyste, to n − 1 możemy przedstawić w postaci
n − 1 = m · 2k .
dla jakiegoś m nieparzystego.
Losujemy a < n. Sprawdzamy, czy N W D(a, n) = 1 (jeżeli N W D(a, n) > 1, to n
jest złożona).
Nastȩpnie obliczamy am mod n. Jeżeli am mod n = 1, to koniec, stwierdzamy, że n
jest pierwsza. Jeżeli am mod n 6= 1, to obliczamy po kolei
k
2
am2 mod n, am2 mod n, . . . , am2 mod n.
Zauważmy, że w tym cia̧gu 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
k
am2 = an−1 6= 1 (mod n).
Jeżeli w tym cia̧gu jest jedynka, na przykład
i
am2 = 1 (mod n)
i−1
to patrzymy na poprzedni element x = am2 . Jeżeli x 6= −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ȩga̧ liczby pierwszej, to z prawdopodobieństwem wiȩkszym niż 1/2 wykryjemy to (dowód tego
faktu wybiega poza zakres tej ksia̧żki i pomijamy go).
W praktyce stosujemy wszystkie trzy testy na raz. Maja̧c nieparzysta̧ liczbȩ n, najpierw sprawdzamy, czy dzieli siȩ ona przez kilka kolejnych liczb pierwszych
p1 , p2 , . . . , pd .
Dobór d zależy od tego jak duże liczby sprawdzamy. W ten sposób eliminujemy duża̧
czȩść liczb. Zauważmy, że obliczaja̧c iloczyn tych liczb
x=
d
Y
pi
i=1
i sprawdzaja̧c, czy N W D(x, n) = 1 możemy za jednym razem sprawdzić, czy n dzieli
siȩ przez która̧ś z tych liczb.
Po przejściu pierwszego testu stosujemy test drugi, a gdy liczba n go przejdzie stosujemy test trzeci.
Ponieważ liczby Carmichaela sa̧ dość rzadkie, wiȩc drugi test wyeliminuje wiȩkszość
liczb złożonych.
1.19.4 Losowanie liczb pierwszych
Jeżeli chcemy wyklosować liczbȩ pierwsza̧ to losujemy nieparzysta̧ 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˛e y ∈ {0, 1, 2, 3, 4} taka,˛
że x = y (mod 5).
3. Oblicz: a) (50 · 51 + 15) mod 7, b) 15 · 36 mod 7; c) 153 · (37)3 mod 7.
4. Oblicz: a) 1039 mod 11, b) 239 mod 5 c) 740 mod 10.
5. Przedstaw klasy abstrakcji relacji kongruencji dla m = 6.
6. Jak wygladaj
˛ a˛ działania dodawania i mnożenia w pierścieniu Z6
7. W pierścieniu Z8 wykonaj działania 7 + 6 oraz 7 · 6.
8. W pierścieniu Z8 rozwiaż
˛ równania: a) 1 + x = 0, b) 1 + x = 2, c) 5 + x = 0, d)
5 + x = 2.
1.20. Zadania
33
9. Podaj tabliczkȩ dodawania i mnożenia w ciele Z7 . Podaj elementy odwrotne do 5 i
6 w Z7 .
10. Dla liczb a = 600 i b = 1050 oblicz N W D(a, b) oraz liczby całkowite x i y
spełniaja̧ce równanie xa + yb = N W D(a, b).
11. Oblicz N W D(667, 713).
12. Oblicz N W D(199816, 199819).
13. W pierścieniu Z5 rozwiaż
˛ równania: a) 4 · x = 1, b) 4 · x = 2.
14. W pierścieniu Z8 rozwiaż
˛ równania: a) 3 · x = 1, b) 3 · x = 2.
15. W pierścieniu Z17 rozwiaż
˛ równania: a) 8x = 2,
b) 9x = 4.
16. W pierścieniu Z14 rozwiaż
˛ równania: a) 6x = 2, b) 6x = 9.
17. Znajdź całkowite rozwia̧zanie (x, y) spełniaja̧ce 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˛e funkcji f (x) = 4 · x + 5 w pierścieniu Z13 .
22. Przedstaw tabel˛e funkcji f (x) = 4 · x + 5 w pierścieniu Z12 .
23. Rozwiaż
˛ układ kongruencji:
3 = a (mod 5),
5 = a (mod 6).
24. Sprawdź, czy 100136 = 200146 (mod 30)
25. Dla jakich par reszt (a1 , a2 ) istnieja̧ liczby a spełniaja̧ce układ kongruencji:
a1
a2
= a (mod 4),
= a (mod 6).
26. Które elementy Z12 sa˛ resztami kwadratowymi?
27. Które elementy Z13 sa˛ resztami kwadratowymi?
28. Ile jest pierwiastków z 1 w Z30 ?
29. Pokaż,że w Z105 jest osiem pierwiastków z 1.
30. Przy pomocy algorytmu szybkiego pot˛egowania oblicz: a) 3 100 mod 13; b)2100 mod
15.
31. Oblicz: a) φ(24); b) φ(120).
34
Rozdział 1. Teoria liczb
1.21 Problemy
1.21.1 Najwi˛ekszy wspólny dzielnik
1. Udowodnij, że każda liczba postaci xa+yb, dla x i y całkowitych, jest wielokrotnościa̧
N W D(a, b), i na odwrót, każda wielokrotność N W D(a, b) jest postaci xa + yb,
dla jakiś x i y całkowitych.
2. Udowodnij, że N W D(a, b) jest najmniejsza̧ dodatnia̧ liczba̧ d, dla której istnieje x
i y całkowite, takie że xa + yb = d.
3. Zaprojektuj algorytm obliczania najwi˛ekszego 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´
sc´
Niech N W W (a, b) oznacza najmniejsza̧ wspólna̧ wielokrotność liczb a i b.
1. Udowodnij, że N W W (a, b) dzieli każda̧ inna̧ wspólna̧ wielokrotność liczb a i b.
2. Pokaż, że N W W (a, b) · N W D(a, b) = a · b.
3. Jakie liczby całkowite dziela˛ si˛e jednocześnie przez 24 i przez 54?
1.21.3 Liczby wzgl˛ednie 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żda̧ z liczb m 1 , ..., mk ,
to m jest wzglȩdnie pierwsze z iloczynem tych liczb
k
Y
mi .
i=1
1.21.4 Liczby pierwsze
1. Udowodnij, że dla każdego k istnieje ciag
˛ k kolejnych liczb złożonych.
2. Udowodnij, że liczb pierwszych jest nieskończenie wiele.
3. Udowodnij, że jeżeli dwie liczby x i y spełniaja˛ warunki: x2 = y 2 (mod n) oraz
x 6= y (mod n) i x 6= −y (mod n), to N W D(x+y, n) = d jest nietrywialnym
dzielnikiem n.
1.21. Problemy
35
1.21.5 Układ kongruencji
Istnieje inny sposób rozwia̧zywania układu kongruencji. Pokażemy go na przykładzie
układu
a1
a2
= a (mod 3),
= a (mod 5),
(1.8)
Najpierw szukamy dwóch liczb a01 i a10 spełniaja̧cych warunki
0
1
1
0
=
=
=
=
a01
a01
a10
a10
(mod
(mod
(mod
(mod
3),
5),
3),
5),
Udowodnij, że rozwia̧zaniem układu (1.8) jest
a = a1 · a10 + a2 · a01
(mod 15).
Jak policzyć a01 oraz a10 ? Ponieważ 3 i 5 sa̧ wzglȩdnie pierwsze, wiȩc istnieja̧ x i y takie,
że
3x + 5y = 1
Pokaż, że jeżeli podstawimy a01 = 3x (mod 15) oraz a10 = 5y
dobrze.
(mod 15), to bȩdzie
´
1.21.6 Chinskie
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 Zm × Zn .
Na iloczynie kartezjańskim Zm × Zn możemy określić działania dodawania i mnożenia w nastȩpuja̧cy 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 Zm × Zn 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 cia̧gó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 wygla̧da 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 Przestrzen´liniowa
Zbiór B = {0, 1} z działaniami xor ⊕ oraz koniunkcji · jest ciałem Z 2 .
Udowodnij, że zbiór B n jest przestrzenia̧ liniowa̧ 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˛edzie dowolna˛ grupa.
˛ Wtedy dla dowolnego a ∈ G
a|G| = 1
.

Podobne dokumenty