Liczby

Transkrypt

Liczby
Liczby
Struktury algebraiczne
1. Pierścieniem przemiennym z jedynką nazywamy zbiór z dwoma działaniami spełniającymi następujące własności:
• (a + b) + c = a + (b + c)
• a+b=b+a
• a+0=a
• Dla każdego a znajdziemy b takie, że a + b = 0
• a(bc) = (ab)c
• ab = ba
• a1 = a
• a(b + c) = ab + ac
Przykładami pierścieni są liczby całkowite i wielomiany.
2. Ciało jest pierścieniem przemiennym z jednością, w którym dla każdego
a 6= 0 znajdziemy b takie, że ab = 1 (zakłada się, ż 1 6= 0). Przykładami
ciał są liczby wymierne, liczby rzeczywiste, liczby zespolone i funkcje
wymierne.
3. Grupą nazywamy zbiór z działaniem posiadającym następujące własności
• (f g)h = f (gh)
• Istnieje element e taki, że ef = f e = f
• Dla każdego f znajdziemy g takie, że f g = gf = e
Jeśli działanie jest przemienne, mówimy o grupie przemiennej. Przykładami grup są wszelkie grupy przekształceń (zbiory przekształceń
odwracalnych takie, że przekształcenie odwrotne oraz złożenie przekształceń też do należą do zbioru przekształceń). Grupę tworzą elementy
pierścienia (ciała) z dodawaniem. Inną grupę uzyskujemy biorąc niezerowe elementy ciała z mnożeniem.
Element przeciwny (odwrotny) do danego elementu a jest jedyny i jest
oznaczany symbolem −a (odpowiednio a−1 ).
4. Definicja. Niech G będzie grupą. Podzbiór H zbioru G nazywamy
podgrupą grupy G, jeśli
• e∈H
• g ∈ H ⇒ g −1 ∈ H
1
• g, h ∈ H ∈ H ⇒ gh ∈ H
Podgrupa jest grupą. Każda grupa G posiada co najmniej dwie podgrupy G i {e}.
5. Twierdzenie Lagrange’a. Jeśli grupa jest skończona, to liczba elementów podgrupy dzieli liczbę elementów grupy.
Dowód. Niech H będzie podgrupą grupy G. Zdefiniujmy relację.
Powiemy, że a jest w relacji z b, jeśli a−1 b ∈ H. Tak zdefiniowana
relacja jest relacją równoważności.
• a−1 a = e ∈ H.
• a−1 b ∈ H ⇒ b−1 a = (a−1 b)−1 ∈ H.
• a−1 b ∈ H i b−1 c ∈ H ⇒ a−1 c = (a−1 b)(b−1 c) ∈ H.
Klasą elementu a jest warstwa aH, czyli zbiór elementów postaci ah,
gdzie h jest elementem H.
Przekształcenie aH → bH określone wzorem x → ba−1 x jest odwracalne.
Dlatego dowolne dwie warstwy są równoliczne. W szczególności każda
warstwa jest równoliczna z warstwą eH = H. Wiemy, że relacja
równoważności dzieli zbiór na rozłączne warstwy. Dlatego |G| jest
wielokrotnością |H|.
6. Twierdzenie. Niech r będzie liczbą elementów grupy G. Wtedy dla
każdego g ∈ G mamy g r = e.
Dowód. Wypiszmy kolejne potęgi g: g, g 2 , g 3 , . . .. Ponieważ grupa jest
skończona, więc dla pewnych i, j (i < j) zajdzie równość: g i = g j lub
inaczej g j−i = e. Niech k będzie najmniejszą dodatnią liczbą całkowitą
taką, że ak = e. Wtedy zbiór {e, g, g 2 , g 3 , . . . , g k−1 } jest podgrupą
grupy G. Dlatego k|r i g r = e.
Relacja podzielności
1. Definicja. Mówimy, że liczba całkowita a dzieli liczbę całkowitą b,
jeśli istnieje liczba całkowita k taka, że b = ka.
Piszemy a|b. Możemy też powiedzieć, że liczba a jest dzielnikiem liczby
b lub jeszcze inaczej, że b jest wielokrotnością a.
2. Definicja. Dodatnią liczbę całkowitą p nazywamy liczbą pierwszą,
jeśli p ma dokładnie dwa dodatnie dzielniki całkowite (tzn. 1 i p).
3. Lemat. Każda liczba całkowita większa od 1 ma dzielnik pierwszy.
Dowód przez indukcję. Liczba 2 ma dzielnik pierwszy równy 2.
Załóżmy, że twierdzenie jest prawdziwe dla liczb k = 2, 3, 4, ..., n − 1.
2
Pokażemy, że twierdzenie jest prawdziwe dla n. Jeśli n jest liczbą pierwszą, to n ma dzielnik pierwszy równy n. Jeśli natomiast n nie jest
liczbą pierwszą, to n ma dodatni dzielnik k, przy czym 1 < k < n.
Z założenia indukcyjnego wiemy, że k ma dzielnik pierwszy. Jest to
równocześnie dzielnik pierwszy liczby n.
4. Twierdzenie Euklidesa. Liczb pierwszych jest nieskończenie wiele.
Dowód. Załóżmy, że mamy skończoną liczbę liczb pierwszych:
p1 , p2 , ..., pn . Weźmy liczbę q = p1 p2 · · · pn + 1. Zgodnie z Lematem
liczba q ma dzielnik pierwszy. Może nim być tylko jedna z wymienionych
liczb pierwszych. Jeśli jednak pi |q (i = 1, 2, ..., n), to pi |1 i mamy
sprzeczność. Oznacza to, że liczby p1 , p2 , ..., pn nie mogą być wszystkimi liczbami pierwszymi.
5. Twierdzenie. Każdą liczbę całkowitą większą od 1 możemy zapisać
w postaci iloczynu liczb pierwszych. Dwa przedstawienia różnią się co
najwyżej kolejnością czynników.
6. Sito Eratostenesa
• Krok 1. Wypisz wszystkie liczby od 2 do n.
• Krok 2. Niech p = 2.
• Krok 3. Wykreśl wszystkie wielokrotności p począwszy od p2 .
• Krok 4. Znajdź najmniejszą niewykreśloną liczbę większą od p.
Będzie to nowe p.
• Krok 5. Jeśli p2 ≤ n, przejdź do Kroku 3.
wypadku zakończ pracę.
W przeciwnym
Niewykreślone liczby są wszystkimi liczbami pierwszymi w rozważanym
przedziale.
7. Dzielenie z resztą. Dla każdych dwóch dodatnich liczb całkowitych
znajdziemy liczby całkowite k, r takie, że
a = kb + r,
0 ≤ r < b.
Liczby k i r są określone jednoznacznie. Liczbę r nazywamy resztą
z dzielenia a przez b.
8. Największy wspólny dzielnik. Jeśli choć jedna z liczb całkowitych
jest różna od 0, to istnieje największy wspólny dzielnik liczb a, b, który
oznaczymy symbolem nwd(a, b).
Jeśli a = kb + c i a 6= 0, to nwd(a, b) = nwd(b, c).
3
9. Największy wspólny dzielnik możemy znaleźć stosując Algorytm Euklidesa.
Załóżmy, że 0 < b < a. Niech r0 = a, r1 = b. Wykonujemy kolejne
dzielenia z resztą
r0 = k1 r1 + r2
r1 = k2 r2 + r3
r2 = k3 r3 + r4
......
Ciąg reszt r0 , r1 , r2 , . . . jest malejący. Dlatego dla pewnego i ri > 0
i ri+1 = 0.
Mamy nwd(r0 , r1 ) = nwd(r1 , r2 ) = nwd(r2 , r3 ) = · · · = nwd(ri , 0) = ri .
Ostatnia niezerowa reszta jest największym wspólnym dzielnikiem
a i b.
10. Twierdzenie. Dla dowolnych liczb całkowitych a, b, z których
co najmniej jedna jest różna od zera, znajdziemy liczby całkowite x, y
takie, że ax + by = nwd(a, b).
Dowód. Kolejne reszty w algorytmie Euklidesa mają postać
rj = xj a + yj b, r0 = 1a + 0b, r1 = 0a + 1b.
Jeśli rj−1 = xj−1 a + yj−1 b i rj = xj a + yj b,
to rj+1 = rj−1 − kj rj = (xj−1 − kj xj )a + (yj−1 − kj yj )b.
W szczególności ostatnia niezerowa reszta ma postać ax + by.
Dowód pokazuje, jak rozwiązać równania ax + by = nwd(a, b).
11. Binarny algorytm nwd.
• Zapamiętujemy największą potęgę liczby 2 dzielącą dwie liczby.
• Dzielimy dane liczby przez 2 tak długo, aż zostaną nam liczby
nieparzyste.
• Jeśli otrzymane liczby są różne, to od większej liczby odejmujemy
mniejszą. Parzystą różnicę dzielimy tak długo przez 2, aż zostanie
nam liczba nieparzysta. Uzyskaną liczbę wstawiamy w miejsce
większej liczby.
• Dopóki mamy różne liczby powtarzamy ostatni krok.
• Liczbę, która nam pozostanie mnożymy przez zapamiętaną na
początku potęgę liczby 2.
W przeciwieństwie do algorytmu Euklidesa, nie wykorzystujemy dzielenia z resztą, tylko dzielenie liczb parzystych przez 2. W układzie
dwójkowym jest to usuwanie końcowych zer.
Odpowiednio rozszerzony algorytm pozwala rozwiązać równanie
ax + by = nwd(a, b).
4
12. Niekonstruktywny dowód istnienia rozwiązań równania
ax + by = nwd(a, b), a, b > 0.
Niech A będzie zbiorem wszystkich dodatnich liczb całkowitych postaci
ax+by, gdzie x, y są liczbami całkowitymi. a = a1+b0, b = a0+b1 ∈ A.
Niech D = ax0 + by0 będzie najmniejszą liczbą w zbiorze A. D dzieli
każdą liczbę ze zbioru A. Mamy bowiem ax + by = kD + r, 0 ≤ r < D.
Stąd r = a(x−kx0 )+b(y −ky0 ) i w przypadku r > 0 mamy sprzeczność
z założeniem, że D jest najmniejszą liczbą w A.
W szczególności D|a i D|b. Stąd D ≤ nwd(a, b). Z drugiej strony każdy
wspólny dzielnik a, b dzieli każdy element ze zbioru A, w szczególności
nwd(a, b)|D i nwd(a, b) ≤ D. Stąd równość D = nwd(a, b).
13. Załóżmy, że a 6= 0 lub b 6= 0. Równanie ax + by = d ma rozwiązanie
wtedy i tylko wtedy, gdy nwd(a, b)|d.
Ogólne rozwiązanie wyraża się wzorami
x = x0 + lb/nwd(a, b),
y = y0 − la/nwd(a, b),
gdzie para x0 , y0 jest szczególnym rozwiązaniem, a l dowolną liczbą
całkowitą.
14. Twierdzenie. d|a i d|b ⇒ d|nwd(a, b).
15. Definicja. Liczby a, b takie, że nwd(a, b) = 1, nazywamy liczbami
względnie pierwszymi.
16. Twierdzenie. a|bc i nwd(a, b) = 1 ⇒ a|c.
Dowód. ax + by = 1 dla pewnych x, y. Stąd acx + bcy = c i dlatego a|c.
Z twierdzenia wynika jednoznaczność rozkładu na czynniki pierwsze.
17. Wniosek. Jeśli ab = ck i nwd(a, b) = 1, to a = mk i b = nk .
18. Twierdzenie. nwd(a, b) = 1 i nwd(a, c) = 1 ⇒ nwd(a, bc) = 1.
Dowód. ax1 + by1 = 1, ax2 + cy2 = 1 dla pewnych x1 , y1 , x2 , y2 .
Mnożąc stronami powyższe równania otrzymujemy ax + bcy = 1
(x = ax1 x2 + by1 x2 + cx1 y2 , y = y1 y2 ). Oznacza to, że nwd(a, bc) = 1.
19. Równanie Pitagorasa. Opiszemy wszystkie rozwiązania równania
a2 + b 2 = c 2
w liczbach całkowitych dodatnich.
Jeśli liczby a, b, c spełniają równanie, to liczby da, db, dc również spełniają równanie. Załóżmy więc, że nwd(a, b, c) = 1. Wtedy jedna z liczb
a, b jest nieparzysta, a druga parzysta. Niech parzystą będzie liczba b.
5
Przy tych założeniach wszystkie rozwiązania opisane są wzorami
a = m 2 − n2 ,
b = 2mn,
c = m 2 + n2 ,
m > n > 0,
przy czym nwd(m, n) = 1, jedna z liczb m, n jest parzysta, a druga
nieparzysta.
Dowód.
b
2
!2
=
c+a
2
c−a
,
2
nwd
c+a c−a
= 1.
,
2
2
Dlatego (c + a)/2 = m2 i (c − a)/2 = n2 , nwd(m, n) = 1.
Sprawdzenie, że wzory dają rozwiązanie jest łatwe.
20. Równanie x4 + y 4 = z 2 nie ma rozwiązania w dodatnich liczbach całkowitych.
Dowód. Załóżmy że równanie ma rozwiązanie w dodatnich liczbach
całkowitych. Niech z będzie najmniejszą dodatnią liczbą całkowitą dla
której równanie ma rozwiązanie. Liczby x, y, z są parami względnie
pierwsze i jedna z liczb x, y (np. y) jest parzysta.
y 4 = (z − x2 )(z + x2 ), 16|y 4 .Rozważamy 3 przypadki.
• 4|z − x2 , 4|z + x2 . Wtedy jednak 2|z i mamy sprzeczność.
• 2|z − x2 , 8|z + x2 . Ponieważ nwd(z − x2 , z + x2 ) = 1,
więc z − x2 = 2a4 , z + x2 = 8b4 , a stąd 4b4 = a2 + x2 , 2|x i mamy
sprzeczność.
• 8|z−x2 , 2|z+x2 . Wtedy z−x2 = 4a4 , z+x2 = 2b4 , nwd(a, b) = 1.
Stąd 4a4 = (b2 −x)(b2 +x), b2 −x = 2u4 , b2 +x = 2w4 i u4 +w4 = b4
i mamy sprzeczność z założeniem, bo 0 < b < z.
21. Wniosek. Równanie x4 + y 4 = z 4 nie ma rozwiązania w dodatnich
liczbach całkowitych.
Arytmetyka modularna
1. a mod b oznacza resztę z dzielenia a przez b.
a≡b
(mod n) oznacza, że n|a − b.
Tak zdefiniowana relacja jest relacją równoważności.
2. Zbiór Zn = {1, 2, 3, . . . , n − 1} z działaniami
a ⊕ b = (a + b) mod n,
a ⊙ b = (ab) mod n
jest pierścieniem przemiennym z jedynką.
6
3. Elementy a ∈ Zn jest odwracalny ⇔ nwd (a, n) = 1.
Dowód. Jeśli nwd(a, n) = d > 1 i b = n/d, to a ⊙ b = 0, co oznacza
że element a nie jest odwracalny. Jeśli natomiast nwd(a, n) = 1, to
równanie ax + by = 1 ma rozwiązanie w liczbach całkowitych x, y.
Wybieramy b = x mod n i mamy a ⊙ b = 1.
4. Grupę złożoną z elementów odwracalnych pierścienia Zn oznaczamy
symbolem Zn∗ .
5. Funkcja Eulera φ(n) mówi ile jest liczb całkowitych a takich, że 0 ≥
a < n i nwd(a, n) = 1. Inaczej mówiąc φ(n) = |Zn∗ |.
3
Niech n = pk11 pk22 pk3 . Znajdziemy φ(n). Zbiór wielokrotności p1 mniejszych od n liczy n/p1 . Podobnie znajdujemy zbiory wielokrotności
p2 , p3 oraz zbiory wielokrotności p1 p2 , p1 p3 , p2 p3 , p1 p2 p3 . Zasada włączania-wyłączania daje nam wynik
φ(n) = n −
n
n
n
n
n
n
n
−
−
+
+
+
−
=
p1 p2 p3 p1 p2 p1 p3 p2 p3 p1 p2 p3
1
=n 1−
p1
!
1
1−
p2
!
!
1
1−
.
p3
Nietrudno się domyślić, jak wygląda ogólny wynik.
Jeśli p, q są różnymi liczbami pierwszymi, to
φ(pq) = pq(1 − 1/p)(1 − 1/q) = (p − 1)(q − 1).
6. Zp jest ciałem (każdy niezerowy element jest odwracalny).
7. Twierdzenie Eulera. Jeśli nwd(a, n) = 1, to n|aφ(n) − 1.
Dowód. Niech b = a mod b. Wtedy ak ≡ bk
Jeśli b ∈
Zn∗ ,
to b
φ(n)
(mod n).
= 1 (potęgowanie w grupie Zn∗ ).
8. Małe twierdzenie Fermata. Jeśli liczba pierwsza p nie dzieli a,
to p|ap−1 − 1.
Dowód. Wniosek z twierdzenia Eulera.
9. Twierdzenie Wilsona. Liczba całkowita p większa od 1 jest liczbą
pierwszą wtedy i tylko wtedy, gdy p|(p − 1)! + 1.
Dowód. Rozważmy wielomian f = xp−1 − 1 o współczynnikach w ciele
Zp . Wiemy, że jeśli a ∈ Zp i a 6= 0, to ap−1 = 1. Dlatego każdy
niezerowy element ciała Zp jest pierwiastkiem wielomianu f . Mamy
więc
xp−1 − 1 = (x − 1)(x − 2) · · · (x − p + 1).
Podstawiając x = 0 otrzymujemy (rachunek w Zp )
−1 = (−1)(−2) · · · (−p + 1) = (p − 1)(p − 2) · · · 2 · 1
7
tzn. p|(p − 1)! + 1.
Załóżmy, że d|p i d > 0 oraz p|(p − 1)! + 1. Jeśli d < p, to d|(p − 1)!.
Wtedy d|1. Zatem jedynym dodatnim dzielnikiem p mniejszym od p
jest liczba 1. Oznacza to, że p jest liczbą pierwszą.
10. Logarytm dyskretny. Niech a = bk z ciele Zp . Nie znamy szybkiego
sposobu na znalezienie k.
Fakt ten można wykorzystać do wymiany kluczy używanych do szyfrowania symetrycznego (np. szyfrowania polegającego na wzięciu bitowej
alternatywy wykluczającej).
• A i B uzgadniają dużą liczbę pierwszą p oraz element g, 0 < g < p.
• A wymyśla sobie a, oblicza g a mod p i przesyła do B.
• B wymyśla sobie b, oblicza g b mod p i przesyła do A.
• A i B mogą teraz obliczyć g ab mod p i użyć jako klucza.
Znajomość p, g, g a , g b nie pozwala na praktyczne znalezienie g ab mod p,
chyba że poradzimy sobie z logarytmem dyskretnym.
11. Szyfrowanie RSA .
A Tworzy dwa klucze, klucz publiczny i klucz prywatny. Klucz publiczny przesyła do B. Szyfrowanie jest tak pomyślane, aby odtworzenie klucza prywatnego na podstawie klucza publicznego, choć możliwe,
było niewykonalne w rozsądnym czasie.
Schemat zaproponowany przez Rivesta, Shamira, Adlemana jest następujący:
• A wybiera dwie duże różne liczby pierwsze pq, znajduje iloczyn
n = pq, oblicza w =nww(p − 1, q − 1) (najmniejsza wspólna
wielokrotność).
• A wymyśla liczbę s taką, że nwd(s, w) = 1. Para (s, n) jest
kluczem publicznym.
• A znajduje takie t, że ts = 1 + kw. W tym celu używa algorytmu
Euklidesa. Parę (t, n) pozostawia sobie jako klucz prywatny.
• B dzieli swoją wiadomość na bloki będące nieujemnymi liczbami
całkowitymi mniejszymi od n. Każdy blok x szyfruje obliczając
y = xs mod n.
• A odszyfrowuje wiadomość y obliczając
y t mod n = xst mod n = xkw+1 mod n = x
8
Dowód ostatniego wzoru. Małe twierdzenie Fermata mówi, że jeśli p nie
dzieli a, to ap−1 ≡ 1 (mod p). Stąd akw+1 ≡ a (mod p). Ostatnia
relacja jest prawdziwa dla każdego a. Podobnie dla każdego a zachodzi
relacja akw+1 ≡ a (mod q). Ponieważ p, q są względnie pierwsze, więc
akw+1 ≡ a (mod pq).
Uwaga. nww(a, b) = ab/nwd(a, b).
Wydaje się, że do znalezienia t potrzebny jest rozkład n na czynniki,
a jest to zadanie wymagające dużo czasu.
12. Podpis elektroniczny tworzymy szyfrując kluczem prywatnym skrót
wiadomości. Skrót wiadomości uzyskuje przy pomocy funkcji takiej,
że bardzo trudno zmienić wiadomość nie zmieniając skrótu. Podpis
dołącza się do wiadomości.
Sprawdzenie podpisu polega na utworzeniu skrótu wiadomości i porównaniu z podpisem odszyfrowanym kluczem publicznym.
Ważne jest, abyśmy mieli pewność, że klucz publiczny należy do osoby
wysyłającej wiadomość.
13. Chińskie twierdzenie o resztach. Niech m1 , m2 , . . . , mk będą
dodatnimi liczbami całkowitymi parami względnie pierwszymi.
Wtedy dla dowolnych liczb całkowitych r1 , r2 , . . . , rk , takich,
że 0 ≤ ri < m1 , i = 1, 2, . . . , k znajdziemy liczbę całkowitą n,
0 ≤ n < m1 m2 · · · mk , taką że n mod mi = ri , dla i = 1, 2, . . . , k.
Dowód. Niech m = m1 m2 · · · mk . Liczby m/mj i mj są względnie
pierwsze i dlatego równanie (m/mj )xj + mj yj = 1 ma rozwiązanie
w liczbach całkowitych xj , yj . Liczba
m
m
m
n=
x 1 r1 +
x 2 r2 + · · · +
xk rk mod m
m1
m2
mk
jest rozwiązaniem problemu. mi dzieli każdy ze składników w nawiasie,
z wyjątkiem być może składnika (m/mi )xi ri . Ponieważ składnik ten
spełnia równanie (m/mi )xi ri = ri − mi yi ri , więc reszta z dzielenia
wyrażenia w nawiasie przez mj wynosi rj . Wzięcie reszty z dzielenia
przez m daje nam pewność, że liczba n będzie spełniać nierówność
0 ≤ n < m.
14. Ciała skończone. Niech F będzie ciałem skończonym. Rozpatrzmy
sumę złożoną z k składników: 1+1+· · ·+1. Dla pewnego k otrzymamy
0. Najmniejsze k dla którego otrzymany 0 nazywamy charakterystyką
ciała. Można pokazać, że k musi być liczbą pierwszą. W przypadku ciał
nieskończonych może nie być takiego k i wtedy mówimy, że ciało ma
charakterystykę zero. Niech p będzie charakterystyką ciała F . Wtedy
ciało F zawiera jako podciało ciało Zp (rozpatrujemy elementy 0, 1,
1+1, 1+1+1, . . .). Na ciało F możemy patrzeć jak na przestrzeń liniową
9
nad ciałem Zp . Ponieważ ciało F jest skończone, więc wspomniana
przestrzeń ma skończony wymiar. Jeśli wymiar przestrzeni wynosi d,
to ciało F ma pd elementów.
Można pokazać, że dla każdego q = pd , gdzie p jest liczbą pierwszą,
istnieje ciało złożone z q elementów.
W konstrukcji wykorzystuję się twierdzenie, które mówi, że dla każdego
d > 0 znajdziemy wielomian nierozkładalny stopnia d o współczynnikach w ciele Zp . Taki wielomian można znaleźć wypisując wszystkie wielomiany stopnia d i wykreślając wielomiany będące iloczynami
wielomianów stopnia niższego.
Załóżmy, że f jest wielomianem nierozkładalnym stopnia d. Zbiór
wszystkich wielomianów stopnia mniejszego od d z dodawaniem i mnożeniem modulo wielomian f jest szukanym ciałem. Nierozkładalność
jest potrzebna, aby każdy niezerowy element miał element odwrotny.
Aby znaleźć element odwrotny do elementu h rozwiązujemy równanie
gh + f u = 1 ze względu na wielomiany h, g wykorzystując algorytm
Euklidesa oparty na dzieleniu z resztą.
Przykład: ciało czteroelementowe.
0
1
x
1+x
+
0
0
1
x
1 +x
1
1
0
1+x
x
x
x
1+x
0
1
x
1
0
1+x 1+x
×
0
1
x
1+x
0
0
0
0
0
1
x
1+x
0
0
0
1
x
1+x
x
1+x
1
1+x
1
x
Jerzy Cisło
10