Teoria liczb i arytmetyka modularna: zadania z rozwiązaniami krok po kroku
Darmowe zadania z tematu Teoria liczb i arytmetyka modularna z rysunkami, podpowiedziami i pełnymi rozwiązaniami. Za każdym razem nowe wartości, na trzech poziomach: NWD i reszty, elementy odwrotne i kongruencje, potęgi modularne i RSA.
Darmowe zadanieŁatwy
Znajdź 942 mod 11, resztę r, dla której 0 ≤ r < 11.
a = 942n = 11
Dokładna odpowiedź: liczba całkowita, bez zaokrąglania.
Jak rozwiązywać zadania: Teoria liczb i arytmetyka modularna
Najpierw zredukuj każdą liczbę modulo n; reszty leżą między 0 a n − 1.
Aby znaleźć NWD, dziel wielokrotnie algorytmem Euklidesa; ostatnia niezerowa reszta jest NWD.
Aby znaleźć element odwrotny, uruchom rozszerzony algorytm i zachowaj współczynnik przy a; dodaj n, jeśli jest ujemny.
Rozwiąż a·x ≡ b, mnożąc przez a⁻¹; dwie kongruencje połącz, zapisując x = r₁ + m₁k.
Przy potęgach zapisz wykładnik binarnie i wielokrotnie podnoś do kwadratu; w RSA d = e⁻¹ mod φ(n), gdzie φ(n) = (p − 1)(q − 1).
Typowe błędy
Podanie ujemnej reszty dla liczby ujemnej.
Zatrzymanie algorytmu Euklidesa na pierwszej reszcie.
Pozostawienie elementu odwrotnego ujemnego zamiast dodania n.
Branie wykładnika RSA d modulo n zamiast φ(n).
Redukowanie wykładnika modulo p zamiast p − 1 w twierdzeniu Fermata.
Najważniejsze wzory
Dzielenie z resztą
a = q·n + r, 0 ≤ r < n
Euklides
gcd(a, b) = gcd(b, a mod b)
Najmniejsza wspólna wielokrotność
lcm(a, b) = a·b/gcd(a, b)
Odwrotność
a·a⁻¹ ≡ 1 (mod n), gcd(a, n) = 1
Kongruencja liniowa
a·x ≡ b → x ≡ a⁻¹·b (mod n)
Funkcja φ Eulera
φ(n) = n·∏(1 − 1/p), φ(pᵏ) = pᵏ − pᵏ⁻¹
Fermat
aᵖ⁻¹ ≡ 1 (mod p)
RSA
n = pq, φ = (p − 1)(q − 1), d = e⁻¹ mod φ, c = mᵉ mod n, m = cᵈ mod n
Naucz się tematu Teoria liczb i arytmetyka modularna od zera
1Reszty i kongruencje
Dzielenie a przez n daje iloraz q i resztę r: a = q·n + r, gdzie 0 ≤ r < n. Resztę zapisujemy jako a mod n. Dla liczby ujemnej q też jest ujemne: −3 = −1·7 + 4, więc −3 mod 7 = 4.
Dwie liczby są przystające modulo n, a ≡ b (mod n), gdy dają tę samą resztę, czyli gdy n dzieli a − b.
Reszty można redukować w każdym kroku, co utrzymuje małe liczby:
(a + b) mod n = ((a mod n) + (b mod n)) mod n, i tak samo dla a·b
Na przykład 47·58 mod 9: 47 ≡ 2 i 58 ≡ 4, więc 47·58 ≡ 8 (mod 9).
Samosprawdzenie Ile wynosi −17 mod 5?
2
3
−2
−3
Odpowiedź: 3. −17 = −4·5 + 3, więc reszta wynosi 3. Odpowiedź 2 to 17 mod 5; reszta nigdy nie jest ujemna.
2Algorytm Euklidesa
Największy wspólny dzielnik NWD(a, b) to największa liczba dzieląca obie. Algorytm Euklidesa używa NWD(a, b) = NWD(b, a mod b):
Podziel: a = q·b + r.
Zastąp (a, b) przez (b, r).
Powtarzaj, aż reszta wyniesie 0. Ostatnia niezerowa reszta jest NWD.
Najmniejsza wspólna wielokrotność wynika stąd: NWW(a, b) = a·b / NWD(a, b).
Samosprawdzenie Ile wynosi NWD(84, 36)?
12
252
4
6
Odpowiedź: 12. 84 = 2·36 + 12 i 36 = 3·12 + 0, więc NWD wynosi 12. Liczba 252 to najmniejsza wspólna wielokrotność, 84·36/12.
3Elementy odwrotne i rozszerzony algorytm
Element odwrotny do a modulo n to liczba x, dla której a·x ≡ 1 (mod n). Istnieje dokładnie wtedy, gdy NWD(a, n) = 1.
Rozszerzony algorytm Euklidesa wykonuje Euklidesa na (n, a) i przy każdej reszcie zapamiętuje współczynnik t, tak aby każda reszta r ≡ t·a (mod n). Zacznij od t = 0 dla n i t = 1 dla a; każde nowe t to t sprzed dwóch wierszy minus q razy t sprzed jednego wiersza. Gdy pojawi się reszta 1, jej t jest elementem odwrotnym.
Mając element odwrotny, kongruencję a·x ≡ b (mod n) rozwiązujemy jako x ≡ a⁻¹·b. Gdy d = NWD(a, n) jest większe niż 1, jest d rozwiązań, jeśli d dzieli b, a w przeciwnym razie żadnego.
Dwie kongruencje o względnie pierwszych modułach, x ≡ r₁ (mod m₁) i x ≡ r₂ (mod m₂), mają dokładnie jedno rozwiązanie modulo m₁·m₂ (chińskie twierdzenie o resztach). Zapisz x = r₁ + m₁k i rozwiąż względem k.
Wielokrotne podnoszenie do kwadratu szybko oblicza aᵏ mod n: zapisz k binarnie, znajdź a, a², a⁴, a⁸, … mod n przez podnoszenie do kwadratu i redukcję, a następnie pomnóż potęgi, których bit jest równy 1.
Małe twierdzenie Fermata: dla liczby pierwszej p, która nie dzieli a, aᵖ⁻¹ ≡ 1 (mod p). Zatem wykładnik można redukować modulo p − 1.
RSA buduje klucz z dwóch liczb pierwszych p i q:
n = p·q oraz φ(n) = (p − 1)(q − 1).
Wybierz e z NWD(e, φ(n)) = 1; (n, e) jest kluczem publicznym.
Oblicz d = e⁻¹ mod φ(n): to klucz prywatny.
Szyfrowanie c = mᵉ mod n; odszyfrowanie m = cᵈ mod n.
Funkcja φ(n) Eulera zlicza liczby od 1 do n względnie pierwsze z n: φ(p) = p − 1 dla liczby pierwszej, φ(pᵏ) = pᵏ − pᵏ⁻¹, a φ jest multiplikatywna dla czynników względnie pierwszych.
Samosprawdzenie Klucz RSA używa p = 5, q = 11 i e = 3. Ile wynosi d?
13
27
37
3
Odpowiedź: 27. φ(n) = 4·10 = 40, a 3·27 = 81 = 2·40 + 1, więc d = 27. Element odwrotny do 3 modulo n = 55 wynosiłby 37, ale d bierze się modulo φ(n).
5Typowe błędy
Podanie ujemnej reszty dla liczby ujemnej: −17 mod 5 to 3, nie −2.
Zatrzymanie Euklidesa na pierwszej reszcie zamiast na ostatniej niezerowej.
Zapomnienie o dodaniu n do ujemnego współczynnika z rozszerzonego algorytmu.
Obliczanie wykładnika RSA d modulo n zamiast modulo φ(n).
Redukowanie wykładnika modulo p zamiast p − 1 w twierdzeniu Fermata.
6Jak wyglądają zadania egzaminacyjne
Łatwe: NWD i reszty. Wykonujesz algorytm Euklidesa dla NWD lub NWW, znajdujesz reszty liczb ujemnych i redukujesz sumy oraz iloczyny modulo n.
Średnie: elementy odwrotne i kongruencje. Znajdujesz odwrotności modularne rozszerzonym algorytmem, rozwiązujesz kongruencje liniowe, łączysz dwie kongruencje chińskim twierdzeniem o resztach i obliczasz φ(n) Eulera.
Trudne: potęgi modularne i RSA. Używasz wielokrotnego podnoszenia do kwadratu i twierdzenia Fermata, rozwiązujesz kongruencje z wieloma rozwiązaniami oraz znajdujesz prywatne wykładniki RSA, szyfrogramy i odszyfrowane wiadomości.
Znajdź (914·953) mod 11, nie wymnażając dużych liczb: najpierw zredukuj.
n = 11
Oblicz (914·953) mod 11
Pokaż podpowiedzi
(x·y) mod n = ((x mod n)·(y mod n)) mod n, i to samo dotyczy sum.
914 mod 11 = 1, 953 mod 11 = 7.
Zredukuj iloczyn reszt modulo 11.
Pokaż odpowiedź i rozwiązanie krok po kroku
Podzielność i reszty: a mod n to reszta r, dla której 0 ≤ r < n i a = q·n + r, także gdy a jest ujemne. Algorytm Euklidesa znajduje NWD(a, b), powtarzając a = q·b + r i zastępując (a, b) przez (b, r); ostatnia niezerowa reszta jest NWD. Wtedy NWW(a, b) = a·b/NWD(a, b). Reszty można redukować w każdym kroku: (a + b) mod n i (a·b) mod n zależą tylko od a mod n i b mod n.
Zredukuj każdą liczbę
914 ≡ 1, 953 ≡ 7 (mod 11)
Połącz
1·7 = 7 ≡ 7 (mod 11)
Odpowiedź
(914·953) mod 11 = 7
Przykład 2Średni
Znajdź funkcję φ Eulera φ(637), czyli liczbę liczb całkowitych od 1 do 637 względnie pierwszych z 637.
n = 637 = 72·13
Oblicz φ(637)
Pokaż podpowiedzi
Rozłóż n na czynniki pierwsze: 637 = 72·13.
φ jest multiplikatywna dla czynników względnie pierwszych, a φ(pᵏ) = pᵏ − pᵏ⁻¹.
φ(n) = n·∏(1 − 1/p).
Pokaż odpowiedź i rozwiązanie krok po kroku
Elementy odwrotne i kongruencje: a ma element odwrotny modulo n dokładnie wtedy, gdy NWD(a, n) = 1. Rozszerzony algorytm Euklidesa zapisuje 1 = s·n + t·a, a wtedy a⁻¹ ≡ t (mod n). Kongruencja a·x ≡ b (mod n) przy NWD(a, n) = 1 ma rozwiązanie x ≡ a⁻¹·b. Dwie kongruencje x ≡ r₁ (mod m₁) i x ≡ r₂ (mod m₂) o względnie pierwszych modułach mają jedno rozwiązanie modulo m₁·m₂ (chińskie twierdzenie o resztach). Funkcja φ(n) Eulera zlicza liczby od 1 do n względnie pierwsze z n: φ(n) = n·∏(1 − 1/p).
Czynniki pierwsze
637 = 72·13
Funkcja φ
φ(637) = φ(49)·φ(13) = 42·12 = 504
Odpowiedź
φ(637) = 504
Przykład 3Trudny
Klucz RSA używa p = 13, q = 37 i e = 23. Odszyfruj szyfrogram c = 225: znajdź wiadomość m.
p = 13q = 37e = 23c = 225
Oblicz m
Pokaż podpowiedzi
n = 481, φ(n) = 432.
d = e⁻¹ mod φ(n) = 263.
m = cd mod n = 225263 mod 481: użyj wielokrotnego podnoszenia do kwadratu.
Pokaż odpowiedź i rozwiązanie krok po kroku
Potęgi modularne i RSA: oblicz aᵏ mod n przez wielokrotne podnoszenie do kwadratu: zapisz k binarnie, podnoś do kwadratu, redukuj po każdym kroku i mnóż potęgi, których bit jest równy 1. Fermat: aᵖ⁻¹ ≡ 1 (mod p) dla liczby pierwszej p niedzielącej a, więc wykładnik można redukować modulo p − 1. RSA: wybierz liczby pierwsze p i q, n = p·q i φ(n) = (p − 1)(q − 1); wykładnik publiczny e jest względnie pierwszy z φ(n), a wykładnik prywatny to d = e⁻¹ mod φ(n). Szyfruj wzorem c = mᵉ mod n, a odszyfrowuj wzorem m = cᵈ mod n.
Wykładnik prywatny
n = 481, φ(n) = 432
d = 23−1 mod 432 = 263
Odszyfruj przez wielokrotne podnoszenie do kwadratu
263 = 256 + 4 + 2 + 1
2251 ≡ 225 (mod 481)
2252 ≡ 120 (mod 481)
2254 ≡ 451 (mod 481)
2258 ≡ 419 (mod 481)
22516 ≡ 477 (mod 481)
22532 ≡ 16 (mod 481)
22564 ≡ 256 (mod 481)
225128 ≡ 120 (mod 481)
225256 ≡ 451 (mod 481)
225263 ≡ 225·120·451·451 ≡ 361 (mod 481)
Wiadomość
m = 361
sprawdzenie: 36123 mod 481 = 225
Odpowiedź
m = 361
Pytania i odpowiedzi
Teoria liczb i arytmetyka modularna: co to jest?
Dzielenie a przez n daje iloraz q i resztę r: a = q·n + r, gdzie 0 ≤ r < n. Resztę zapisujemy jako a mod n. Dla liczby ujemnej q też jest ujemne: −3 = −1·7 + 4, więc −3 mod 7 = 4.
Dwie liczby są przystające modulo n, a ≡ b (mod n), gdy dają tę samą resztę, czyli gdy n dzieli a − b.
Teoria liczb i arytmetyka modularna: jak rozwiązywać zadania krok po kroku?
Najpierw zredukuj każdą liczbę modulo n; reszty leżą między 0 a n − 1.
Aby znaleźć NWD, dziel wielokrotnie algorytmem Euklidesa; ostatnia niezerowa reszta jest NWD.
Aby znaleźć element odwrotny, uruchom rozszerzony algorytm i zachowaj współczynnik przy a; dodaj n, jeśli jest ujemny.
Rozwiąż a·x ≡ b, mnożąc przez a⁻¹; dwie kongruencje połącz, zapisując x = r₁ + m₁k.
Przy potęgach zapisz wykładnik binarnie i wielokrotnie podnoś do kwadratu; w RSA d = e⁻¹ mod φ(n), gdzie φ(n) = (p − 1)(q − 1).
Teoria liczb i arytmetyka modularna: jakie błędy są najczęstsze?
Podanie ujemnej reszty dla liczby ujemnej.
Zatrzymanie algorytmu Euklidesa na pierwszej reszcie.
Pozostawienie elementu odwrotnego ujemnego zamiast dodania n.
Branie wykładnika RSA d modulo n zamiast φ(n).
Redukowanie wykładnika modulo p zamiast p − 1 w twierdzeniu Fermata.
Teoria liczb i arytmetyka modularna: co ćwiczysz?
Łatwy: NWD i reszty
Średni: elementy odwrotne i kongruencje
Trudny: potęgi modularne i RSA
Każde zadanie ma nowe wartości, więc uczysz się metody, a nie odpowiedzi. Utknąłeś? Najpierw otwórz małą podpowiedź, a pełne wyjaśnienie dopiero wtedy, gdy go potrzebujesz.
Jak wygląda ćwiczenie
Każde zadanie ma nowe wartości, więc uczysz się metody, a nie odpowiedzi.
Utknąłeś? Najpierw otwórz małą podpowiedź, a pełne wyjaśnienie dopiero wtedy, gdy go potrzebujesz.
Twoje postępy, błędy i zapisane zadania są zachowywane, więc możesz je powtórzyć przed egzaminem.