Lý thuyết số & số học đồng dư: bài tập có lời giải từng bước

Bài tập Lý thuyết số & số học đồng dư miễn phí có hình vẽ, gợi ý và lời giải đầy đủ. Số liệu mới mỗi lần, ở ba mức độ: ước chung lớn nhất và số dư, nghịch đảo và đồng dư, lũy thừa modulo và RSA.

Bài tập miễn phíDễ
012345678910mod 11

Hãy tìm 942 mod 11, số dư r với 0 ≤ r < 11.

a = 942n = 11

Đáp án chính xác: một số nguyên, không làm tròn.

Bài tiếp theo →

Bạn luyện tập những gì

  1. Dễước chung lớn nhất và số dư
  2. Trung bìnhnghịch đảo và đồng dư
  3. Khólũy thừa modulo và RSA

Cách giải bài tập Lý thuyết số & số học đồng dư

  1. Trước hết hãy rút gọn mọi số theo modulo n; số dư nằm trong khoảng từ 0 đến n − 1.
  2. Với ước chung lớn nhất, hãy chia liên tiếp theo thuật toán Euclid; số dư khác 0 cuối cùng chính là ước chung lớn nhất.
  3. Với số nghịch đảo, hãy chạy thuật toán Euclid mở rộng và lấy hệ số của a; cộng n nếu nó âm.
  4. Giải a·x ≡ b bằng cách nhân với a⁻¹; kết hợp hai đồng dư bằng cách viết x = r₁ + m₁k.
  5. Với lũy thừa, hãy viết số mũ ở dạng nhị phân và bình phương liên tiếp; trong RSA, d = e⁻¹ mod φ(n) với φ(n) = (p − 1)(q − 1).

Lỗi thường gặp

  • Đưa ra số dư âm cho một số âm.
  • Dừng thuật toán Euclid ở số dư đầu tiên.
  • Để số nghịch đảo âm mà không cộng n.
  • Lấy số mũ RSA d theo modulo n thay vì φ(n).
  • Rút gọn số mũ theo modulo p thay vì p − 1 khi dùng định lý Fermat.

Công thức chính

