MathLabs

Số học và Lý thuyết số

Định lý Fermat nhỏ, định lý Euler

Các kết quả cổ điển mô tả cách lũy thừa hoạt động theo modulo một số nguyên tố hoặc một số nguyên bất kỳ.

Trực giácMột chiếc đồng hồ có số giờ là số nguyên tố

Chọn một vị trí kim giờ aa bất kỳ trên đồng hồ 1313 giờ không trùng đúng vị trí 1212 (tức gcd⁡(a,13)=1\gcd(a,13)=1), rồi liên tục nhân nó với chính nó: a,a2,a3,…(mod13)a, a^2, a^3, \dots \pmod{13}. Một điều đáng chú ý xảy ra sau đúng 1212 lần nhân — bạn luôn quay lại 11, bất kể chọn giờ xuất phát nào. Đây chính là định lý Fermat nhỏ: với số nguyên tố pp, mọi thặng dư khác không lũy thừa lên p−1p-1 đều trở về 11. Định lý Euler tổng quát hóa điều này từ đồng hồ nguyên tố sang đồng hồ cỡ bất kỳ nn, thay p−1p-1 bằng φ(n)\varphi(n), số lượng số tới nn không có ước chung với nó. Cùng nhau, hai định lý này là động cơ toán học bên trong mã hóa RSA và các phép kiểm tra số nguyên tố nhanh.

Đồ thị mạng cho thấy các chu trình hình thành bởi phép nhân lặp lại theo môđun số nguyên tố.
Với mô-đun nguyên tố m=pm = p và aa nguyên tố cùng nhau với pp, ánh xạ nhân x↦ax mod px \mapsto ax \bmod p là song ánh trên các số dư khác không — bước then chốt chứng minh ap−1≡1(modp)a^{p-1} \equiv 1 \pmod p.

Phổ thôngPhát biểu và hàm phi Euler

Định nghĩa: Hàm phi Euler φ(n)\varphi(n)

Với số nguyên dương nn, định nghĩa φ(n)=#{ 1≤k≤n:gcd⁡(k,n)=1 }\varphi(n) = \#\{\,1\le k\le n : \gcd(k,n)=1\,\}: số lượng số nguyên từ 11 tới nn nguyên tố cùng nhau với nn. Với số nguyên tố pp, mọi số trong 1,…,p−11,\dots,p-1 đều nguyên tố cùng nhau với pp, nên φ(p)=p−1\varphi(p)=p-1. Tổng quát, φ\varphi có thể tính từ phân tích thừa số nguyên tố của nn bằng φ(n)=n∏p∣n(1−1p)\varphi(n) = n\prod_{p\mid n}\left(1-\frac{1}{p}\right), trong đó tích chạy trên các số nguyên tố phân biệt chia hết nn.

ap−1≡1(modp)(p prime, gcd⁡(a,p)=1)a^{p-1} \equiv 1 \pmod{p} \qquad (p \text{ prime},\ \gcd(a,p)=1)

Đây là định lý Fermat nhỏ. Định lý Euler thay môđun nguyên tố bằng môđun bất kỳ nn và p−1p-1 bằng φ(n)\varphi(n): hễ gcd⁡(a,n)=1\gcd(a,n)=1, ta có aφ(n)≡1(modn)a^{\varphi(n)} \equiv 1 \pmod{n}. Lấy n=pn=p nguyên tố khôi phục đúng phát biểu của Fermat, vì φ(p)=p−1\varphi(p)=p-1.

aφ(n)≡1(modn)(gcd⁡(a,n)=1)a^{\varphi(n)} \equiv 1 \pmod{n} \qquad (\gcd(a,n)=1)
Fermat so với Euler
MôđunPhát biểuNhóm liên quan
Số nguyên tố ppap−1≡1(modp)a^{p-1}\equiv1\pmod p(Z/pZ)∗(\mathbb{Z}/p\mathbb{Z})^{*}, cấp p−1p-1
Bất kỳ nnaφ(n)≡1(modn)a^{\varphi(n)}\equiv1\pmod n(Z/nZ)∗(\mathbb{Z}/n\mathbb{Z})^{*}, cấp φ(n)\varphi(n)

Đại họcCác định lý

Nếu pp là số nguyên tố và gcd⁡(a,p)=1\gcd(a,p)=1, thì ap−1≡1(modp)a^{p-1} \equiv 1 \pmod{p}. Tương đương, ap≡a(modp)a^{p} \equiv a \pmod{p} với mọi số nguyên aa.

