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ờ a bất kỳ trên đồng hồ 13 giờ không trùng đúng vị trí 12 (tức gcd(a,13)=1), rồi liên tục nhân nó với chính nó: a,a2,a3,…(mod13). Một điều đáng chú ý xảy ra sau đúng 12 lần nhân — bạn luôn quay lại 1, 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ố p, mọi thặng dư khác không lũy thừa lên p−1 đều trở về 1. Đị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ỳ n, thay p−1 bằng φ(n), số lượng số tới n 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=p và a nguyên tố cùng nhau với p, ánh xạ nhân x↦axmodp 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).
Phổ thôngPhát biểu và hàm phi Euler
Định nghĩa: Hàm phi Euler φ(n)
Với số nguyên dương n, định nghĩa φ(n)=#{1≤k≤n:gcd(k,n)=1}: số lượng số nguyên từ 1 tới n nguyên tố cùng nhau với n. Với số nguyên tố p, mọi số trong 1,…,p−1 đều nguyên tố cùng nhau với p, nên φ(p)=p−1. Tổng quát, φ có thể tính từ phân tích thừa số nguyên tố của n bằng φ(n)=n∏p∣n(1−p1), trong đó tích chạy trên các số nguyên tố phân biệt chia hết n.
ap−1≡1(modp)(p 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ỳ n và p−1 bằng φ(n): hễ gcd(a,n)=1, ta có aφ(n)≡1(modn). Lấy n=p nguyên tố khôi phục đúng phát biểu của Fermat, vì φ(p)=p−1.
Nếu p là số nguyên tố và gcd(a,p)=1, thì ap−1≡1(modp). Tương đương, ap≡a(modp) với mọi số nguyên a.
Vì sao đúng?
Các thặng dư khác không theo môđun một số nguyên tố p 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 a 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−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).
Chứng minh
Xét tập S={1,2,…,p−1} các thặng dư khác không theo môđun p, và ánh xạ x↦axmodp gửi mỗi phần tử của S tới một thặng dư.
Ánh xạ này đơn ánh trên S: nếu ax≡ay(modp) với x,y∈S, thì vì gcd(a,p)=1, luật giản ước (đã chứng minh ở chủ đề trước) cho x≡y(modp), suy ra x=y vì cả hai đều nằm trong {1,…,p−1}. Cũng không có ax nào ≡0(modp) với x∈S, vì p nguyên tố và không chia hết a lẫn x. Vậy ánh xạ thực sự rơi lại vào trong S.
Một ánh xạ đơn ánh từ tập hữu hạn S vào chính nó tự động là song ánh. Do đó {a⋅1,a⋅2,…,a⋅(p−1)}(modp) chỉ đơn giản là {1,2,…,p−1} được viết theo thứ tự khác.
Nhân tất cả p−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)!; bên kia, vì là cùng các số được sắp lại, ta được đúng (p−1)!. Vậy ap−1(p−1)!≡(p−1)!(modp).
Vì p nguyên tố, không số nào trong 1,2,…,p−1 chia hết cho p, nên 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)! ở cả hai vế cho ap−1≡1(modp). ■
(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−1 dưới phép nhân vì p nguyên tố, và định lý Lagrange nói cấp của mọi phần tử — ở đây, số k nhỏ nhất với ak≡1 — phải chia hết cấp nhóm p−1; do đó ap−1≡1(modp) tự động đúng.)
Nếu gcd(a,n)=1, thì aφ(n)≡1(modn), trong đó φ 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 n: thay vì mọi thặng dư khác không (chỉ lập thành hệ nhân đóng khi n 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 n — 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).
Chứng minh
Gọi R={r1,…,rφ(n)} là một hệ thặng dư thu gọn theo môđun n: đại diện của mọi lớp thặng dư nguyên tố cùng nhau với n.
Phép nhân với a hoán vị R: với mỗi ri, gcd(ari,n)=1 vì gcd(a,n)=1 và gcd(ri,n)=1 (một tích nguyên tố cùng nhau với n khi và chỉ khi cả hai thừa số đều vậy), nên arimodn 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↦arimodn đơn ánh theo luật giản ước, vì gcd(a,n)=1.
Một ánh xạ đơn ánh từ tập hữu hạn R vào chính nó (theo thặng dư) là song ánh, nên {ar1,…,arφ(n)}(modn) chỉ là {r1,…,rφ(n)} được sắp lại.
Nhân tất cả φ(n) phần tử của mỗi tập: aφ(n)(r1r2⋯rφ(n))≡r1r2⋯rφ(n)(modn). Vì mỗi ri nguyên tố cùng nhau với n, nên tích R=∏ri của chúng cũng vậy, tức gcd(R,n)=1.
Giản ước R ở cả hai vế (hợp lệ vì gcd(R,n)=1) được aφ(n)≡1(modn). ■
Đâ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 n lập thành một nhóm cấp φ(n) dưới phép nhân (nhóm đơn vị (Z/nZ)∗), và cấp của mọi phần tử chia hết φ(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) rồi quay lại 1. Đị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ố a và kiểm tra ap−1≡1), và cho phép tính nghịch đảo modulo dưới dạng ap−2modp 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=11, nên n=pq=55 và φ(n)=(p−1)(q−1)=40. Chọn số mũ công khai e=3 (vì gcd(3,40)=1) và số mũ bí mật d=27 (vì 3×27=81=2×40+1, nên ed≡1(mod40)). Mã hóa m=2 thành c=memodn, rồi giải mã c và kiểm tra bạn thu lại m=2.
Lời giải
Mã hóa: c=23mod55=8.
Giải mã lũy thừa bản mã lên số mũ bí mật: m′=cdmodn=827mod55. Vì ed=1+kφ(n) với một số nguyên k nào đó (ở đây 81=1+2×40), ta có m′≡med=m1+kφ(n)=m⋅(mφ(n))k(modn).
Vì gcd(m,n)=gcd(2,55)=1, định lý Euler cho mφ(n)≡1(modn), nên (mφ(n))k≡1k=1(modn), và do đó m′≡m⋅1=m(modn).
Về số: 827mod55 có thể tính bằng bình phương lặp lại (82=64≡9, 84≡81≡26, 88≡262=676≡676−660=16, 816≡162=256≡256−220=36; rồi 827=816⋅88⋅82⋅81≡36×16×9×8). Rút gọn từng bước theo môđun 55 cho đúng 2, xác nhận giải mã khôi phục đúng thông điệp gốc m=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,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×31 (là hợp số) vẫn thỏa mãn 2340≡1(mod341) — đúng kết luận mà định lý Fermat nhỏ sẽ dự đoán nếu 341 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 11: vì 11 nguyên tố và gcd(2,11)=1, Fermat cho 210≡1(mod11); vì 340=10×34, ta được 2340=(210)34≡134=1(mod11).
Theo môđun 31: ở đây 25=32≡1(mod31), nên 2 có cấp 5 theo môđun 31 (một ước của φ(31)=30, khớp với Fermat/Euler). Vì 340=5×68 là bội của 5, 2340=(25)68≡168=1(mod31).
Vậy 2340≡1 cả theo môđun 11 lẫn môđun 31. Theo định lý phần dư Trung Hoa (chủ đề tiếp theo), việc ≡1 theo hai số nguyên tố cùng nhau 11 và 31 buộc 2340≡1(mod341) luôn, dù 341 không phải số nguyên tố.
Một hợp số n thỏa an−1≡1(modn) với cơ số a nguyên tố cùng nhau với nó gọi là **số giả nguyên tố Fermat cơ số a**; 341 là số giả nguyên tố nhỏ nhất cơ số 2. Đâ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=13 và gcd(a,13)=1 thì a12(mod13) bằng bao nhiêu?
Tính φ(20).
Trong RSA với n=55, φ(n)=40, và số mũ công khai e=3, số mũ bí mật d phải thỏa mãn:
341=11×31 thỏa 2340≡1(mod341) dù là hợp số. Hiện tượng này gọi là gì?