Phép chia có dư
a = q·n + r, 0 ≤ r < n
Euclid
gcd(a, b) = gcd(b, a mod b)
Bội chung nhỏ nhất
lcm(a, b) = a·b/gcd(a, b)
Nghịch đảo
a·a⁻¹ ≡ 1 (mod n), gcd(a, n) = 1
Đồng dư tuyến tính
a·x ≡ b → x ≡ a⁻¹·b (mod n)
Hàm phi Euler
φ(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

Học Lý thuyết số & số học đồng dư từ đầu

1Số dư và đồng dư

Chia a cho n cho ta thương q và số dư r: a = q·n + r với 0 ≤ r < n. Số dư được viết là a mod n. Với một số âm, q cũng âm: −3 = −1·7 + 4, nên −3 mod 7 = 4.

Hai số đồng dư theo modulo n, a ≡ b (mod n), khi chúng có cùng số dư, tức là khi n chia hết a − b.

0123456mod 7−3 ≡ 411 ≡ 4

Số dư có thể được rút gọn ở mỗi bước, giúp giữ các số nhỏ:

(a + b) mod n = ((a mod n) + (b mod n)) mod n, và tương tự với a·b

Ví dụ 47·58 mod 9: 47 ≡ 2 và 58 ≡ 4, nên 47·58 ≡ 8 (mod 9).

Tự kiểm tra −17 mod 5 bằng bao nhiêu?
  1. 2
  2. 3
  3. −2
  4. −3

Đáp số: 3. −17 = −4·5 + 3, nên số dư là 3. Đáp án 2 là 17 mod 5; số dư không bao giờ âm.

2Thuật toán Euclid

Ước chung lớn nhất gcd(a, b) là số lớn nhất chia hết cho cả hai. Thuật toán Euclid dùng gcd(a, b) = gcd(b, a mod b):

  1. Chia: a = q·b + r.
  2. Thay (a, b) bằng (b, r).
  3. Lặp lại cho đến khi số dư bằng 0. Số dư khác 0 cuối cùng là ước chung lớn nhất.
252 = 2·105 + 42, 105 = 2·42 + 21, 42 = 2·21 + 0 → gcd = 21

Bội chung nhỏ nhất suy ra từ đó: lcm(a, b) = a·b / gcd(a, b).

Tự kiểm tra gcd(84, 36) bằng bao nhiêu?
  1. 12
  2. 252
  3. 4
  4. 6

Đáp số: 12. 84 = 2·36 + 12 và 36 = 3·12 + 0, nên ước chung lớn nhất là 12. 252 là bội chung nhỏ nhất, 84·36/12.

3Nghịch đảo và thuật toán mở rộng

Nghịch đảo của a theo modulo n là số x thỏa a·x ≡ 1 (mod n). Nó tồn tại đúng khi gcd(a, n) = 1.

Thuật toán Euclid mở rộng chạy Euclid trên (n, a) và giữ một hệ số t cho mỗi số dư, sao cho mọi số dư r ≡ t·a (mod n). Bắt đầu với t = 0 cho n và t = 1 cho a; mỗi t mới bằng t ở hai hàng trên trừ q nhân t ở một hàng trên. Khi số dư 1 xuất hiện, t của nó là số nghịch đảo.

Với số nghịch đảo, đồng dư a·x ≡ b (mod n) được giải bằng x ≡ a⁻¹·b. Khi d = gcd(a, n) lớn hơn 1, có d nghiệm nếu d chia hết b, và không có nghiệm nào nếu ngược lại.

Hai đồng dư với các modulo nguyên tố cùng nhau, x ≡ r₁ (mod m₁) và x ≡ r₂ (mod m₂), có đúng một nghiệm theo modulo m₁·m₂ (định lý số dư Trung Hoa). Viết x = r₁ + m₁k và giải tìm k.

Ví dụ có lời giải

Tìm nghịch đảo của 7 theo modulo 40.

1

Euclid trên (40, 7)

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

Theo dõi hệ số 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

Làm cho nó dương

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

4

Kiểm tra

7·23 = 161 = 4·40 + 1
Đáp số

Nghịch đảo là 7⁻¹ ≡ 23 (mod 40).

4Lũy thừa modulo và RSA

Bình phương lặp tính aᵏ mod n nhanh: viết k ở dạng nhị phân, tìm a, a², a⁴, a⁸, … mod n bằng cách bình phương và rút gọn, rồi nhân các lũy thừa có bit bằng 1.

Định lý Fermat nhỏ: với số nguyên tố p không chia hết a, aᵖ⁻¹ ≡ 1 (mod p). Vì vậy số mũ có thể được rút gọn theo modulo p − 1.

RSA tạo một khóa từ hai số nguyên tố p và q:

  1. n = p·q và φ(n) = (p − 1)(q − 1).
  2. Chọn e với gcd(e, φ(n)) = 1; (n, e) là khóa công khai.
  3. Tính d = e⁻¹ mod φ(n): khóa riêng.
  4. Mã hóa c = mᵉ mod n; giải mã m = cᵈ mod n.

φ(n) của Euler đếm các số từ 1 đến n nguyên tố cùng nhau với n: φ(p) = p − 1 với số nguyên tố, φ(pᵏ) = pᵏ − pᵏ⁻¹, và φ có tính nhân với các thừa số nguyên tố cùng nhau.

Tự kiểm tra Một khóa RSA dùng p = 5, q = 11 và e = 3. d bằng bao nhiêu?
  1. 13
  2. 27
  3. 37
  4. 3

Đáp số: 27. φ(n) = 4·10 = 40, và 3·27 = 81 = 2·40 + 1, nên d = 27. Nghịch đảo của 3 theo modulo n = 55 sẽ là 37, nhưng d được lấy theo modulo φ(n).

5Lỗi thường gặp

  • Cho số dư âm với một số âm: −17 mod 5 là 3, không phải −2.
  • Dừng Euclid ở số dư đầu tiên thay vì số dư khác 0 cuối cùng.
  • Quên cộng n vào một hệ số âm từ thuật toán mở rộng.
  • Tính số mũ RSA d theo modulo n thay vì theo modulo φ(n).
  • Rút gọn số mũ theo modulo p thay vì p − 1 khi dùng định lý Fermat.

6Các câu hỏi thi trông như thế nào

  • Dễ: ước chung lớn nhất và số dư. Bạn chạy thuật toán Euclid để tìm gcd hoặc lcm, tìm số dư của số âm, và rút gọn tổng và tích theo modulo n.
  • Trung bình: nghịch đảo và đồng dư. Bạn tìm nghịch đảo modulo bằng thuật toán mở rộng, giải đồng dư tuyến tính, kết hợp hai đồng dư bằng định lý số dư Trung Hoa, và tính φ(n) của Euler.
  • Khó: lũy thừa modulo và RSA. Bạn dùng bình phương lặp và định lý Fermat, giải các đồng dư có nhiều nghiệm, và tìm số mũ bí mật RSA, bản mã và thông điệp đã giải mã.

Học từng bước một trong ứng dụngHọc từng bước một trong ứng dụng

Ví dụ có lời giải

Ví dụ 1Dễ

Hãy tìm (914·953) mod 11 mà không nhân các số lớn ra: hãy rút gọn trước.

n = 11

Tìm (914·953) mod 11

Hiện các gợi ý
  1. (x·y) mod n = ((x mod n)·(y mod n)) mod n, và tương tự với tổng.
  2. 914 mod 11 = 1, 953 mod 11 = 7.
  3. Hãy rút gọn tích của các số dư theo modulo 11.
Hiện đáp án và lời giải từng bước

Tính chia hết và số dư: a mod n là số dư r với 0 ≤ r < n và a = q·n + r, cả khi a âm. Thuật toán Euclid tìm gcd(a, b) bằng cách lặp a = q·b + r và thay (a, b) bằng (b, r); số dư khác 0 cuối cùng là gcd. Khi đó lcm(a, b) = a·b/gcd(a, b). Số dư có thể được rút gọn ở mỗi bước: (a + b) mod n và (a·b) mod n chỉ phụ thuộc vào a mod n và b mod n.

Rút gọn từng số

914 ≡ 1, 953 ≡ 7 (mod 11)

Kết hợp

1·7 = 7 ≡ 7 (mod 11)

Đáp số

(914·953) mod 11 = 7
Ví dụ 2Trung bình

Hãy tìm hàm phi Euler φ(637), số các số nguyên từ 1 đến 637 nguyên tố cùng nhau với 637.

n = 637 = 72·13

Tìm φ(637)

Hiện các gợi ý
  1. Hãy phân tích n thành thừa số nguyên tố: 637 = 72·13.
  2. φ có tính nhân với các thừa số nguyên tố cùng nhau, và φ(pᵏ) = pᵏ − pᵏ⁻¹.
  3. φ(n) = n·∏(1 − 1/p).
Hiện đáp án và lời giải từng bước

Nghịch đảo và đồng dư: a có nghịch đảo theo modulo n đúng khi gcd(a, n) = 1. Thuật toán Euclid mở rộng viết 1 = s·n + t·a, và khi đó a⁻¹ ≡ t (mod n). Một đồng dư a·x ≡ b (mod n) với gcd(a, n) = 1 có nghiệm x ≡ a⁻¹·b. Hai đồng dư x ≡ r₁ (mod m₁) và x ≡ r₂ (mod m₂) với các modulo nguyên tố cùng nhau có một nghiệm theo modulo m₁·m₂ (định lý số dư Trung Hoa). φ(n) của Euler đếm các số từ 1 đến n nguyên tố cùng nhau với n: φ(n) = n·∏(1 − 1/p).

Các thừa số nguyên tố

637 = 72·13

Hàm phi

φ(637) = φ(49)·φ(13) = 42·12 = 504

Đáp số

φ(637) = 504
Ví dụ 3Khó
mc = me​ mod n225m = cd​ mod n?(n, e) = (481, 23)d

Một khóa RSA dùng p = 13, q = 37 và e = 23. Hãy giải mã bản mã c = 225: tìm thông điệp m.

p = 13q = 37e = 23c = 225

Tìm m

Hiện các gợi ý
  1. n = 481, φ(n) = 432.
  2. d = e⁻¹ mod φ(n) = 263.
  3. m = cd mod n = 225263 mod 481: dùng bình phương lặp.
Hiện đáp án và lời giải từng bước

Lũy thừa modulo và RSA: tính aᵏ mod n bằng bình phương lặp: viết k ở dạng nhị phân, bình phương, rút gọn sau mỗi bước và nhân các lũy thừa có bit bằng 1. Fermat: aᵖ⁻¹ ≡ 1 (mod p) với số nguyên tố p không chia hết a, nên số mũ có thể được rút gọn theo modulo p − 1. RSA: chọn các số nguyên tố p và q, n = p·q và φ(n) = (p − 1)(q − 1); số mũ công khai e nguyên tố cùng nhau với φ(n), và số mũ bí mật là d = e⁻¹ mod φ(n). Mã hóa bằng c = mᵉ mod n và giải mã bằng m = cᵈ mod n.

Số mũ bí mật

n = 481, φ(n) = 432
d = 23−1 mod 432 = 263

Giải mã bằng bình phương lặp

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)

