Định nghĩa 4.3.1 Hàm số học là hàm xác định trên tập hợp các số nguyên. Định nghĩa 4.3.2 Hàm nhân tính
Một hàm số họcf được gọi là hàm nhân tính nếu với mọi số nguyênn, m sao cho (n, m) = 1, ta có
f(mn) =f(n)f(m)
Nếu đẳng thức đúng với m, nbất kỳ thì hàm f được gọi là hàm nhân tính mạnh.
Định nghĩa 4.3.3 Phi hàm Euler φ(n) là hàm số học có giá trị tại n bằng số các số nguyên không vượt quá n và nguyên tố cùng nhau với n.
Hệ quả 4.3.1 Số nguyên p là số nguyên tố khi và chỉ khi φ(p) =p−1
Định lý 4.3.1 Euler
Nếun là số nguyên dương và a là số nguyên tố cùng nhau với n thì aφ(n) ≡1 mod n
.
Chứng minh: Tương tự như chứng minh định lý nhỏ fermat.
Đặt R = {r1, r2, . . . , rφ(n)} là hệ thặng dư thu họn nhỏ nhất theo modulo n. Nghĩa là (ri, n) = 1 và ri < n với mọi ri ∈ R. Cho số nguyên a sao cho (a, n) = 1, khi đó aR cũng là một hệ thặng dư thu gọn. Ta có:
ar1ar2. . . arφ(n) ≡ r1r2. . . rφ(n) mod n
⇔ aφ(n)r1r2. . . rφ(n) ≡ r1r2. . . rφ(n) mod n
⇔ aφ(n) ≡ 1 mod n
Hệ quả 4.3.2 Cho số nguyênasao cho(a, n) = 1. Khi đó,aφ(n)−1 là nghịch đảo của a trong modulo n.
Định lý 4.3.2 Cho p là số nguyên tố. Khi đó φ(pk) =pk−pk−1
với k là số nguyên dương.
Chứng minh: Vì p là số nguyên tố nên nếu ta đặt d = (a, pk) với
0 6 a 6 pk thì p | d nghĩa là d = np với n ∈ N. Ta có p 6 np 6 pk nên
16n6pk−1
do đó ta có đúng pk−1
số không nguyên tố cùng nhau với p. Mà từ 1 đến pk có đúng pk số nguyên khác nhau nên ta cóφ(pk) =pk−pk−1. Định lý 4.3.3 Phi hàm Euler là hàm nhân tính.
Chứng minh:Cho 2 số nguyên dương m, n sao cho (m, n) = 1. Ta sẽ chứng minh φ(mn) = φ(m)φ(n).
Gọi A = {a | (a, mn) = 1} là tập hợp tất cả các số nguyên nguyên tố cùng nhau với mn. Khi đó với a0 ∈ A thì (a0, mn) = 1 ⇔ (a0, m) = 1 và
Ta sẽ lập ma trận gồm m dòng n cột như sau 1 m+ 1 2m+ 1 . . . (n−1)m+ 1 2 m+ 2 2m+ 2 . . . (n−1)m+ 2 . . . . r m+r 2m+r . . . (n−1)m+r . . . . m 2m 3m . . . mn
Sau đó, ta bỏ đi những hàng mà (r, m) 6= 1 với 16 r 6 m; Khi đó, ta sẽ có φ(m) hàng. Đồng thời, trên mỗi hàng, ta dễ thấy rằng các số này lập thành một hệ thặng dư đầy đủ theo modulo n, tức là sẽ có φ(n) số trên mỗi hàng. Vậy ta sẽ có tất cả là φ(m)·φ(n) số. Mặt khác, do những số còn lại vừa nguyên tố cùng nhau với m vừa nguyên tố cùng nhau với n nên số số còn lại bằng φ(mn). Do đó ta có điều phải chứng minh.
Định lý 4.3.4 Giả sử số nguyên dương n có thể phân tích thành tích các thừa số nguyên tố pα1 1 pα2 2 . . . pαk k . Khi đó φ(n) =n 1− 1 p1 1− 1 p2 . . . 1− 1 pk
Chứng minh: Do Phi hàm Euler là hàm nhân tính nên φ(n) =φ(pα1 1 )φ(pα2 2 )· · ·φ(pαk k ) Mặt khác, dựa vào định lý 4.3.2 ta có φ(n) = (pα1 1 −pα1−1 1 )(pα2 2 −pα2−1 2 )· · ·(pαk k −pαk−1 k ) = pα1 1 (1− 1 p1)pα2 2 (1− 1 p2)· · ·pαk k (1− 1 pk) = pα1 1 pα2 2 · · ·pαk k (1− 1 p1)(1− 1 p2)· · ·(1− 1 pk) = n(1− 1 p1)(1− 1 p2)· · ·(1− 1 pk)
4.4 Bài tập áp dụng
1. Cho số nguyên tố lẻpvà các số nguyên dươnga, b, nthỏa mãn(a, p) = 1
và ap ≡bp mod pn+1. Chứng minh: a≡b mod pn.
2. Chứng minh định lý Wilson – Số nguyên p là số nguyên tố khi và chỉ khi
(p−1)! ≡ −1mod p .
3. Chứng minh: nếu plà số nguyên tố thì plà ước của (p−2)!−1. 4. Chon >5là số tự nhiên. Chứng minh:
(n−1)!
n
≡0mod (n−1)
Trong đó, [x]là số nguyên lớn nhất không vượt quá x∈R. 5. Chop là số nguyên tố lẻ. Chứng minh:
2(p−3)!≡ −1 mod p
Chương 5
Giải phương trình đồng dư
5.1 Giải phương trình đồng dư tuyến tính Bài toán 5.1.1 Cho số nguyên dương m và 2 số nguyên bất kỳ a, b. Tìm số nguyên x sao cho
ax≡b mod m (5.1)
Cách giải: Đặp d= (a, m),
1. Nếu d6 | b, phương trình (3.1) vô nghiệm.
2. Nếud |b, chia tất cả các hệ số của phương trình (3.1) cho d. Ta sẽ giải phương trình như sau:
ax ≡ b mod m
⇒ (ad)·x ≡ (bd) mod (md)
⇔ x ≡ (ad)−1·(bd) mod(md)
Đặt c≡(ad)−1 ·(db) mod md Khi đó, nghiệm của phương trình (3.1) là x≡c+k·(m
d) mod m với k∈Z.
Chứng minh:x≡c+k·(md) mod mlà nghiệm của phương trình (3.1). ax ≡ a(c+k(m d)) ≡ ac+ak(md) ≡ a(ad)−1(db) +ak(md) ≡ b(ad)−1(ad) +k(ad)m ≡ b mod m Ví dụ:Giải phương trình 12x≡9 mod15. Ta có d= (12,15) = 3 mà 3| 9 nên ta có 12x ≡ 9 mod 15 ⇒ 4x ≡ 3 mod 5 ⇔ x ≡ 4−1·3 mod 5 ⇔ x ≡ 4·3 mod 5 ⇔ x ≡ 2 mod 5
Vậy nghiệm của phương trình đã cho là
x ≡ 2mod 15 x ≡ 7mod 15 x ≡ 12mod 15
5.2 Giải hệ phương trình đồng dưĐịnh lý dư số Trung Hoa Định lý dư số Trung Hoa
Bài toán 5.2.1 Tìm số nguyên x sao cho x thỏa hệ phương trình đồng dư
x ≡ r1 mod m1 x ≡ r2 mod m2 . . . x ≡ rn mod mn Trong đó, (mi, mj) = 1, ∀i6=j.
Cách giải: Với mọi số nguyêni∈1, n Đặt M = m1m2. . . mn Mi = M mi Tính yi sao cho Mi·yi ≡ 1 mod mi ⇔ yi ≡ Mi−1 mod mi Khi đó x≡ n X i=1 riMiyi mod m1m2. . . mn
là nghiệm của hệ phương trình đã cho.
Chứng minh: x ≡ Pni=1riMiyi mod m1m2. . . mn là nghiệm của hệ phương trình đã cho.
x ≡ r1M1y1+r1M1y1+. . .+rnMnyn
≡ riMiyi domi|Mj,∀i6=j
≡ ri mod mi doMiyi ≡1 mod mi Vậy x là nghiệm của hệ phương trình đã cho.
Ví dụ – Bài toán Hàn Tín điểm binh: Có một lần Hàn Tín dẫn 1500 binh sĩ giao tranh với nước Sở Lí Phong, và bị tổn thất khoảng 400 – 500 quân. Lúc đó Hàn Tín muốn biết chính xác quân số của mình. Bấy giờ, Hàn Tín ra lệnh cho binh sĩ của mình xếp thành hàng 3 người kết quả dư 2 người, tiếp đó 5 người 1 hàng kết quả dư 3 người, ông lại ra lệnh 7 người một hàng kết quả dư 2 người. Rồi từ đó đoán ra được chính xác quân số hiện tại của quân mình.
Lời giải: chúng ta sẽ mô hình bài toán này lại thành bài toán tìm số nguyên x sao cho 10006x61100 thỏa hệ phương trình đồng dư
x ≡ 2mod 3 x ≡ 3mod 5 x ≡ 2mod 7
Đặt M = 3·5·7 = 105 M1 = 1053 = 35 M2 = 105 5 = 21 M1 = 1057 = 15 Tính y1 ≡ M1−1 ≡ 35−1 ≡ 2−1 ≡ 2 mod 3 y2 ≡ M2−1 ≡ 21−1 ≡ 1−1 ≡ 1 mod 5 y1 ≡ M3−1 ≡ 15−1 ≡ 1−1 ≡ 1 mod 7 Khi đóx≡2·35·2 + 3·21·1 + 2·15·1≡233≡23 mod 105. Kết hợp với giả thuyết ta có
1000 6 x 6 1100
⇔ 1000 6 23 + 105k 6 1100
⇔ 9 < k < 11
⇔ k= 10
Trong đók ∈Z.
Vậy quân số hiện tại của Hàn Tín làx= 23 + 105·10 = 1073.
5.3 Bài tập áp dụng
1. Chứng minh rằng nghiệm trong định lý dư số Trung Hoa là duy nhất theo modulo mi.
2. Tìm nghiệm của phương trìnhx2 ≡1 mod 144.
3. Choa, blà 2 số nguyên dương lớn hơn 1,(a, b) = 1. Chứng minh rằng tồn tại k∈Z sao cho
A= (ab−1)n·k+ 1
4. Chứng minh rằng với mọi số tự nhiênn, luôn tồn tạin số tự nhiên liên tiếp sao cho bất kỳ số nào cũng có ước dưới dạng 2k−1, k∈Z. 5. Chứng minh rằng với mọi số nguyên dương k tùy ý luôn tồn tại k số
nguyên liên tiếp toàn là hợp số.
Hướng dẫn: Xét hệ phương trình đồng dư
n ≡ −1 mod p1 n ≡ −2 mod p2 . . . n ≡ −k mod pk
Chương 6
Ứng dụng đồng dư
vào thuật toán mã hóa RSA
6.1 Giới thiệu
Hệ mã RSAlà hệ mã được sử dụng rộng rãi trongmã hóa bất đối xứng, thậm chí là trongđường cong Elliptic haychương trình logarit rời rạc. Đây là thuật toán đầu tiên tạo ra chữ ký điện tử đồng thời với việc mã hóa.
Thuật toán RSA được Ron Rivest, Adi Shamir và Len Adleman mô tả lần đầu tiên vào năm 1977 tại Học viện Công nghệ Massachusetts (MIT)
6.2 Mã Hóa và Giải Mã
Mã hóa và giải mã RSA được thực hiện trên vành số nguyênZn ={0, 1, . . . , n−1}. RSA mã hóa một văn bản thô x– ở đây, chúng ta xem như chuỗi bit đại diện xlà phần tử của Zn với x < n.
Để mã hóa, ta sử dụng public-key. Để giải mã, ta sử dụng private-key.
6.2.1 Mã hóa RSA
Cho một public-key (n, e) =kpub và văn bản thô x, việc mã hóa được thực hiện như sau:
với x, y ∈Zn.
6.2.2 Giải mã RSA
Cho private-key d = kpr và văn bản đã được mã hóa y, việc giải mã được thực hiện như sau:
x=dkpr(y)≡yd mod n với x, y ∈Zn.
6.3 Khởi tạo key cho RSA
1. Chọn 2 số nguyên tố lớnp và q. 2. Tính n =p·q.
3. Tính φ(n) =φ(p)φ(q) = (p−1)(n−1).
4. Chọn e công khai sao cho (e, φ(n)) = 1 với e∈ {1, 2, . . . , φ(n)−1}. 5. Tính private-key d như sau
d·e≡1mod φ(n)
Vì (e, φ(n)) = 1 nên luôn tồn tại nghịch đảo của e trong modulo φ(n), do đó ta luôn tính được d.
Sau khi khởi tạo key cho RSAxong thì ta sẽ có được 1. Public-key kpub = (n, e).
2. Private-key kpr = (d).
Ví dụ: Alice muốn gửi một thông điệp đã được mã hóa cho Bob. Đầu tiên, Bob sẽ khởi tạo key theo các bước ở trên. Sau đó, Bob sẽ gửi publice-key kpub = (n, e) của mình cho Alice. Alice sẽ mã hóa thông điệp của mình và gửi cho Bob thông điệp đã được mã hóa. Bob sẽ giải mã thông điệp này bằng private-key của mình. Hình bên dưới sẽ minh họa cụ thể các bước thực hiện.
6.4 Chứng minh tính đúng đắn
Cho thông điệp x là một văn bản thô và thông điệp y là văn bản đã được mã hóa với public-key kpr = (d) bằng thuật toán RSA. Chúng ta sẽ chứng minh rằng với cách xây dựng thuật toán như trên thì chúng ta có thể dùng private-key kpub = (n, e)để giải mã được thông điệp yđể có lại thông điệp x ban đầu. Nghĩa là:
dkpr(y)≡x mod n Chứng minh: Do d·e≡1mod φ(n) nên ∃t∈Z, d·e= 1 +tφ(n). Ta có dkpr(y) ≡ dkpr(ekpub(x)) ≡ (xe)d ≡ xde ≡ x1+tφ(n) ≡ xφ(n)t·x mod n (6.1) Xét thông điệpx: 1. Nếu (x, n) = 1 thì áp dụng định lý Euler, ta có xtφ(n)·x ≡ (xφ(n))t·x ≡ 1t·x ≡ 1·x ≡ x mod n
2. Nếu (x, n) 6= 1 thì hoặc x =r·p hoặc x = s·q với r, s ∈ Z. Không mất tính tổng quát, ta giả sử x=r·p, ta có (x, q) = 1. Khi đó ta sẽ áp dụng định lý Euler như sau
xφ(n)t ≡ (xφ(n))t
≡ (xφ(p)φ(q))t
≡ (xφ(q))φ(p)t
≡ 1φ(p)t
≡ 1 mod q
Vậy xφ(n)t ≡1 mod q, khi đó ∃u∈ Z, xφ(n)t = 1 +u·q. Nhân thêm x vào biểu thức ta được
xφ(n)t·x = (1 +u·q)·x = x+u·p·x = x+u·p·r·q = x+u·r·(p·q) = x+u·r·n Vậy xφ(n)t·x≡x mod n.
Tài liệu tham khảo 1. Chuyên đề số học – Trần Nam Dũng.
2. Chuyên đề số học VMF – Diễn đàn toán học. 3. Chuyên đề số học – Nguyễn Văn Thảo.
4. Số học và thuật toán – Hà Huy Khoái, Phạm Huy Điển.
5. Ứng dụng lý thuyết đồng dư trong các bài toán chia hết – Hà Duy Nghĩa.
6. Sơ lược về đồng dư – Ngô Bảo Châu.
7. A Computational Introduction to Number Theory and Algebra. 8. Discrete Mathematics and Its Applications – Kenneth H.Rosen. 9. Understanding Cryptography – Christof Paar Jan Pelzl.
10. Trang web: www.wikipedia.org 11. Trang web: diendantoanhoc.net 12. Một số tài liệu trên Internet.