Vì sao đúng?

Các thặng dư khác không theo môđun một số nguyên tố pp lập thành một hệ đóng dưới phép nhân: nhân mỗi thặng dư đó với một aa cố định chỉ xáo trộn chúng trong chính tập đó. Lặp lại việc xáo trộn này p−1p-1 lần vì thế phải đưa mọi phần tử về đúng vị trí của nó, đó chính xác là phát biểu ap−1≡1(modp)a^{p-1}\equiv1\pmod p.

Chứng minh

Xét tập S={1,2,…,p−1}S=\{1,2,\dots,p-1\} các thặng dư khác không theo môđun pp, và ánh xạ x↦ax mod px \mapsto ax \bmod p gửi mỗi phần tử của SS tới một thặng dư.

Ánh xạ này đơn ánh trên SS: nếu ax≡ay(modp)ax\equiv ay\pmod p với x,y∈Sx,y\in S, thì vì gcd⁡(a,p)=1\gcd(a,p)=1, luật giản ước (đã chứng minh ở chủ đề trước) cho x≡y(modp)x\equiv y\pmod p, suy ra x=yx=y vì cả hai đều nằm trong {1,…,p−1}\{1,\dots,p-1\}. Cũng không có axax nào ≡0(modp)\equiv 0\pmod p với x∈Sx\in S, vì pp nguyên tố và không chia hết aa lẫn xx. Vậy ánh xạ thực sự rơi lại vào trong SS.

Một ánh xạ đơn ánh từ tập hữu hạn SS vào chính nó tự động là song ánh. Do đó {a⋅1,a⋅2,…,a⋅(p−1)}(modp)\{a\cdot1,a\cdot2,\dots,a\cdot(p-1)\} \pmod p chỉ đơn giản là {1,2,…,p−1}\{1,2,\dots,p-1\} được viết theo thứ tự khác.

Nhân tất cả p−1p-1 phần tử của cả hai tập lại với nhau. Một bên ta được (a⋅1)(a⋅2)⋯(a⋅(p−1))=ap−1 (p−1)!(a\cdot1)(a\cdot2)\cdots(a\cdot(p-1)) = a^{p-1}\,(p-1)!; bên kia, vì là cùng các số được sắp lại, ta được đúng (p−1)!(p-1)!. Vậy ap−1(p−1)!≡(p−1)!(modp)a^{p-1}(p-1)! \equiv (p-1)! \pmod p.

Vì pp nguyên tố, không số nào trong 1,2,…,p−11,2,\dots,p-1 chia hết cho pp, nên gcd⁡((p−1)!,p)=1\gcd((p-1)!,p)=1. Áp dụng luật giản ước một lần nữa để bỏ nhân tử chung (p−1)!(p-1)! ở cả hai vế cho ap−1≡1(modp)a^{p-1}\equiv1\pmod p. ■\blacksquare

(Phát biểu lại theo ngôn ngữ nhóm: các thặng dư khác không lập thành một nhóm cấp p−1p-1 dưới phép nhân vì pp nguyên tố, và định lý Lagrange nói cấp của mọi phần tử — ở đây, số kk nhỏ nhất với ak≡1a^k\equiv1 — phải chia hết cấp nhóm p−1p-1; do đó ap−1≡1(modp)a^{p-1}\equiv1\pmod p tự động đúng.)

Định lý: Định lý Euler

Nếu gcd⁡(a,n)=1\gcd(a,n)=1, thì aφ(n)≡1(modn)a^{\varphi(n)} \equiv 1 \pmod{n}, trong đó φ\varphi là hàm phi Euler.

Vì sao đúng?

Đây chính là lập luận của Fermat với môđun tổng quát nn: thay vì mọi thặng dư khác không (chỉ lập thành hệ nhân đóng khi nn nguyên tố), ta giới hạn vào các thặng dư thực sự nguyên tố cùng nhau với nn — những thặng dư có nghịch đảo — và cùng lập luận xáo trộn áp dụng cho tập đóng nhỏ hơn này có kích thước φ(n)\varphi(n).

Chứng minh

Gọi R={r1,…,rφ(n)}R=\{r_1,\dots,r_{\varphi(n)}\} là một hệ thặng dư thu gọn theo môđun nn: đại diện của mọi lớp thặng dư nguyên tố cùng nhau với nn.