Tin nhắn

m = 361
kiểm tra: 36123 mod 481 = 225

Đáp số

m = 361

Câu hỏi thường gặp

Lý thuyết số & số học đồng dư là gì?

Chia a cho n cho ta thương q và số dư r: a = q·n + r với 0 ≤ r < n. Số dư được viết là a mod n. Với một số âm, q cũng âm: −3 = −1·7 + 4, nên −3 mod 7 = 4.

Hai số đồng dư theo modulo n, a ≡ b (mod n), khi chúng có cùng số dư, tức là khi n chia hết a − b.

Làm thế nào để giải bài tập Lý thuyết số & số học đồng dư từng bước?
  1. Trước hết hãy rút gọn mọi số theo modulo n; số dư nằm trong khoảng từ 0 đến n − 1.
  2. Với ước chung lớn nhất, hãy chia liên tiếp theo thuật toán Euclid; số dư khác 0 cuối cùng chính là ước chung lớn nhất.
  3. Với số nghịch đảo, hãy chạy thuật toán Euclid mở rộng và lấy hệ số của a; cộng n nếu nó âm.
  4. Giải a·x ≡ b bằng cách nhân với a⁻¹; kết hợp hai đồng dư bằng cách viết x = r₁ + m₁k.
  5. Với lũy thừa, hãy viết số mũ ở dạng nhị phân và bình phương liên tiếp; trong RSA, d = e⁻¹ mod φ(n) với φ(n) = (p − 1)(q − 1).
