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
012345678910mod 11

Znajdź 942 mod 11, resztę r, dla której 0 ≤ r < 11.

a = 942n = 11

Dokładna odpowiedź: liczba całkowita, bez zaokrąglania.

Następne zadanie →

Co ćwiczysz

  1. ŁatwyNWD i reszty
  2. Średnielementy odwrotne i kongruencje
  3. Trudnypotęgi modularne i RSA

Jak rozwiązywać zadania: Teoria liczb i arytmetyka modularna

  1. Najpierw zredukuj każdą liczbę modulo n; reszty leżą między 0 a n − 1.
  2. Aby znaleźć NWD, dziel wielokrotnie algorytmem Euklidesa; ostatnia niezerowa reszta jest NWD.
  3. Aby znaleźć element odwrotny, uruchom rozszerzony algorytm i zachowaj współczynnik przy a; dodaj n, jeśli jest ujemny.
  4. Rozwiąż a·x ≡ b, mnożąc przez a⁻¹; dwie kongruencje połącz, zapisując x = r₁ + m₁k.
  5. 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.

0123456mod 7−3 ≡ 411 ≡ 4

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?
  1. 2
  2. 3
  3. −2
  4. −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):

  1. Podziel: a = q·b + r.
  2. Zastąp (a, b) przez (b, r).
  3. Powtarzaj, aż reszta wyniesie 0. Ostatnia niezerowa reszta jest NWD.
252 = 2·105 + 42, 105 = 2·42 + 21, 42 = 2·21 + 0 → gcd = 21

Najmniejsza wspólna wielokrotność wynika stąd: NWW(a, b) = a·b / NWD(a, b).

Samosprawdzenie Ile wynosi NWD(84, 36)?
  1. 12
  2. 252
  3. 4
  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.

Przykład krok po kroku

Znajdź element odwrotny do 7 modulo 40.

1

Euklides dla (40, 7)

40 = 5·7 + 5, 7 = 1·5 + 2, 5 = 2·2 + 1
2

Śledź współczynnik t

t(40) = 0, t(7) = 1.

t(5) = 0 − 5·1 = −5, t(2) = 1 − 1·(−5) = 6, t(1) = −5 − 2·6 = −17
3

Zrób go dodatnim

1 ≡ −17·7 (mod 40), a −17 + 40 = 23.

4

Sprawdzenie

7·23 = 161 = 4·40 + 1
Odpowiedź

Elementem odwrotnym jest 7⁻¹ ≡ 23 (mod 40).

4Potęgi modularne i RSA

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:

  1. n = p·q oraz φ(n) = (p − 1)(q − 1).
  2. Wybierz e z NWD(e, φ(n)) = 1; (n, e) jest kluczem publicznym.
  3. Oblicz d = e⁻¹ mod φ(n): to klucz prywatny.
  4. 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?
  1. 13
  2. 27
  3. 37
  4. 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.

Ucz się krok po kroku w aplikacjiUcz się krok po kroku w aplikacji

Przykłady z rozwiązaniami

Przykład 1Łatwy

Znajdź (914·953) mod 11, nie wymnażając dużych liczb: najpierw zredukuj.

n = 11

Oblicz (914·953) mod 11

Pokaż podpowiedzi
  1. (x·y) mod n = ((x mod n)·(y mod n)) mod n, i to samo dotyczy sum.
  2. 914 mod 11 = 1, 953 mod 11 = 7.
  3. 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
  1. Rozłóż n na czynniki pierwsze: 637 = 72·13.
  2. φ jest multiplikatywna dla czynników względnie pierwszych, a φ(pᵏ) = pᵏ − pᵏ⁻¹.
  3. φ(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
mc = me​ mod n225m = cd​ mod n?(n, e) = (481, 23)d

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
  1. n = 481, φ(n) = 432.
  2. d = e⁻¹ mod φ(n) = 263.
  3. 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?
  1. Najpierw zredukuj każdą liczbę modulo n; reszty leżą między 0 a n − 1.
  2. Aby znaleźć NWD, dziel wielokrotnie algorytmem Euklidesa; ostatnia niezerowa reszta jest NWD.
  3. Aby znaleźć element odwrotny, uruchom rozszerzony algorytm i zachowaj współczynnik przy a; dodaj n, jeśli jest ujemny.
  4. Rozwiąż a·x ≡ b, mnożąc przez a⁻¹; dwie kongruencje połącz, zapisując x = r₁ + m₁k.
  5. 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.

Przedmioty z tym tematem

Więcej tematów: Matematyka i statystyka

Karta pracy do druku