Phép nhân với aa hoán vị RR: với mỗi rir_i, gcd⁡(ari,n)=1\gcd(ar_i,n)=1 vì gcd⁡(a,n)=1\gcd(a,n)=1 và gcd⁡(ri,n)=1\gcd(r_i,n)=1 (một tích nguyên tố cùng nhau với nn khi và chỉ khi cả hai thừa số đều vậy), nên ari mod nar_i \bmod n lại là thành viên của các lớp thặng dư nguyên tố cùng nhau; và ánh xạ ri↦ari mod nr_i\mapsto ar_i \bmod n đơn ánh theo luật giản ước, vì gcd⁡(a,n)=1\gcd(a,n)=1.

Một ánh xạ đơn ánh từ tập hữu hạn RR vào chính nó (theo thặng dư) là song ánh, nên {ar1,…,arφ(n)}(modn)\{ar_1,\dots,ar_{\varphi(n)}\} \pmod n chỉ là {r1,…,rφ(n)}\{r_1,\dots,r_{\varphi(n)}\} được sắp lại.

Nhân tất cả φ(n)\varphi(n) phần tử của mỗi tập: aφ(n) (r1r2⋯rφ(n))≡r1r2⋯rφ(n)(modn)a^{\varphi(n)}\, (r_1 r_2\cdots r_{\varphi(n)}) \equiv r_1 r_2 \cdots r_{\varphi(n)} \pmod n. Vì mỗi rir_i nguyên tố cùng nhau với nn, nên tích R=∏riR=\prod r_i của chúng cũng vậy, tức gcd⁡(R,n)=1\gcd(R,n)=1.

Giản ước RR ở cả hai vế (hợp lệ vì gcd⁡(R,n)=1\gcd(R,n)=1) được aφ(n)≡1(modn)a^{\varphi(n)}\equiv1\pmod n. ■\blacksquare

Đây lại là định lý Lagrange dưới một hình thức khác: các thặng dư nguyên tố cùng nhau với nn lập thành một nhóm cấp φ(n)\varphi(n) dưới phép nhân (nhóm đơn vị (Z/nZ)∗(\mathbb{Z}/n\mathbb{Z})^{*}), và cấp của mọi phần tử chia hết φ(n)\varphi(n).

Nâng caoỨng dụng thực tiễn và Ví dụ minh họa

Định lý Euler là trái tim toán học của mật mã khóa công khai RSA — tính đúng đắn của giải mã dựa vào việc lũy thừa lên φ(n)\varphi(n) rồi quay lại 11. Định lý Fermat nhỏ cho một phép kiểm tra số nguyên tố xác suất nhanh (thử một cơ số aa và kiểm tra ap−1≡1a^{p-1}\equiv1), và cho phép tính nghịch đảo modulo dưới dạng ap−2 mod pa^{p-2}\bmod p mà không cần thuật toán Euclid mở rộng. Cả hai định lý còn là nền tảng của phép lũy thừa modulo nhanh dùng khắp lý thuyết mã hóa và sinh số giả ngẫu nhiên.

Ví dụ: Vì sao giải mã RSA hoạt động

Lấy p=5,q=11p=5,q=11, nên n=pq=55n=pq=55 và φ(n)=(p−1)(q−1)=40\varphi(n)=(p-1)(q-1)=40. Chọn số mũ công khai e=3e=3 (vì gcd⁡(3,40)=1\gcd(3,40)=1) và số mũ bí mật d=27d=27 (vì 3×27=81=2×40+13\times27=81=2\times40+1, nên ed≡1(mod40)ed\equiv1\pmod{40}). Mã hóa m=2m=2 thành c=me mod nc=m^e\bmod n, rồi giải mã cc và kiểm tra bạn thu lại m=2m=2.

Lời giải

Mã hóa: c=23 mod 55=8c = 2^3 \bmod 55 = 8.

Giải mã lũy thừa bản mã lên số mũ bí mật: m′=cd mod n=827 mod 55m' = c^d \bmod n = 8^{27}\bmod 55. Vì ed=1+kφ(n)ed = 1+k\varphi(n) với một số nguyên kk nào đó (ở đây 81=1+2×4081=1+2\times40), ta có m′≡med=m1+kφ(n)=m⋅(mφ(n))k(modn)m' \equiv m^{ed} = m^{1+k\varphi(n)} = m\cdot(m^{\varphi(n)})^k \pmod n.