Những lỗi thường gặp trong Lý thuyết số & số học đồng dư là gì?
  • Đưa ra số dư âm cho một số âm.
  • Dừng thuật toán Euclid ở số dư đầu tiên.
  • Để số nghịch đảo âm mà không cộng n.
  • Lấy số mũ RSA d theo modulo n thay vì φ(n).
  • Rút gọn số mũ theo modulo p thay vì p − 1 khi dùng định lý Fermat.
Các bài tập Lý thuyết số & số học đồng dư bao gồm những gì?
  • Dễ: ước chung lớn nhất và số dư
  • Trung bình: nghịch đảo và đồng dư
  • Khó: lũy thừa modulo và RSA

Mỗi bài tập có số liệu mới, nên bạn học phương pháp chứ không học thuộc đáp án. Bí rồi? Hãy mở một gợi ý nhỏ trước, và chỉ xem giải thích đầy đủ khi cần.

Cách luyện tập hoạt động

  • Mỗi bài tập có số liệu mới, nên bạn học phương pháp chứ không học thuộc đáp án.
  • Bí rồi? Hãy mở một gợi ý nhỏ trước, và chỉ xem giải thích đầy đủ khi cần.
  • Tiến độ, lỗi sai và các bài đã lưu của bạn được giữ lại, để bạn xem lại trước kỳ thi.

Các môn học có chủ đề này

Thêm chủ đề trong Toán học và thống kê

Phiếu bài tập in được