Vì gcd⁡(m,n)=gcd⁡(2,55)=1\gcd(m,n)=\gcd(2,55)=1, định lý Euler cho mφ(n)≡1(modn)m^{\varphi(n)}\equiv1\pmod n, nên (mφ(n))k≡1k=1(modn)(m^{\varphi(n)})^k\equiv1^k=1\pmod n, và do đó m′≡m⋅1=m(modn)m'\equiv m\cdot1 = m \pmod n.

Về số: 827 mod 558^{27}\bmod55 có thể tính bằng bình phương lặp lại (82=64≡98^2=64\equiv9, 84≡81≡268^4\equiv81\equiv26, 88≡262=676≡676−660=168^8\equiv26^2=676\equiv676-660=16, 816≡162=256≡256−220=368^{16}\equiv16^2=256\equiv256-220=36; rồi 827=816⋅88⋅82⋅81≡36×16×9×88^{27}=8^{16}\cdot8^8\cdot8^2\cdot8^1\equiv36\times16\times9\times8). Rút gọn từng bước theo môđun 5555 cho đúng 22, xác nhận giải mã khôi phục đúng thông điệp gốc m=2m=2 — chính xác như định lý Euler đảm bảo cho mọi thông điệp và mọi cặp số nguyên tố p,qp,q, không chỉ ví dụ này.

Ví dụ: Số giả nguyên tố Fermat: khi phép kiểm tra nói dối

Chứng tỏ 341=11×31341=11\times31 (là hợp số) vẫn thỏa mãn 2340≡1(mod341)2^{340}\equiv1\pmod{341} — đúng kết luận mà định lý Fermat nhỏ sẽ dự đoán nếu 341341 là số nguyên tố.

Lời giải

Làm việc theo từng ước nguyên tố riêng biệt. Theo môđun 1111: vì 1111 nguyên tố và gcd⁡(2,11)=1\gcd(2,11)=1, Fermat cho 210≡1(mod11)2^{10}\equiv1\pmod{11}; vì 340=10×34340=10\times34, ta được 2340=(210)34≡134=1(mod11)2^{340}=(2^{10})^{34}\equiv1^{34}=1\pmod{11}.

Theo môđun 3131: ở đây 25=32≡1(mod31)2^5=32\equiv1\pmod{31}, nên 22 có cấp 55 theo môđun 3131 (một ước của φ(31)=30\varphi(31)=30, khớp với Fermat/Euler). Vì 340=5×68340=5\times68 là bội của 55, 2340=(25)68≡168=1(mod31)2^{340}=(2^5)^{68}\equiv1^{68}=1\pmod{31}.

Vậy 2340≡12^{340}\equiv1 cả theo môđun 1111 lẫn môđun 3131. Theo định lý phần dư Trung Hoa (chủ đề tiếp theo), việc ≡1\equiv1 theo hai số nguyên tố cùng nhau 1111 và 3131 buộc 2340≡1(mod341)2^{340}\equiv1\pmod{341} luôn, dù 341341 không phải số nguyên tố.

Một hợp số nn thỏa an−1≡1(modn)a^{n-1}\equiv1\pmod n với cơ số aa nguyên tố cùng nhau với nó gọi là **số giả nguyên tố Fermat cơ số aa**; 341341 là số giả nguyên tố nhỏ nhất cơ số 22. Đây chính xác là lý do phép kiểm tra Fermat chỉ là một suy nghiệm xác suất, không phải chứng minh tính nguyên tố — một cạm bẫy sẽ khám phá thêm dưới đây.

Nghiên cứuFermat và Euler ở biên giới nghiên cứu: tính nguyên tố, số giả nguyên tố và mật mã hậu lượng tử

Theo định lý Fermat nhỏ, nếu p=13p=13 và gcd⁡(a,13)=1\gcd(a,13)=1 thì a12(mod13)a^{12}\pmod{13} bằng bao nhiêu?

Tính φ(20)\varphi(20).

Trong RSA với n=55n=55, φ(n)=40\varphi(n)=40, và số mũ công khai e=3e=3, số mũ bí mật dd phải thỏa mãn:

341=11×31341=11\times31 thỏa 2340≡1(mod341)2^{340}\equiv1\pmod{341} dù là hợp số. Hiện tượng này gọi là gì?

Tài liệu tham khảo

  1. Ronald L. Rivest, Adi Shamir, Leonard M. Adleman (1978). A Method for Obtaining Digital Signatures and Public-Key Cryptosystems · DOI:10.1145/359340.359342
  2. W. R. Alford, Andrew Granville, Carl Pomerance (1994). There are Infinitely Many Carmichael Numbers · DOI:10.2307/2118576