You are on page 1of 62

VNU-HUS MAT3500: Toán rời rạc

Lý thuyết số cơ bản

Hoàng Anh Đức


Bộ môn Tin học, Khoa Toán-Cơ-Tin học
Đại học KHTN, ĐHQG Hà Nội
hoanganhduc@hus.edu.vn
Nội dung
Lý thuyết số cơ bản
Giới thiệu
Hoàng Anh Đức
Tính chia hết và phép toán môđun
Giới thiệu
Định nghĩa và tính chất cơ bản Tính chia hết và phép
Đồng dư theo môđun m toán môđun
Định nghĩa và tính chất cơ

Biểu diễn số nguyên bản


Đồng dư theo môđun m

Biểu diễn theo hệ b-phân Biểu diễn số nguyên

Cộng và nhân các số nhị phân Biểu diễn theo hệ b-phân


Cộng và nhân các số nhị

Biểu diễn các số nguyên âm theo hệ nhị phân phân


Biểu diễn các số nguyên

Tính lũy thừa môđun âm theo hệ nhị phân


Tính lũy thừa môđun

Số nguyên tố và Ước chung lớn nhất Số nguyên tố và Ước


chung lớn nhất
Số nguyên tố Số nguyên tố

Ước chung lớn nhất Ước chung lớn nhất

Phương trình đồng dư


Phương trình đồng dư Giới thiệu
Định lý phần dư Trung Hoa
Giới thiệu Định lý Fermat nhỏ

Định lý phần dư Trung Hoa Thuật toán mã hóa


RSA
Định lý Fermat nhỏ References
Thuật toán mã hóa RSA
61
Giới thiệu
Lý thuyết số cơ bản

Hoàng Anh Đức

2 Giới thiệu

Tính chia hết và phép


toán môđun
Định nghĩa và tính chất cơ
bản
Đồng dư theo môđun m

Lý thuyết số (number theory) nghiên cứu các tính chất và Biểu diễn số nguyên
Biểu diễn theo hệ b-phân

mối liên hệ giữa các loại số Cộng và nhân các số nhị


phân

quan trọng nhất là các số nguyên dương (positive integers) Biểu diễn các số nguyên
âm theo hệ nhị phân

đặc biệt là các số nguyên tố (prime numbers) Tính lũy thừa môđun

Số nguyên tố và Ước
chung lớn nhất
Số nguyên tố
Ước chung lớn nhất

Phương trình đồng dư


Giới thiệu
Định lý phần dư Trung Hoa
Định lý Fermat nhỏ

Thuật toán mã hóa


RSA

References

61
Tính chia hết và phép toán môđun
Định nghĩa và tính chất cơ bản

Lý thuyết số cơ bản

Hoàng Anh Đức


Cho các số nguyên a và b với a ̸= 0. Ta nói b chia hết cho
Giới thiệu
a, ký hiệu b a, nếu tồn tại một số nguyên c sao cho b = ac.
Tính chia hết và phép
Trong trường hợp này, ta cũng nói a là ước (factor) của b 3
toán môđun
Định nghĩa và tính chất cơ
hay b là bội (multiple) của a và ký hiệu a | b. bản
Đồng dư theo môđun m

Ta lần lượt sủ dụng các ký hiệu b a và a ∤ b để chỉ b Biểu diễn số nguyên


Biểu diễn theo hệ b-phân
không chia hết cho a và a không là ước của b Cộng và nhân các số nhị
phân
Biểu diễn các số nguyên
Định lý 1 âm theo hệ nhị phân
Tính lũy thừa môđun

Số nguyên tố và Ước
(1) Nếu a | b và a | c, thì a | (b + c) chung lớn nhất
Số nguyên tố
(2) Nếu a | b, thì a | bc Ước chung lớn nhất

Phương trình đồng dư


(3) Nếu a | b và b | c, thì a | c Giới thiệu
Định lý phần dư Trung Hoa
Định lý Fermat nhỏ

Bài tập 1 Thuật toán mã hóa


RSA

Chứng minh Định lý 1 References

61
Tính chia hết và phép toán môđun
Định nghĩa và tính chất cơ bản

Lý thuyết số cơ bản
Định lý 2 Hoàng Anh Đức

Với a ∈ Z và d ∈ Z+ , tồn tại duy nhất các số nguyên q và r, Giới thiệu

với 0 ≤ r < d, thỏa mãn a = dq + r Tính chia hết và phép


toán môđun
4 Định nghĩa và tính chất cơ

Chứng minh. bản


Đồng dư theo môđun m

Biểu diễn số nguyên


Tồn tại các số nguyên q và r với 0 ≤ r < d thỏa mãn Biểu diễn theo hệ b-phân
a = dq + r Cộng và nhân các số nhị
phân

Chọn q là số nguyên lớn nhất thỏa mãn dq ≤ a Biểu diễn các số nguyên
âm theo hệ nhị phân

Chọn r = a − dq. Ta có 0 ≤ r < d (Tại sao?) Tính lũy thừa môđun

Số nguyên tố và Ước
Giả sử tồn tại các cặp số nguyên q1 , r1 và q2 , r2 thỏa mãn chung lớn nhất

a = dq1 + r1 và a = dq2 + r2 , với 0 ≤ r1 ≤ r2 < d và Số nguyên tố


Ước chung lớn nhất

(q1 , r1 ) ̸= (q2 , r2 ) Phương trình đồng dư

Nếu q1 = q2 thì r1 = a − dq1 = a − dq2 = r2 Giới thiệu


Định lý phần dư Trung Hoa
Do đó, q1 ̸= q2 . Theo giả thiết a = dq1 + r1 = dq2 + r2 và do Định lý Fermat nhỏ

đó d = (r2 − r1 )/(q1 − q2 ). Do 0 ≤ r1 ≤ r2 < d, ta có Thuật toán mã hóa


RSA
0 ≤ r2 − r1 < d = (r2 − r1 )/(q1 − q2 ). Do đó, References
0 ≤ q1 − q2 < 1. Đây là một mâu thuẫn (Tại sao?)
61
Tính chia hết và phép toán môđun
Định nghĩa và tính chất cơ bản

Lý thuyết số cơ bản

Hoàng Anh Đức

Giới thiệu
Trong Định lý 2, a là số bị chia (dividend), d là số chia
Tính chia hết và phép
(divisor), q là thương (quotient), và r là số dư (remainder) toán môđun
5 Định nghĩa và tính chất cơ

Ta cũng viết q = a div d và r = a mod d. Chú ý rằng với d bản


Đồng dư theo môđun m

cố định, a div d và a mod d là các hàm từ Z đến Z Biểu diễn số nguyên


Biểu diễn theo hệ b-phân
Ta có q = ⌊a/d⌋ và r = a − dq = a − d⌊a/d⌋ Cộng và nhân các số nhị
phân
Biểu diễn các số nguyên

Ví dụ 1 âm theo hệ nhị phân


Tính lũy thừa môđun

101 div 11 = 9 và 101 mod 11 = 2 Số nguyên tố và Ước


chung lớn nhất
Số nguyên tố
−11 div 3 = − 4 và −11 mod 3 = 1 Ước chung lớn nhất

(Chú ý rằng mặc dù −11 = 3(−3) − 2 nhưng số dư của Phương trình đồng dư
Giới thiệu
phép chia a = −11 cho d = 3 không bằng −2 do r = −2 Định lý phần dư Trung Hoa

không thỏa mãn 0 ≤ r < d) Định lý Fermat nhỏ

Thuật toán mã hóa


RSA

References

61
Tính chia hết và phép toán môđun
Định nghĩa và tính chất cơ bản

Lý thuyết số cơ bản

Thuật toán 1: Tìm thương và số dư Hoàng Anh Đức

Input: a ∈ Z, d ∈ Z+ Giới thiệu

Tính chia hết và phép


Output: Thương q và số dư r của phép chia a cho d toán môđun

1 procedure div-mod(a, d): 6 Định nghĩa và tính chất cơ


bản

2 q := 0 Đồng dư theo môđun m

Biểu diễn số nguyên


3 r := |a| Biểu diễn theo hệ b-phân

4 while r ≥ d do // Tiếp tục trừ d từ r và tăng q Cộng và nhân các số nhị


phân

cho đến khi r < d Biểu diễn các số nguyên


âm theo hệ nhị phân

5 r := r − d Tính lũy thừa môđun

Số nguyên tố và Ước
6 q := q + 1 chung lớn nhất
Số nguyên tố

7 if a < 0 và r > 0 then // Trường hợp a âm Ước chung lớn nhất

8 r := d − r Phương trình đồng dư


Giới thiệu

9 q := −(q + 1) Định lý phần dư Trung Hoa


Định lý Fermat nhỏ

10 return (q, r) // q = a div d là thương, Thuật toán mã hóa


RSA
r = a mod d là số dư References

61
Tính chia hết và phép toán môđun
Đồng dư theo môđun m

+ Lý thuyết số cơ bản
Với a, b ∈ Z và m ∈ Z , a đồng dư với b (theo) môđun m, Hoàng Anh Đức
ký hiệu a ≡ b (mod m), khi và chỉ khi m | (a − b)
Giới thiệu

Tính chia hết và phép


Định lý 3 toán môđun
Định nghĩa và tính chất cơ
+
Với a, b ∈ Z và m ∈ Z , a ≡ b (mod m) khi và chỉ khi a mod 7
bản
Đồng dư theo môđun m

m = b mod m Biểu diễn số nguyên


Biểu diễn theo hệ b-phân
Cộng và nhân các số nhị

Chứng minh. phân


Biểu diễn các số nguyên
âm theo hệ nhị phân

(⇒) Giả sử a ≡ b (mod m). Theo định nghĩa, m | (a − b). Nếu Tính lũy thừa môđun

Số nguyên tố và Ước
a = q1 m + r1 và b = q2 m + r2 với 0 ≤ r1 < m và 0 ≤ r2 < m chung lớn nhất

thì a − b = (q1 − q2 )m + (r1 − r2 ). Do 0 ≤ r1 , r2 < m nên Số nguyên tố


Ước chung lớn nhất

−m < r1 − r2 < m. Do m | (a − b) nên r1 − r2 = mp với Phương trình đồng dư

p ∈ Z. Suy ra −m < mp < m và do đó p = 0, nghĩa là Giới thiệu


Định lý phần dư Trung Hoa

r1 = r2 , hay nói cách khác a mod m = b mod m Định lý Fermat nhỏ

Thuật toán mã hóa


(⇐) Giả sử a mod m = b mod m = r. Suy ra a = q1 m + r và RSA

b = q2 m + r. Do đó, a − b = (q1 − q2 )m, nghĩa là m | (a − b) References

61
Tính chia hết và phép toán môđun
Đồng dư theo môđun m

Lý thuyết số cơ bản

Hoàng Anh Đức

Bài tập 2 Giới thiệu


Chứng minh rằng quan hệ đồng dư theo môđun m “≡ Tính chia hết và phép
toán môđun
(mod m)” là một quan hệ tương đương trên tập các số nguyên Định nghĩa và tính chất cơ
bản
8 Đồng dư theo môđun m
Định lý 4 Biểu diễn số nguyên
Biểu diễn theo hệ b-phân
+
Với a, b ∈ Z và m ∈ Z , a ≡ b (mod m) khi và chỉ khi tồn tại Cộng và nhân các số nhị
phân

k ∈ Z sao cho a = b + km Biểu diễn các số nguyên


âm theo hệ nhị phân
Tính lũy thừa môđun

Số nguyên tố và Ước
Chứng minh. chung lớn nhất
Số nguyên tố
Ước chung lớn nhất
(⇒) Giả sử a ≡ b (mod m). Theo định nghĩa, m | (a − b), nghĩa
Phương trình đồng dư
là tồn tại k ∈ Z sao cho a − b = km hay a = b + km Giới thiệu
Định lý phần dư Trung Hoa
(⇐) Giả sử tồn tại k ∈ Z sao cho a = b + km. Suy ra a − b = km Định lý Fermat nhỏ

và do đó m | (a − b). Theo định nghĩa, a ≡ b (mod m) Thuật toán mã hóa


RSA

References

61
Tính chia hết và phép toán môđun
Đồng dư theo môđun m

Lý thuyết số cơ bản

Hoàng Anh Đức


Định lý 5
Giới thiệu

Với a, b, c, d ∈ Z và m ∈ Z+ , nếu a ≡ b (mod m) và c ≡ d Tính chia hết và phép


toán môđun
(mod m) thì a + c ≡ b + d (mod m) và ac ≡ bd (mod m) Định nghĩa và tính chất cơ
bản
9 Đồng dư theo môđun m

Biểu diễn số nguyên


Chứng minh. Biểu diễn theo hệ b-phân
Cộng và nhân các số nhị

Giả sử a ≡ b (mod m) và c ≡ d (mod m). Theo Định lý 4, tồn phân


Biểu diễn các số nguyên

tại s, t ∈ Z thỏa mãn a = b + sm và c = d + tm. Do đó, âm theo hệ nhị phân


Tính lũy thừa môđun

a + c = (b + d) + (s + t)m và Số nguyên tố và Ước


chung lớn nhất
ac = (b + sm)(d + tm) = bd + (bt + sd + stm)m. Theo Định lý 4, Số nguyên tố

a + c ≡ b + d (mod m) và ac ≡ bd (mod m) Ước chung lớn nhất

Phương trình đồng dư


Giới thiệu
Hệ quả 6 Định lý phần dư Trung Hoa
Định lý Fermat nhỏ

(a + b) mod m = ((a mod m) + (b mod m)) mod m Thuật toán mã hóa


RSA
ab mod m = ((a mod m)(b mod m)) mod m References

61
Tính chia hết và phép toán môđun
Đồng dư theo môđun m

Lý thuyết số cơ bản

Hoàng Anh Đức

Giới thiệu

Tính chia hết và phép


toán môđun
Định nghĩa và tính chất cơ
bản
Ta có thể định nghĩa các toán tử số học trên tập 10 Đồng dư theo môđun m

Zm = {0, 1, . . . , m − 1}: Với a, b ∈ Zm Biểu diễn số nguyên


Biểu diễn theo hệ b-phân
a +m b = (a + b) mod m; và Cộng và nhân các số nhị
phân
a ·m b = (a · b) mod m, Biểu diễn các số nguyên
âm theo hệ nhị phân
trong đó các phép toán + và · ở vế phải là các phép toán Tính lũy thừa môđun

trên Z. Các phép toán +m và ·m được gọi là các phép Số nguyên tố và Ước
chung lớn nhất
cộng và nhân theo môđun m Số nguyên tố
Ước chung lớn nhất

Phương trình đồng dư


Giới thiệu
Định lý phần dư Trung Hoa
Định lý Fermat nhỏ

Thuật toán mã hóa


RSA

References

61
Biểu diễn số nguyên
Biểu diễn theo hệ b-phân

Lý thuyết số cơ bản
Thông thường, chúng ta biểu diễn các số theo hệ cơ số Hoàng Anh Đức
(base) 10, sử dụng các chữ số (digit) từ 0 đến 9
Giới thiệu
Trên thực tế, ta có thể biểu diễn các số theo hệ cơ số b > 1
Tính chia hết và phép
bất kỳ toán môđun

Với mọi n, b ∈ Z+ , tồn tại duy nhất một dãy ak ak−1 . . . a1 a0


Định nghĩa và tính chất cơ
bản
Đồng dư theo môđun m
gồm các chữ số ai < b (1 ≤ i ≤ k) thỏa mãn
k
X Biểu diễn số nguyên
11
n = ak bk + ak−1 bk−1 + ak−2 bk−2 + · · · + a1 b1 + a0 = ai bi
Biểu diễn theo hệ b-phân
Cộng và nhân các số nhị
phân
i=0 Biểu diễn các số nguyên
Ta cũng ký hiệu n = (ak ak−1 . . . a2 a1 )b âm theo hệ nhị phân
Tính lũy thừa môđun
Một số hệ cơ số phổ biến Số nguyên tố và Ước
Hệ cơ số 10 (hệ thập phân (decimal)): sử dụng 10 chữ số chung lớn nhất
Số nguyên tố
0, 1, 2, 3, 4, 5, 6, 7, 8, 9 (do chúng ta có 10 ngón tay) Ước chung lớn nhất

Hệ cơ số 2 (nhị phân (binary)): sử dụng 2 chữ số 0, 1 Phương trình đồng dư

(dùng trong tất cả các hệ thống máy tính hiện đại) Giới thiệu
Định lý phần dư Trung Hoa
Hệ cơ số 8 (hệ bát phân (octal)): sử dụng 8 chữ số Định lý Fermat nhỏ

0, 1, 2, 3, 4, 5, 6, 7 (tương ứng với các nhóm 3 bit) Thuật toán mã hóa


RSA
Hệ cơ số 16 (hệ thập lục phân (hexadecimal)): sử dụng
References
16 chữ số 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F (tương
ứng với các nhóm 4 bit) 61
Biểu diễn số nguyên
Biểu diễn theo hệ b-phân

Lý thuyết số cơ bản

Ví dụ 2 Hoàng Anh Đức

Giới thiệu

Tính chia hết và phép


toán môđun
(101011111)2 = (?)10 1 · 28 + 0 · 27 + 1 · 26 + 0 · 25 + 1 · 24 Định nghĩa và tính chất cơ
bản

+ 1 · 23 + 1 · 22 + 1 · 21 + 1 · 20 = (351)10
Đồng dư theo môđun m

Biểu diễn số nguyên

(2AE0B)16 = (?)10 2 · 164 + 10 · 163 + 14 · 162 + 0 · 161 + 11 · 16012 Biểu diễn theo hệ b-phân
Cộng và nhân các số nhị
phân
= (175627)10 Biểu diễn các số nguyên
âm theo hệ nhị phân
Tính lũy thừa môđun

Số nguyên tố và Ước
Để chuyển một số nguyên n sang hệ b phân với b > 1: chung lớn nhất
Số nguyên tố

(1) Để tìm giá trị của chữ số ngoài cùng bên phải, tính n mod b Ước chung lớn nhất

Phương trình đồng dư


(2) Thay n bởi n div b Giới thiệu
Định lý phần dư Trung Hoa
(3) Lặp lại các bước (1) và (2) cho đến khi n = 0 Định lý Fermat nhỏ

Thuật toán mã hóa

Bài tập 3 RSA

References
Mô tả thuật toán trên bằng mã giả
61
Biểu diễn số nguyên
Biểu diễn theo hệ b-phân

Lý thuyết số cơ bản

Hoàng Anh Đức


Chuyển một số nguyên n sang hệ b phân với b > 1:
Giới thiệu

n = bq0 + a0 n := q0 Tính chia hết và phép


toán môđun
= b(bq1 + a1 ) + a0 Định nghĩa và tính chất cơ
bản
Đồng dư theo môđun m
2
= b q1 + ba1 + a0 n := q1 Biểu diễn số nguyên

= b2 (bq2 + a2 ) + ba1 + a0
13 Biểu diễn theo hệ b-phân
Cộng và nhân các số nhị
phân

= b3 q2 + b2 a2 + ba1 + a0 n := q2 Biểu diễn các số nguyên


âm theo hệ nhị phân
Tính lũy thừa môđun
3 2
= b (bq3 + a3 ) + b a2 + ba1 + a0 Số nguyên tố và Ước
chung lớn nhất
= b4 q3 + b3 a3 + b2 a2 + ba1 + a0 n := q3 Số nguyên tố
Ước chung lớn nhất
.. .. Phương trình đồng dư
. . Giới thiệu
Định lý phần dư Trung Hoa
k k−1 3 2
= b (0 + ak ) + b ak−1 + . . . b a3 + b a2 + ba1 + a0 n := 0 Định lý Fermat nhỏ

Thuật toán mã hóa


k k−1 3 2
= b ak + b ak−1 + . . . b a3 + b a2 + ba1 + a0 RSA

References

61
Biểu diễn số nguyên
Biểu diễn theo hệ b-phân

Lý thuyết số cơ bản

Hoàng Anh Đức

Ví dụ 3 Giới thiệu

Tính chia hết và phép


toán môđun
(12345)10 = (?)8 Định nghĩa và tính chất cơ
bản
Đồng dư theo môđun m

Biểu diễn số nguyên


14 Biểu diễn theo hệ b-phân
Cộng và nhân các số nhị
12345 = 8 · 1543 + 1 phân
Biểu diễn các số nguyên

1543 = 8 · 192 + 7 âm theo hệ nhị phân


Tính lũy thừa môđun

192 = 8 · 24 + 0 Số nguyên tố và Ước


chung lớn nhất

24 = 8 · 3 + 0 Số nguyên tố
Ước chung lớn nhất

3=8·0+3 Phương trình đồng dư


Giới thiệu
Định lý phần dư Trung Hoa
Định lý Fermat nhỏ

Thuật toán mã hóa


Do đó, (12345)10 = (30071)8 RSA

References

61
Biểu diễn số nguyên
Chuyển đổi giữa các hệ nhị phân, bát phân, và thập lục phân

Lý thuyết số cơ bản
Chuyển đổi giữa hệ nhị phân và hệ bát phân (hoặc hệ thập lục Hoàng Anh Đức
phân) rất dễ thực hiện
Giới thiệu
Mỗi chữ số trong hệ bát phân tương ứng với một khối 3 bit Tính chia hết và phép
trong biểu diễn nhị phân toán môđun
Định nghĩa và tính chất cơ
bản
Mỗi chữ số trong hệ thập lục phân tương ứng với một khối Đồng dư theo môđun m

4 bit trong biểu diễn nhị phân Biểu diễn số nguyên


15 Biểu diễn theo hệ b-phân
Cộng và nhân các số nhị
phân
Thập phân 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Biểu diễn các số nguyên
Thập lục phân 0 1 2 3 4 5 6 7 8 9 A B C D E F âm theo hệ nhị phân

Bát phân 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 Tính lũy thừa môđun

Nhị phân 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 Số nguyên tố và Ước
chung lớn nhất
Số nguyên tố
Ước chung lớn nhất
(11 1110 1011 1111)2 = (3EBF )16 Phương trình đồng dư
Giới thiệu
Định lý phần dư Trung Hoa
Định lý Fermat nhỏ

Thuật toán mã hóa


(A3D)16 = (1010 0011 1101)2 RSA

References

61
Biểu diễn số nguyên
Cộng và nhân các số nhị phân

Lý thuyết số cơ bản
Để cộng hai số nhị phân a = (an−1 an−2 . . . a1 a0 )2 và Hoàng Anh Đức
b = (bn−1 bn−2 . . . b1 b0 )2
Giới thiệu
Cộng hai chữ số nhị phân ngoài cùng bên phải Tính chia hết và phép
a0 + b0 = c0 · 2 + s0 , toán môđun
Định nghĩa và tính chất cơ
trong đó s0 là chữ số ngoài cùng bên phải trong biểu diễn bản
Đồng dư theo môđun m
nhị phân của tổng a + b và nhớ (carry) c0
Biểu diễn số nguyên
Cộng hai chữ số nhị phân tiếp theo và nhớ Biểu diễn theo hệ b-phân
16 Cộng và nhân các số nhị
a1 + b1 + c0 = c1 · 2 + s1 , phân
Biểu diễn các số nguyên
trong đó s1 là chữ số tiếp theo (tính từ bên phải) trong biểu âm theo hệ nhị phân
Tính lũy thừa môđun
diễn nhị phân của tổng a + b và nhớ c1
Số nguyên tố và Ước
Tiếp tục cộng hai chữ số nhị phân tiếp theo và nhớ để xác chung lớn nhất
Số nguyên tố
định chữ số tiếp theo (tính từ bên phải) trong biểu diễn nhị Ước chung lớn nhất

phân của tổng a + b và nhớ Phương trình đồng dư


Giới thiệu

Ở bước cuối cùng, tính Định lý phần dư Trung Hoa


Định lý Fermat nhỏ
an−1 + bn−1 + cn−2 = cn−1 · 2 + sn−1 ,
Thuật toán mã hóa
và chữ số đầu tiên trong biểu diễn nhị phân của tổng a + b RSA

là sn = cn−1 References

Thuật toán trên cho ta a + b = (sn sn−1 . . . s1 s0 )2 61


Biểu diễn số nguyên
Cộng và nhân các số nhị phân

Lý thuyết số cơ bản

Hoàng Anh Đức

Thuật toán 2: Cộng hai số nhị phân Giới thiệu

Tính chia hết và phép


Input: a = (an−1 . . . a0 )2 , b = (bn−1 . . . b0 )2 : biểu diễn nhị toán môđun

phân của các số nguyên dương a, b Định nghĩa và tính chất cơ


bản

Output: s = (sn sn−1 . . . s0 ): biểu diễn nhị phân của Đồng dư theo môđun m

Biểu diễn số nguyên


s=a+b Biểu diễn theo hệ b-phân

1 procedure add(a, b): 17 Cộng và nhân các số nhị


phân

2 c := 0 Biểu diễn các số nguyên


âm theo hệ nhị phân

3 for j := 0 to n − 1 do Tính lũy thừa môđun

Số nguyên tố và Ước
4 d := ⌊(aj + bj + c)/2⌋ chung lớn nhất

5 sj = aj + bj + c − 2d Số nguyên tố
Ước chung lớn nhất

6 c := d Phương trình đồng dư


Giới thiệu

7 sn := c Định lý phần dư Trung Hoa


Định lý Fermat nhỏ
8 return (s0 , s1 , . . . , sn ) Thuật toán mã hóa
RSA

References

61
Biểu diễn số nguyên
Cộng và nhân các số nhị phân

Lý thuyết số cơ bản

Hoàng Anh Đức


Ví dụ 4 Giới thiệu
Cộng hai số a = (10111)2 và b = (11100)2 Tính chia hết và phép
toán môđun
Định nghĩa và tính chất cơ
bản
Đồng dư theo môđun m
10111 10111 10111 Biểu diễn số nguyên
+ nhớ 0 + nhớ 0 + nhớ 1 Biểu diễn theo hệ b-phân

11100 11100 11100 18 Cộng và nhân các số nhị


phân
Biểu diễn các số nguyên
âm theo hệ nhị phân
1 11 011 Tính lũy thừa môđun

Số nguyên tố và Ước
chung lớn nhất
Số nguyên tố
10111 10111 Ước chung lớn nhất

+ nhớ 1 + nhớ 1 Phương trình đồng dư


11100 11100 Giới thiệu
Định lý phần dư Trung Hoa
Định lý Fermat nhỏ

0011 110011 Thuật toán mã hóa


RSA

References

61
Biểu diễn số nguyên
Cộng và nhân các số nhị phân

Lý thuyết số cơ bản

Để nhân hai số nhị phân a = (an−1 an−2 . . . a1 a0 )2 và Hoàng Anh Đức

b = (bn−1 bn−2 . . . b1 b0 )2 , chú ý rằng Giới thiệu

ab = a(b0 20 + b1 21 + · · · + bn−1 2n−1 ) Tính chia hết và phép


toán môđun
Định nghĩa và tính chất cơ
= a(b0 20 ) + a(b1 21 ) + · · · + a(bn−1 2n−1 ) bản
Đồng dư theo môđun m

Biểu diễn số nguyên


Phương trình này cho ta cách tính ab: Biểu diễn theo hệ b-phân
19 Cộng và nhân các số nhị
Chú ý rằng abj = a nếu bj = 1 và abj = 0 nếu bj = 0 phân
Biểu diễn các số nguyên
âm theo hệ nhị phân
Mỗi lần nhân một số hạng với 2, ta dịch chuyển biểu diễn Tính lũy thừa môđun

nhị phân của số đó sang trái một đơn vị và thêm 0 vào Số nguyên tố và Ước
chung lớn nhất
đuôi của biểu diễn. Nói cách khác, ta có thể thu được biểu Số nguyên tố

diễn nhị phân của (abj )2j bằng cách dịch chuyển biểu
Ước chung lớn nhất

Phương trình đồng dư


diễn nhị phân của abj sang trái j đơn vị và thêm j số 0 vào Giới thiệu
Định lý phần dư Trung Hoa
đuôi của biểu diễn Định lý Fermat nhỏ

Thuật toán mã hóa


Cuối cùng, ta nhận được ab bằng cách cộng biểu diễn nhị RSA

phân của n số (abj )2j với j ∈ {0, . . . , n − 1} References

61
Biểu diễn số nguyên
Cộng và nhân các số nhị phân

Lý thuyết số cơ bản
Thuật toán 3: Nhân hai số nhị phân Hoàng Anh Đức

Input: a = (an−1 . . . a0 )2 , b = (bn−1 . . . b0 )2 : biểu diễn nhị Giới thiệu

phân của các số nguyên dương a, b Tính chia hết và phép


toán môđun
Output: biểu diễn nhị phân của p = ab Định nghĩa và tính chất cơ
bản

1 procedure multiply(a, b): Đồng dư theo môđun m

2 for j := 0 to n − 1 do Biểu diễn số nguyên


Biểu diễn theo hệ b-phân
3 if bj = 1 then 20 Cộng và nhân các số nhị
phân

4 cj := a sau khi di chuyển j đơn vị sang trái Biểu diễn các số nguyên
âm theo hệ nhị phân
Tính lũy thừa môđun
5 else Số nguyên tố và Ước
6 cj := 0 chung lớn nhất
Số nguyên tố
Ước chung lớn nhất
7 // c0 , . . . , cn−1 là các tích thành phần Phương trình đồng dư
8 p := 0 Giới thiệu
Định lý phần dư Trung Hoa
9 for j := 0 to n − 1 do Định lý Fermat nhỏ

10 p := add(p, cj ) Thuật toán mã hóa


RSA

References
11 return p
61
Biểu diễn số nguyên
Cộng và nhân các số nhị phân

Lý thuyết số cơ bản

Hoàng Anh Đức

Giới thiệu
Ví dụ 5 Tính chia hết và phép
toán môđun
Nhân hai số a = (110)2 và b = (101)2 Định nghĩa và tính chất cơ
bản
Đồng dư theo môđun m

110 110 110 Biểu diễn số nguyên


× × × Biểu diễn theo hệ b-phân

101 101 101 21 Cộng và nhân các số nhị


phân
Biểu diễn các số nguyên
âm theo hệ nhị phân

110 110 110 Tính lũy thừa môđun

Số nguyên tố và Ước

0000 + 0000 chung lớn nhất


Số nguyên tố
Ước chung lớn nhất

11000 Phương trình đồng dư


Giới thiệu

11110 Định lý phần dư Trung Hoa


Định lý Fermat nhỏ

Thuật toán mã hóa


RSA

References

61
Biểu diễn số nguyên
Biểu diễn các số nguyên âm theo hệ nhị phân

Lý thuyết số cơ bản
Trong hệ nhị phân, các số âm có thể được biểu diễn thông Hoàng Anh Đức
qua ký hiệu phần bù hai (two’s complement notation)
Giới thiệu
Trong trường hợp này, một chuỗi nhị phân n bit có thể biểu
Tính chia hết và phép
diễn bất kỳ số nguyên i nào thỏa mãn −2n−1 ≤ i < 2n−1 toán môđun
Định nghĩa và tính chất cơ
Bit ngoài cùng bên trái dùng để biểu diễn dấu (0 là dương, bản
Đồng dư theo môđun m
1 là âm) Biểu diễn số nguyên
Khi biểu diễn bằng ký hiệu phần bù hai, nếu Biểu diễn theo hệ b-phân
Cộng và nhân các số nhị
a = (an−1 . . . a0 )2 thì −a = (an−1 . . . a0 )2 + 1, trong đó phân
22 Biểu diễn các số nguyên
an−1 . . . a0 là phần bù của an−1 . . . a0 thu được thông qua âm theo hệ nhị phân
Tính lũy thừa môđun
tính toán bằng toán tử lôgic (phủ định) theo từng bit Số nguyên tố và Ước
chung lớn nhất
Ví dụ 6 (Với n = 3) Số nguyên tố
Ước chung lớn nhất

Giá trị Chuỗi 3-bit Giá trị Chuỗi 3-bit Phương trình đồng dư
Giới thiệu
3 011 −3 ?101 Định lý phần dư Trung Hoa
Định lý Fermat nhỏ
2 010 −2 ?110 Thuật toán mã hóa
1 001 −1 ?111 RSA

0 000 −4 ?100 References

61
Tính chia hết và phép toán môđun
Tính lũy thừa môđun

Lý thuyết số cơ bản

Hoàng Anh Đức

Trong các thuật toán mã hóa hiện đại, một bài toán quan Giới thiệu

trọng là tính bn mod m một cách hiệu quả mà không cần Tính chia hết và phép
toán môđun
sử dụng quá nhiều bộ nhớ, đặc biệt là khi b, n, m là các số Định nghĩa và tính chất cơ
bản
nguyên lớn Đồng dư theo môđun m

Việc tính bn rồi tìm số dư khi chia nó cho m là không thực Biểu diễn số nguyên
Biểu diễn theo hệ b-phân
tế, do bn có thể cực lớn và ta sẽ cần một lượng lớn bộ nhớ Cộng và nhân các số nhị
phân
chỉ để lưu giá trị của bn Biểu diễn các số nguyên
âm theo hệ nhị phân

Ta có thể tính bn mod m bằng cách lần lượt tính bk 23 Tính lũy thừa môđun

Số nguyên tố và Ước
mod m cho k = 1, 2, . . . , n, sử dụng tính chất chung lớn nhất

bk+1 mod m = b(bk mod m) mod m. Tuy nhiên, hướng tiếp Số nguyên tố
Ước chung lớn nhất

cận này cũng không thực tế, do ta cần thực hiện n − 1 Phương trình đồng dư
Giới thiệu
phép nhân các số nguyên và n có thể rất lớn Định lý phần dư Trung Hoa
Định lý Fermat nhỏ
Ta trình bày một hướng tiếp cận hiệu quả dựa trên biểu Thuật toán mã hóa
diễn nhị phân của n RSA

References

61
Tính chia hết và phép toán môđun
Tính lũy thừa môđun

Lý thuyết số cơ bản

Hoàng Anh Đức

Chú ý rằng Giới thiệu

Biểu diễn nhị phân của n Tính chia hết và phép


toán môđun

phương
n
b =b
= (b
{
ak−1 2k−1 +ak−2 2k−2 +···+a1 21 +a0 20

2k−1
)ak−1 × (b 2k−2

j
Chúng ta có thể tính các giá trị b2 bằng cách liên tục bình

Sau đó ta chỉ cần nhân các giá trị này với nhau để tạo
21 20
)ak−2 × · · · × (b )a1 × (b )a0

24
Định nghĩa và tính chất cơ
bản
Đồng dư theo môđun m

Biểu diễn số nguyên


Biểu diễn theo hệ b-phân
Cộng và nhân các số nhị
phân
Biểu diễn các số nguyên
âm theo hệ nhị phân
Tính lũy thừa môđun

Số nguyên tố và Ước
chung lớn nhất
Số nguyên tố
thành một tích thành phần, tùy thuộc vào aj có bằng 1 hay Ước chung lớn nhất

không Phương trình đồng dư


Giới thiệu

Quan trọng là, sau mỗi bước nhân, để tăng tính hiệu quả Định lý phần dư Trung Hoa
Định lý Fermat nhỏ

và tiết kiệm bộ nhớ, ta có thể lấy modm của kết quả để Thuật toán mã hóa
RSA
tiếp tục thực hiện tính toán
References

61
Tính chia hết và phép toán môđun
Tính lũy thừa môđun

Lý thuyết số cơ bản

Hoàng Anh Đức

Giới thiệu
Thuật toán 4: Tính lũy thừa môđun nhanh Tính chia hết và phép
toán môđun
Input: b: số nguyên, n = (ak−1 ak−2 . . . a1 a0 )2 : biểu diễn nhị Định nghĩa và tính chất cơ
bản
phân của số nguyên dương n, m: số nguyên dương Đồng dư theo môđun m

Output: bn mod m Biểu diễn số nguyên


Biểu diễn theo hệ b-phân
1 x := 1 // để lưu trữ kết quả Cộng và nhân các số nhị
phân
2i
2 b2i := b mod m // b , đầu tiên i = 0 Biểu diễn các số nguyên
âm theo hệ nhị phân

3 for i := 0 to k − 1 do // xét tất cả k bit của n 25 Tính lũy thừa môđun

4 if ai = 1 then Số nguyên tố và Ước


chung lớn nhất
5 x := (x · b2i) mod m Số nguyên tố
Ước chung lớn nhất

2i+1 2i 2i
6 b2i := (b2i · b2i) mod m // b = (b ) · (b ) Phương trình đồng dư
Giới thiệu
Định lý phần dư Trung Hoa
7 return x Định lý Fermat nhỏ

Thuật toán mã hóa


RSA

References

61
Số nguyên tố và Ước chung lớn nhất
Số nguyên tố

Lý thuyết số cơ bản

Hoàng Anh Đức

Giới thiệu

Một số nguyên p > 1 là một số nguyên tố (prime number) Tính chia hết và phép
toán môđun
nếu các ước số dương duy nhất của p là 1 và chính nó Định nghĩa và tính chất cơ
bản
Đồng dư theo môđun m
Ví dụ: 2, 3, 5, 11, . . .
Biểu diễn số nguyên
Các số nguyên lớn hơn 1 và không phải là số nguyên tố Biểu diễn theo hệ b-phân
Cộng và nhân các số nhị
được gọi là các hợp số (composite number) phân
Biểu diễn các số nguyên
âm theo hệ nhị phân

Bài tập 4 Tính lũy thừa môđun

Số nguyên tố và Ước
Chứng minh rằng nếu p là một số nguyên tố và p | ab với chung lớn nhất
26 Số nguyên tố
a, b ∈ Z+ thì p | a hoặc p | b. Phát biểu này có đúng với p là hợp Ước chung lớn nhất

số hay không? (Gợi ý: Sử dụng Định lý Bézout (Định lý 12)) sẽ Phương trình đồng dư
Giới thiệu
đề cập ở phần sau) Định lý phần dư Trung Hoa
Định lý Fermat nhỏ

Thuật toán mã hóa


RSA

References

61
Số nguyên tố và Ước chung lớn nhất
Số nguyên tố

Lý thuyết số cơ bản

Hoàng Anh Đức


Định lý 7: Định lý cơ bản của số học
Giới thiệu

Mọi số nguyên dương lớn hơn 1 có thể được viết một cách duy Tính chia hết và phép
toán môđun
nhất dưới dạng một số nguyên tố hoặc một tích của các ước Định nghĩa và tính chất cơ
bản
nguyên tố của nó theo thứ tự tăng dần Đồng dư theo môđun m

Biểu diễn số nguyên


Biểu diễn theo hệ b-phân

Gợi ý. Cộng và nhân các số nhị


phân
Biểu diễn các số nguyên
Ta đã chứng minh bằng phương pháp quy nạp: nếu n > 1 âm theo hệ nhị phân
Tính lũy thừa môđun
là một số nguyên thì n có thể được biểu diễn dưới dạng Số nguyên tố và Ước
tích của các số nguyên tố 27
chung lớn nhất
Số nguyên tố

Để chỉ ra tính “duy nhất”, ta chứng minh (bằng quy nạp): Ước chung lớn nhất

Phương trình đồng dư


nếu p là một số nguyên tố và p | a1 a2 . . . an , trong đó Giới thiệu

ai ∈ Z với 1 ≤ i ≤ n, thì p | aj với j nào đó (1 ≤ j ≤ n) Định lý phần dư Trung Hoa


Định lý Fermat nhỏ

Thuật toán mã hóa


RSA

Bài tập 5 References

Chứng minh Định lý 7 theo gợi ý 61


Số nguyên tố và Ước chung lớn nhất
Số nguyên tố

Lý thuyết số cơ bản
Định lý 8 Hoàng Anh Đức

Nếu n ∈ Z+ là √
một hợp số, thì n có một ước nguyên tố nhỏ Giới thiệu

hơn hoặc bằng n Tính chia hết và phép


toán môđun
Định nghĩa và tính chất cơ

Chứng minh. bản


Đồng dư theo môđun m

Biểu diễn số nguyên


Theo giả thiết, n ∈ Z+ là hợp số, do đó n có một ước số a Biểu diễn theo hệ b-phân

thỏa mãn 1 < a < n. Do đó, tồn tại số nguyên b > 1 sao Cộng và nhân các số nhị
phân

cho n = ab. Biểu diễn các số nguyên


âm theo hệ nhị phân
√ √ Tính lũy thừa môđun
Ta chứng
√ minh √a ≤ n hoặc b ≤√ n. √ Thật vậy, giả sử Số nguyên tố và Ước
a > n và b > n. Suy ra, ab > √ n · n = n, mâu
√ thuẫn 28
chung lớn nhất
Số nguyên tố
với định nghĩa của a, b. Do đó a ≤ n hoặc b ≤ √ n, nghĩa Ước chung lớn nhất

là, n có một ước số lớn hơn 1 và không vượt quá n (a Phương trình đồng dư
Giới thiệu
hoặc b) Định lý phần dư Trung Hoa
Định lý Fermat nhỏ

Theo Định lý cơ bản của số học, ước số này là một số Thuật toán mã hóa
RSA
nguyên tố hoặc có một ước nguyên tố nhỏ hơn nó. Trong
References
cả hai√trường hợp, n có một ước nguyên tố nhỏ hơn hoặc
bằng n 61
Số nguyên tố và Ước chung lớn nhất
Số nguyên tố

Lý thuyết số cơ bản

Hoàng Anh Đức


Mệnh đề phản đảo của Định lý 8: Một số nguyên n > 1 là
số nguyên tố nếu nó không√chia hết cho bất kỳ số nguyên Giới thiệu

Tính chia hết và phép


tố nào nhỏ hơn hoặc bằng n toán môđun
Định nghĩa và tính chất cơ
Tìm các số nguyên tố giữa 2 và n bằng Sàng Eratosthenes bản
Đồng dư theo môđun m
(The Sieve of Eratosthenes)
√ Biểu diễn số nguyên
Thử mọi số nguyên i thỏa mãn 2 ≤ i ≤ n và kiểm tra Biểu diễn theo hệ b-phân
Cộng và nhân các số nhị
xem n có chia hết cho i không phân
Biểu diễn các số nguyên
(1) Viết các số 2, . . . , n vào một danh sách. Gán i := 2 âm theo hệ nhị phân
Tính lũy thừa môđun
(2) Bỏ đi tất cả các bội của i trừ chính nó khỏi danh sách Số nguyên tố và Ước
(3) Gọi k là số nhỏ nhất hiện có trong danh sách thỏa mãn chung lớn nhất
29 Số nguyên tố
k > i. Gán i := k
√ Ước chung lớn nhất

(4) Nếu i > n thì dừng lại, ngược lại thì quay lại bước (2) Phương trình đồng dư
Giới thiệu
Việc kiểm tra xem một số có phải là số nguyên tố hay Định lý phần dư Trung Hoa
Định lý Fermat nhỏ
không có thể được thực hiện trong thời gian đa
Thuật toán mã hóa
thức [Agrawal, Kayal, and Saxena 2004] (đa thức của số RSA

bit sử dụng để mô tả số đầu vào) References

61
Số nguyên tố và Ước chung lớn nhất
Số nguyên tố

Lý thuyết số cơ bản

Hoàng Anh Đức


Định lý 9
Giới thiệu
Có vô hạn số nguyên tố Tính chia hết và phép
toán môđun
Định nghĩa và tính chất cơ
bản
Chứng minh (theo Euclid). Đồng dư theo môđun m

Biểu diễn số nguyên


Giả sử chỉ có hữu hạn các số nguyên tố p1 , p2 , . . . , pn . Đặt Biểu diễn theo hệ b-phân
Cộng và nhân các số nhị
Q = p1 p2 . . . pn + 1 phân
Biểu diễn các số nguyên

Theo Định lý cơ bản của số học, (a) Q là một số nguyên tố âm theo hệ nhị phân
Tính lũy thừa môđun

hoặc (b) Q có thể được viết thành tích của ít nhất hai số Số nguyên tố và Ước
chung lớn nhất
nguyên tố 30 Số nguyên tố
Ước chung lớn nhất
(a) đúng: Do đó, Q là số nguyên tố. Theo định nghĩa,
Phương trình đồng dư
Q∈ / {p1 , . . . , pn }, mâu thuẫn với giả thiết toàn bộ các số Giới thiệu
Định lý phần dư Trung Hoa
nguyên tố là p1 , . . . , pn Định lý Fermat nhỏ

(b) đúng: Do đó, tồn tại j thỏa mãn pj | Q với 1 ≤ j ≤ n. Thuật toán mã hóa
RSA
Chú ý rằng pj | (p1 p2 . . . pn ), và do đó pj | (Q − p1 p2 . . . pn ), References

suy ra pj | 1, mâu thuẫn với giả thiết pj là số nguyên tố 61


Số nguyên tố và Ước chung lớn nhất
Ước chung lớn nhất

Lý thuyết số cơ bản
Cho a, b ∈ Z và a, b không đồng thời bằng 0. Ước chung Hoàng Anh Đức
lớn nhất (greatest common divisor) của a và b, ký hiệu
Giới thiệu
gcd(a, b), là số nguyên lớn nhất d thỏa mãn d | a và d | b
Tính chia hết và phép
Các số nguyên a và b được gọi là nguyên tố cùng nhau toán môđun
Định nghĩa và tính chất cơ
(relatively prime hoặc coprime) khi và chỉ khi gcd(a, b) = 1 bản
Đồng dư theo môđun m
Một tập các số nguyên {a1 , a2 , a3 , . . . , an } được gọi là đôi Biểu diễn số nguyên
một nguyên tố cùng nhau (pairwise relatively prime) nếu Biểu diễn theo hệ b-phân
Cộng và nhân các số nhị
mọi cặp ai , aj với 1 ≤ i < j ≤ n là nguyên tố cùng nhau phân
Biểu diễn các số nguyên
Nếu các số nguyên dương a và b được phân tích thành âm theo hệ nhị phân
Tính lũy thừa môđun
tích các số nguyên tố Số nguyên tố và Ước
chung lớn nhất
a = pa1 1 pa2 2 . . . pann b = pb11 pb22 . . . pbnn Số nguyên tố
31 Ước chung lớn nhất

trong đó các số mũ là các số nguyên không âm (có thể Phương trình đồng dư
Giới thiệu
bằng 0), thì Định lý phần dư Trung Hoa
Định lý Fermat nhỏ
min(a1 ,b1 ) min(a2 ,b2 ) n ,bn )
gcd(a, b) = p1 p2 . . . pmin(a
n Thuật toán mã hóa
RSA

Bài tập 6 (⋆) References

Chứng minh phát biểu cuối cùng 61


Số nguyên tố và Ước chung lớn nhất
Bội chung nhỏ nhất và liên hệ với Ước chung lớn nhất

Lý thuyết số cơ bản
Cho a, b ∈ Z+ . Bội chung nhỏ nhất (least common Hoàng Anh Đức
multiple) của a và b, ký hiệu lcm(a, b), là số nguyên nhỏ
Giới thiệu
nhất d thỏa mãn a | d và b | d
Tính chia hết và phép
Tập các bội chung của a và b có ít nhất một phần tử ab toán môđun

Tính sắp thứ tự tốt: Mọi tập con khác rỗng của Z+ có Định nghĩa và tính chất cơ
bản

phần tử nhỏ nhất Đồng dư theo môđun m

Biểu diễn số nguyên


Nếu a và b được phân tích thành tích các số nguyên tố Biểu diễn theo hệ b-phân
Cộng và nhân các số nhị

a= pa1 1 pa2 2 . . . pann b= pb11 pb22 . . . pbnn phân


Biểu diễn các số nguyên
âm theo hệ nhị phân

trong đó các số mũ là các số nguyên không âm (có thể Tính lũy thừa môđun

bằng 0), thì Số nguyên tố và Ước


chung lớn nhất
Số nguyên tố
max(a1 ,b1 ) max(a2 ,b2 ) n ,bn )
lcm(a, b) = p1 p2 . . . pmax(a
n
32 Ước chung lớn nhất

Phương trình đồng dư


Định lý 10 Giới thiệu
Định lý phần dư Trung Hoa
Định lý Fermat nhỏ
+
Với a, b ∈ Z , ab = gcd(a, b) · lcm(a, b) Thuật toán mã hóa
RSA
Bài tập 7 References

Chứng minh Định lý 10 61


Số nguyên tố và Ước chung lớn nhất
Thuật toán Euclid

Lý thuyết số cơ bản

Hoàng Anh Đức

Bổ đề 11 Giới thiệu

Tính chia hết và phép


Cho a = bq + r với a, b, q, r là các số nguyên. Ta có gcd(a, b) = toán môđun
Định nghĩa và tính chất cơ
gcd(b, r). Nói cách khác gcd(a, b) = gcd(b, (a mod b)) bản
Đồng dư theo môđun m

Biểu diễn số nguyên


Biểu diễn theo hệ b-phân
Chứng minh. Cộng và nhân các số nhị
phân
Biểu diễn các số nguyên
Gọi Dab là tập các ước số chung của a và b, với các số âm theo hệ nhị phân
Tính lũy thừa môđun
nguyên a, b bất kỳ. Ta chứng minh Dab = Dbr
Số nguyên tố và Ước
Dab ⊆ Dbr : Giả sử x ∈ Dab . Theo định nghĩa, x | a và x | b. chung lớn nhất
Số nguyên tố

Theo Định lý 1, x | (a − bq) và do đó x | r, suy ra x ∈ Dbr 33 Ước chung lớn nhất

Phương trình đồng dư


Dbr ⊆ Dab : Giả sử x ∈ Dbr . Theo định nghĩa, x | b và x | r. Giới thiệu

Theo Định lý 1, x | (bq + r) và do đó x | a, suy ra x ∈ Dab Định lý phần dư Trung Hoa


Định lý Fermat nhỏ

Từ Dab = Dbr , ta có gcd(a, b) = gcd(b, r) Thuật toán mã hóa


RSA

References

61
Số nguyên tố và Ước chung lớn nhất
Thuật toán Euclid

Lý thuyết số cơ bản

Ví dụ 7 Hoàng Anh Đức

Tìm gcd(372, 164) Giới thiệu

Tính chia hết và phép


gcd(372, 164) = gcd(164, 372 mod 164) toán môđun
Định nghĩa và tính chất cơ
372 mod 164 = 372 − 164⌊372/164⌋ = 372 − 164 · 2 = 44 bản
Đồng dư theo môđun m
gcd(164, 44) = gcd(44, 164 mod 44) Biểu diễn số nguyên
164 mod 44 = 164 − 44⌊164/44⌋ = 164 − 44 · 3 = 32 Biểu diễn theo hệ b-phân
Cộng và nhân các số nhị
phân
gcd(44, 32) = gcd(32, 44 mod 32) Biểu diễn các số nguyên
âm theo hệ nhị phân
44 mod 32 = 44 − 32⌊44/32⌋ = 44 − 32 · 1 = 12 Tính lũy thừa môđun

gcd(32, 12) = gcd(12, 32 mod 12) Số nguyên tố và Ước


chung lớn nhất
32 mod 12 = 32 − 12⌊32/12⌋ = 32 − 12 · 2 = 8 34
Số nguyên tố
Ước chung lớn nhất

gcd(12, 8) = gcd(8, 12 mod 8) Phương trình đồng dư


Giới thiệu
12 mod 8 = 12 − 8⌊12/8⌋ = 12 − 8 · 1 = 4 Định lý phần dư Trung Hoa
Định lý Fermat nhỏ
gcd(8, 4) = gcd(4, 8 mod 4) Thuật toán mã hóa
8 mod 4 = 8 − 4⌊8/4⌋ = 0 RSA

References
gcd(4, 0) = 4
61
Số nguyên tố và Ước chung lớn nhất
Thuật toán Euclid

Lý thuyết số cơ bản

Hoàng Anh Đức

Giới thiệu

Tính chia hết và phép


Thuật toán 5: Thuật toán Euclid toán môđun
Định nghĩa và tính chất cơ
Input: a, b: các số nguyên dương bản
Đồng dư theo môđun m
Output: gcd(a, b) Biểu diễn số nguyên
1 x := a Biểu diễn theo hệ b-phân
Cộng và nhân các số nhị
2 y := b phân
Biểu diễn các số nguyên
3 while y ̸= 0 do âm theo hệ nhị phân
Tính lũy thừa môđun
4 r := x mod y Số nguyên tố và Ước
5 x := y chung lớn nhất
Số nguyên tố

6 y := r 35 Ước chung lớn nhất

Phương trình đồng dư


7 return x // x = gcd(a, b) Giới thiệu
Định lý phần dư Trung Hoa
Định lý Fermat nhỏ

Thuật toán mã hóa


RSA

References

61
Số nguyên tố và Ước chung lớn nhất
Ước chung lớn nhất và tổ hợp tuyến tính

Lý thuyết số cơ bản

Hoàng Anh Đức


Định lý 12: Định lý Bézout
Giới thiệu
Cho các số nguyên dương a, b. Tồn tại các số nguyên s, t sao Tính chia hết và phép
toán môđun
cho gcd(a, b) = sa + tb Định nghĩa và tính chất cơ
bản
Đồng dư theo môđun m

Các số nguyên s, t thỏa mãn Định lý Bézout được gọi là Biểu diễn số nguyên

các hệ số Bézout (Bézout’s coefficients) của a và b Biểu diễn theo hệ b-phân


Cộng và nhân các số nhị

Phương trình gcd(a, b) = sa + tb được gọi là đẳng thức phân


Biểu diễn các số nguyên
âm theo hệ nhị phân
Bézout (Bézout’s identity) Tính lũy thừa môđun

Chú ý: Số nguyên tố và Ước


chung lớn nhất
Chúng ta không trình bày chứng minh của Định lý Bézout Số nguyên tố
36 Ước chung lớn nhất
Chúng ta sẽ đề cập hai phương pháp để tìm một tổ hợp
Phương trình đồng dư
tuyến tính của hai số nguyên bằng với ước chung lớn nhất Giới thiệu
Định lý phần dư Trung Hoa
của chúng (Trong phần này, ta luôn giả thiết các tổ hợp Định lý Fermat nhỏ

tuyến tính chỉ có hệ số nguyên) Thuật toán mã hóa


RSA
(1) Đi ngược lại theo các phép chia của thuật toán Euclid
References
(2) Thuật toán Euclid mở rộng (The extended Euclidean
algorithm) 61
Số nguyên tố và Ước chung lớn nhất
Ước chung lớn nhất và tổ hợp tuyến tính

Lý thuyết số cơ bản
Ví dụ 8 Hoàng Anh Đức

Biểu diễn gcd(252, 198) = 18 dưới dạng tổ hợp tuyến tính của Giới thiệu

252 và 198 Tính chia hết và phép


toán môđun
Thuật toán Euclid sử dụng các phép chia như sau Định nghĩa và tính chất cơ
bản

252 = 1 · 198 + 54 Đồng dư theo môđun m

198 = 3 · 54 + 36 Biểu diễn số nguyên


Biểu diễn theo hệ b-phân
54 = 1 · 36 + 18 Cộng và nhân các số nhị
phân
36 = 2 · 18 + 0 Biểu diễn các số nguyên
âm theo hệ nhị phân

Ta có Tính lũy thừa môđun

Số nguyên tố và Ước
chung lớn nhất
18 = 54 − 1 · 36 Số nguyên tố
37 Ước chung lớn nhất

= 54 − 1 · (198 − 3 · 54) Phương trình đồng dư


Giới thiệu
= 4 · 54 − 1 · 198 Định lý phần dư Trung Hoa
Định lý Fermat nhỏ
= 4 · (252 − 1 · 198) − 1 · 198 Thuật toán mã hóa
RSA
= 4 · 252 − 5 · 198 References

61
Số nguyên tố và Ước chung lớn nhất
Ước chung lớn nhất và tổ hợp tuyến tính

Lý thuyết số cơ bản

Hoàng Anh Đức

Giới thiệu
Thuật toán 6: Thuật toán Euclid mở rộng Tính chia hết và phép
toán môđun
Input: a, b: các số nguyên dương Định nghĩa và tính chất cơ
bản
Output: (d, s, t): d = gcd(a, b) và s, t thỏa mãn d = sa + tb Đồng dư theo môđun m

1 procedure ExtEuclid(a, b): Biểu diễn số nguyên


Biểu diễn theo hệ b-phân
2 if b = 0 then Cộng và nhân các số nhị
phân
3 return (a, 1, 0) Biểu diễn các số nguyên
âm theo hệ nhị phân
Tính lũy thừa môđun
4 (d1 , s1 , t1 ) := ExtEuclid(b, a mod b) Số nguyên tố và Ước
5 d := d1 chung lớn nhất
Số nguyên tố
6 s := t1 38 Ước chung lớn nhất

7 t := s1 − (a div b) · t1 Phương trình đồng dư


Giới thiệu
8 return (d, s, t) Định lý phần dư Trung Hoa
Định lý Fermat nhỏ

Thuật toán mã hóa


RSA

References

61
Số nguyên tố và Ước chung lớn nhất
Ước chung lớn nhất và tổ hợp tuyến tính

Lý thuyết số cơ bản

Hoàng Anh Đức

Giới thiệu

Tính chia hết và phép


toán môđun
Ví dụ 9 Định nghĩa và tính chất cơ
bản

ExtEuclid(252, 198) = (18, 4, −5) Đồng dư theo môđun m

Biểu diễn số nguyên

Gọi ExtEuclid(·, ·) a b d s t Biểu diễn theo hệ b-phân


Cộng và nhân các số nhị
phân
1 252 198 18 4 −5 Biểu diễn các số nguyên
âm theo hệ nhị phân
2 198 54 18 −1 4 Tính lũy thừa môđun

3 54 36 18 1 −1 Số nguyên tố và Ước
chung lớn nhất
4 36 18 18 0 1 Số nguyên tố
39 Ước chung lớn nhất
5 18 0 18 1 0
Phương trình đồng dư
Giới thiệu
Định lý phần dư Trung Hoa
Định lý Fermat nhỏ

Thuật toán mã hóa


RSA

References

61
Số nguyên tố và Ước chung lớn nhất
Ước chung lớn nhất và tổ hợp tuyến tính

Lý thuyết số cơ bản

Hoàng Anh Đức

Giới thiệu
Định lý 13 Tính chia hết và phép
toán môđun
Định nghĩa và tính chất cơ
Cho các số nguyên dương a, b, c thỏa mãn gcd(a, b) = 1 và bản
Đồng dư theo môđun m
a | bc. Ta có a | c
Biểu diễn số nguyên
Biểu diễn theo hệ b-phân
Cộng và nhân các số nhị

Chứng minh. phân


Biểu diễn các số nguyên
âm theo hệ nhị phân

Theo Định lý Bézout, tồn tại các số nguyên x, y thỏa mãn Tính lũy thừa môđun

Số nguyên tố và Ước
gcd(a, b) = 1 = ax + by chung lớn nhất
Số nguyên tố
Do a|bc, ta cũng có a | byc 40 Ước chung lớn nhất

Phương trình đồng dư


Mặt khác, a|axc Giới thiệu
Định lý phần dư Trung Hoa
Suy ra, a|(by + ax)c, hay a|c Định lý Fermat nhỏ

Thuật toán mã hóa


RSA

References

61
Số nguyên tố và Ước chung lớn nhất
Ước chung lớn nhất và tổ hợp tuyến tính

Lý thuyết số cơ bản

Hoàng Anh Đức

Giới thiệu

Tính chia hết và phép


toán môđun
Định lý 14 Định nghĩa và tính chất cơ
bản
Đồng dư theo môđun m
Cho số nguyên dương m và các số nguyên a, b, c. Nếu ac ≡ bc
Biểu diễn số nguyên
(mod m) và gcd(c, m) = 1, thì a ≡ b (mod m) Biểu diễn theo hệ b-phân
Cộng và nhân các số nhị
phân
Biểu diễn các số nguyên

Chứng minh. âm theo hệ nhị phân


Tính lũy thừa môđun

Số nguyên tố và Ước
Theo định nghĩa, do ac ≡ bc (mod m), ta có m | (a − b)c chung lớn nhất
Số nguyên tố
Kết hợp với gcd(c, m) = 1 và Định lý 13, ta có m|(a − b), 41 Ước chung lớn nhất

nghĩa là a ≡ b (mod m) Phương trình đồng dư


Giới thiệu
Định lý phần dư Trung Hoa
Định lý Fermat nhỏ

Thuật toán mã hóa


RSA

References

61
Phương trình đồng dư
Giới thiệu

Lý thuyết số cơ bản

Hoàng Anh Đức

Một phương trình đồng dư (congruence) có dạng Giới thiệu

Tính chia hết và phép


ax ≡ b (mod m) toán môđun
Định nghĩa và tính chất cơ
bản
Đồng dư theo môđun m
+
với a, b ∈ Z, m ∈ Z , và x là một biến, được gọi là một Biểu diễn số nguyên
phương trình đồng dư tuyến tính (linear congruence) Biểu diễn theo hệ b-phân
Cộng và nhân các số nhị

Việc giải phương trình đồng dư nghĩa là tìm giá trị của x phân
Biểu diễn các số nguyên
thỏa mãn phương trình đó âm theo hệ nhị phân
Tính lũy thừa môđun

Một nghịch đảo (inverse) của a theo môđun m, ký hiệu Số nguyên tố và Ước
chung lớn nhất
a−1 , là bất kỳ số nguyên nào thỏa mãn a−1 a ≡ 1 (mod m) Số nguyên tố

Đôi khi ta cũng dùng ký hiệu a thay vì a−1


Ước chung lớn nhất

Phương trình đồng dư


Chú ý rằng nếu ta có thể tìm được a−1 thỏa mãn điều kiện 42 Giới thiệu

trên, ta có thể giải ax ≡ b (mod m) bằng cách nhân cả hai Định lý phần dư Trung Hoa
Định lý Fermat nhỏ
vế với a−1 , nghĩa là, a−1 ax ≡ a−1 b (mod m), suy ra Thuật toán mã hóa
1 · x ≡ a−1 b (mod m), và do đó x ≡ a−1 b (mod m) RSA

References

61
Phương trình đồng dư
Giới thiệu

Lý thuyết số cơ bản

Hoàng Anh Đức


Định lý 15
Giới thiệu

Nếu gcd(a, m) = 1 và m > 1 thì tồn tại nghịch đảo a−1 của a. Tính chia hết và phép
toán môđun
Thêm vào đó, nghịch đảo này là duy nhất theo môđun m Định nghĩa và tính chất cơ
bản
Đồng dư theo môđun m

Biểu diễn số nguyên


Chứng minh. Biểu diễn theo hệ b-phân
Cộng và nhân các số nhị
phân
Tồn tại số nguyên s thỏa mãn sa ≡ 1 (mod m) Biểu diễn các số nguyên
âm theo hệ nhị phân
Theo định lý Bézout, tồn tại các số nguyên s, t thỏa mãn Tính lũy thừa môđun

sa + tm = 1. Do đó sa + tm ≡ 1 (mod m) Số nguyên tố và Ước


chung lớn nhất
Do tm ≡ 0 (mod m), ta có sa ≡ 1 (mod m), và do đó Số nguyên tố

a−1 = s Ước chung lớn nhất

Phương trình đồng dư


Nếu tồn tại hai số nguyên s, r thỏa mãn sa ≡ 1 (mod m) 43 Giới thiệu

và ra ≡ 1 (mod m) thì s ≡ r (mod m) Định lý phần dư Trung Hoa


Định lý Fermat nhỏ

Nhắc lại: Với các số nguyên a, b, c và số nguyên dương m, Thuật toán mã hóa
RSA
nếu ac ≡ bc (mod m) và gcd(c, m) = 1 thì a ≡ b (mod m)
References

61
Phương trình đồng dư
Giới thiệu

Lý thuyết số cơ bản

Hoàng Anh Đức

Giới thiệu

Tính chia hết và phép


toán môđun
Định nghĩa và tính chất cơ
bản
Đồng dư theo môđun m

Biểu diễn số nguyên


Bài tập 8 Biểu diễn theo hệ b-phân
Cộng và nhân các số nhị
Chứng minh rằng nếu gcd(a, m) > 1 với a là số nguyên bất kỳ phân
Biểu diễn các số nguyên
và m > 2 là một số nguyên dương thì không tồn tại một nghịch âm theo hệ nhị phân
Tính lũy thừa môđun
đảo của a theo môđun m Số nguyên tố và Ước
chung lớn nhất
Số nguyên tố
Ước chung lớn nhất

Phương trình đồng dư


44 Giới thiệu
Định lý phần dư Trung Hoa
Định lý Fermat nhỏ

Thuật toán mã hóa


RSA

References

61
Phương trình đồng dư
Giới thiệu

Lý thuyết số cơ bản
Định lý 15 cho ta một phương pháp tìm một nghịch đảo của Hoàng Anh Đức
a ∈ Z theo môđun m ∈ Z+ khi gcd(a, m) = 1 và m > 1
Giới thiệu
Ví dụ 10 Tính chia hết và phép
toán môđun
Tìm một nghịch đảo của 3 theo môđun 7 Định nghĩa và tính chất cơ
bản

(1) Tìm các số nguyên s, t thỏa mãn 1 = s · 3 + t · 7 Đồng dư theo môđun m

Biểu diễn số nguyên


Thuật toán Euclid tìm ước chung lớn nhất của 3 và 7 bằng Biểu diễn theo hệ b-phân

cách sử dụng phương trình Cộng và nhân các số nhị


phân
Biểu diễn các số nguyên
âm theo hệ nhị phân
7=2·3+1 Tính lũy thừa môđun

Số nguyên tố và Ước
Từ phương trình trên, ta có chung lớn nhất
Số nguyên tố
Ước chung lớn nhất
1 = −2 · 3 + 1 · 7 Phương trình đồng dư
45 Giới thiệu

nghĩa là s = −2 và t = 1 Định lý phần dư Trung Hoa


Định lý Fermat nhỏ

(2) Theo Định lý 15, s = −2 là một nghịch đảo của 3 theo Thuật toán mã hóa
RSA
môđun 7. Chú ý rằng mọi số nguyên t thỏa mãn t ≡ −2
References
(mod 7) (ví dụ như 5, −9, 12, . . . ) đều là nghịch đảo của −3
theo môđun 7 61
Phương trình đồng dư
Giới thiệu

Lý thuyết số cơ bản

Hoàng Anh Đức

Giới thiệu
Ví dụ 11 Tính chia hết và phép
toán môđun
Giải phương trình 3x ≡ 4 (mod 7) Định nghĩa và tính chất cơ
bản

Từ ví dụ trước, ta biết rằng −2 là một nghịch đảo của 3 Đồng dư theo môđun m

theo môđun 7. Nhân cả hai vế của phương trình với −2, ta Biểu diễn số nguyên
Biểu diễn theo hệ b-phân

có Cộng và nhân các số nhị


phân

−2 · 3x ≡ −2 · 4 (mod 7) Biểu diễn các số nguyên


âm theo hệ nhị phân
Tính lũy thừa môđun

Do −6 ≡ 1 (mod 7) và −8 ≡ 6 (mod 7), nếu x là nghiệm Số nguyên tố và Ước


của phương trình thì x ≡ 6 (mod 7) chung lớn nhất
Số nguyên tố
Ước chung lớn nhất
Thật vậy, với mọi x thỏa mãn x ≡ 6 (mod 7)
Phương trình đồng dư
46 Giới thiệu

3x ≡ 3 · 6 = 18 ≡ 4 (mod 7) Định lý phần dư Trung Hoa


Định lý Fermat nhỏ

Thuật toán mã hóa


RSA

References

61
Phương trình đồng dư
Giới thiệu

Lý thuyết số cơ bản

Bài tập 9 Hoàng Anh Đức

Tìm nghịch đảo của a theo môđun m với Giới thiệu

Tính chia hết và phép


(1) a = 4, m = 9 toán môđun
Định nghĩa và tính chất cơ

(2) a = 19, m = 141 bản


Đồng dư theo môđun m

(3) a = 55, m = 89 Biểu diễn số nguyên


Biểu diễn theo hệ b-phân

(4) a = 89, m = 232 Cộng và nhân các số nhị


phân
Biểu diễn các số nguyên
(5) a = 101, m = 4620 âm theo hệ nhị phân
Tính lũy thừa môđun

Số nguyên tố và Ước
Bài tập 10 chung lớn nhất
Số nguyên tố

Giải các phương trình đồng dư Ước chung lớn nhất

Phương trình đồng dư


(1) 4x ≡ 5 (mod 9) 47 Giới thiệu
Định lý phần dư Trung Hoa

(2) 19x ≡ 4 (mod 141) Định lý Fermat nhỏ

Thuật toán mã hóa


(3) 55x ≡ 34 (mod 89) RSA

References
(4) 89x ≡ 2 (mod 232)
61
Phương trình đồng dư
Giới thiệu

Lý thuyết số cơ bản

Hoàng Anh Đức

Giới thiệu

Tính chia hết và phép


toán môđun
Định nghĩa và tính chất cơ
bản
Đồng dư theo môđun m

Bài tập 11 Biểu diễn số nguyên


Biểu diễn theo hệ b-phân
Cho các số nguyên dương m1 , m2 , . . . , mn thỏa mãn mi ≥ 2 và Cộng và nhân các số nhị
phân
gcd(mi , mj ) = 1 với mọi i ̸= j và 1 ≤ i, j ≤ n. Chứng minh rằng Biểu diễn các số nguyên
âm theo hệ nhị phân
nếu a ≡ b (mod mi ) với mọi 1 ≤ i ≤ n, thì a ≡ b (mod m) với Tính lũy thừa môđun

m = m1 m2 . . . mn . (Gợi ý: Chứng minh với n = 2) Số nguyên tố và Ước


chung lớn nhất
Số nguyên tố
Ước chung lớn nhất

Phương trình đồng dư


48 Giới thiệu
Định lý phần dư Trung Hoa
Định lý Fermat nhỏ

Thuật toán mã hóa


RSA

References

61
Phương trình đồng dư
Định lý phần dư Trung Hoa

Lý thuyết số cơ bản
Định lý phần dư Trung Hoa (The Chinese Remainder Theorem) nói
Hoàng Anh Đức
rằng nếu các môđun của một hệ các phương trình đồng dư tuyến tính
là đôi một nguyên tố cùng nhau thì hệ phương trình có nghiệm duy Giới thiệu

nhất theo môđun tích của các môđun của từng phương trình Tính chia hết và phép
toán môđun
Định nghĩa và tính chất cơ

Định lý 16: Định lý phần dư Trung Hoa bản


Đồng dư theo môđun m

Biểu diễn số nguyên


Cho các số nguyên dương m1 , m2 , . . . , mn thỏa mãn mi ≥ 2 và Biểu diễn theo hệ b-phân
gcd(mi , mj ) = 1 với mọi i ̸= j và 1 ≤ i, j ≤ n. Cho các số nguyên bất Cộng và nhân các số nhị
phân
kỳ a1 , a2 , . . . , an . Hệ phương trình Biểu diễn các số nguyên
âm theo hệ nhị phân
Tính lũy thừa môđun
x ≡ a1 (mod m1 ) Số nguyên tố và Ước
chung lớn nhất
x ≡ a2 (mod m2 ) Số nguyên tố

.. Ước chung lớn nhất

. Phương trình đồng dư


Giới thiệu
x ≡ an (mod mn ) 49 Định lý phần dư Trung Hoa
Định lý Fermat nhỏ

có nghiệm duy nhất theo môđun m = m1 m2 . . . mn . (Nghĩa là, tồn tại Thuật toán mã hóa
RSA
một nghiệm x với 0 ≤ x < m, và tất cả các nghiệm khác đồng dư với References
x theo môđun m)
61
Phương trình đồng dư
Định lý phần dư Trung Hoa

Lý thuyết số cơ bản
Chứng minh (tồn tại). Hoàng Anh Đức

Đặt Mi = m/mi (1 ≤ i ≤ n). Do đó gcd(Mi , mi ) = 1 Giới thiệu

Tính chia hết và phép


Theo Định lý 15, tồn tại số nguyên yi sao cho yi Mi ≡ 1 toán môđun
Định nghĩa và tính chất cơ
(mod mi ) bản

Pn Đồng dư theo môđun m

Đặt x = i=1 ai yi Mi = a1 y1 M1 + a2 y2 M2 + · · · + an yn Mn Biểu diễn số nguyên


Biểu diễn theo hệ b-phân
Do mi | Mk với mọi k ̸= i, Mk ≡ 0 (mod mi ), do đó Cộng và nhân các số nhị
phân
x ≡ ai yi Mi ≡ ai (mod mi ) với mọi i. Do đó x là nghiệm Biểu diễn các số nguyên
âm theo hệ nhị phân
của hệ phương trình đã cho Tính lũy thừa môđun

Số nguyên tố và Ước
chung lớn nhất

Bài tập 12 Số nguyên tố


Ước chung lớn nhất

Hoàn thành Chứng minh của Định lý phần dư Trung Hoa bằng Phương trình đồng dư
Giới thiệu
cách chỉ ra nghiệm x của hệ phương trình đã cho là duy nhất 50 Định lý phần dư Trung Hoa

(Gợi ý: Giả sử x và y là hai nghiệm phân biệt của hệ phương Định lý Fermat nhỏ

Thuật toán mã hóa


trình đã cho. Chứng minh rằng mi | (x − y) với mọi 1 ≤ i ≤ n. RSA

Sử dụng Bài tập 11 để kết luận rằng m | (x − y) trong đó References

m = m1 m2 . . . mn ) 61
Phương trình đồng dư
Định lý phần dư Trung Hoa

Lý thuyết số cơ bản
Ví dụ 12 Hoàng Anh Đức

Giải hệ phương trình Giới thiệu

Tính chia hết và phép


toán môđun
x≡2 (mod 3) Định nghĩa và tính chất cơ
bản
x≡3 (mod 5) Đồng dư theo môđun m

Biểu diễn số nguyên


x≡5 (mod 7) Biểu diễn theo hệ b-phân
Cộng và nhân các số nhị
phân
Biểu diễn các số nguyên
m = m1 m2 m3 = 3 · 5 · 7 = 105 âm theo hệ nhị phân
Tính lũy thừa môđun

M1 = m/m1 = 35 và y1 = 2 là một nghịch đảo của M1 Số nguyên tố và Ước


chung lớn nhất
theo môđun m1 = 3 Số nguyên tố
Ước chung lớn nhất
M2 = m/m2 = 21 và y2 = 1 là một nghịch đảo của M2 Phương trình đồng dư
theo môđun m2 = 5 Giới thiệu
51 Định lý phần dư Trung Hoa

M3 = m/m3 = 15 và y3 = 1 là một nghịch đảo của M3 Định lý Fermat nhỏ

Thuật toán mã hóa


theo môđun m2 = 7 RSA
P3
x = i=1 ai yi Mi = 2 · 2 · 35 + 3 · 1 · 21 + 5 · 1 · 15 = 278 ≡ 68 References

(mod 105) 61
Phương trình đồng dư
Định lý phần dư Trung Hoa

Lý thuyết số cơ bản
Ví dụ 13 (Phương pháp thay ngược) Hoàng Anh Đức

Giải hệ phương trình Giới thiệu

Tính chia hết và phép


toán môđun
x≡2 (mod 3) (1) Định nghĩa và tính chất cơ
bản
x≡3 (mod 5) (2) Đồng dư theo môđun m

Biểu diễn số nguyên


x≡5 (mod 7) (3) Biểu diễn theo hệ b-phân
Cộng và nhân các số nhị
phân
Biểu diễn các số nguyên
Từ (1), tồn tại t ∈ Z sao cho x = 3t + 2 âm theo hệ nhị phân
Tính lũy thừa môđun

Thay vào (2), ta có 3t + 2 ≡ 3 (mod 5), suy ra 3t ≡ 1 Số nguyên tố và Ước


chung lớn nhất
(mod 5), do đó t ≡ 2 (mod 5). Do đó, tồn tại u ∈ Z sao cho Số nguyên tố
Ước chung lớn nhất
t = 5u + 2. Suy ra, x = 3t + 2 = 3(5u + 2) + 2 = 15u + 8
Phương trình đồng dư
Thay vào (3), ta có 15u + 8 ≡ 5 (mod 7), suy ra 15u ≡ −3 52
Giới thiệu
Định lý phần dư Trung Hoa
(mod 7), do đó u ≡ 4 (mod 7). Do đó, tồn tại v ∈ Z sao Định lý Fermat nhỏ

cho u = 7v + 4 Thuật toán mã hóa


RSA

Suy ra x = 15u + 8 = 15(7v + 4) + 8 = 105v + 68. Do đó, References

x ≡ 68 (mod 105) 61
Phương trình đồng dư
Định lý phần dư Trung Hoa

Lý thuyết số cơ bản
Bài tập 13 Hoàng Anh Đức

Giải hệ phương trình sau bằng các phương pháp minh họa Giới thiệu

trong hai ví dụ trước Tính chia hết và phép


toán môđun
Định nghĩa và tính chất cơ

x≡1 (mod 5) (4) bản


Đồng dư theo môđun m

x≡2 (mod 6) (5) Biểu diễn số nguyên


Biểu diễn theo hệ b-phân

x≡3 (mod 7) (6) Cộng và nhân các số nhị


phân
Biểu diễn các số nguyên
âm theo hệ nhị phân
Tính lũy thừa môđun

Bài tập 14 Số nguyên tố và Ước


chung lớn nhất
Giải hệ phương trình sau bằng các phương pháp minh họa Số nguyên tố
Ước chung lớn nhất
trong hai ví dụ trước Phương trình đồng dư
Giới thiệu
53 Định lý phần dư Trung Hoa
x≡2 (mod 3) (7) Định lý Fermat nhỏ

x≡1 (mod 4) (8) Thuật toán mã hóa


RSA

x≡3 (mod 5) (9) References

61
Phương trình đồng dư
Định lý phần dư Trung Hoa

Lý thuyết số cơ bản

Hoàng Anh Đức

Định lý phần dư Trung Hoa cho ta một cách thực hiện các tính Giới thiệu

toán số học với các số nguyên lớn Tính chia hết và phép
toán môđun
Theo Định lý, một số nguyên a với Định nghĩa và tính chất cơ
bản

0 ≤ a < m = m1 m2 . . . mn trong đó gcd(mi , mj ) = 1 với Đồng dư theo môđun m

Biểu diễn số nguyên


mọi i ̸= j, 1 ≤ i, j ≤ n, có thể được biểu diễn thông qua bộ Biểu diễn theo hệ b-phân

(a mod m1 , a mod m2 , . . . , a mod mn ) Cộng và nhân các số nhị


phân
Biểu diễn các số nguyên
Để thực hiện tính toán với các số nguyên lớn được biểu âm theo hệ nhị phân
Tính lũy thừa môđun
diễn theo cách này Số nguyên tố và Ước
chung lớn nhất
Thực hiện tính toán riêng biệt cho từng bộ Số nguyên tố
Mỗi tính toán có thể được thực hiện trong cùng một máy Ước chung lớn nhất

tính hoặc thực hiện song song Phương trình đồng dư


Giới thiệu
Xuất kết quả đầu ra bằng cách giải hệ phương trình đồng dư 54 Định lý phần dư Trung Hoa

Có thể thực hiện khi m luôn lớn hơn kết quả đầu ra mong Định lý Fermat nhỏ

Thuật toán mã hóa


muốn RSA

References

61
Phương trình đồng dư
Định lý Fermat nhỏ

Lý thuyết số cơ bản
Định lý 17: Định lý Fermat nhỏ Hoàng Anh Đức

Nếu p là một số nguyên tố và a là một số nguyên không chia hết Giới thiệu

cho p, thì ap−1 ≡ 1 (mod p). Thêm vào đó, với mọi số nguyên a, Tính chia hết và phép
toán môđun
ta có ap ≡ a (mod p) Định nghĩa và tính chất cơ
bản
Đồng dư theo môđun m
Bài tập 15 (Chứng minh Định lý Fermat nhỏ) Biểu diễn số nguyên

Nhắc lại: Với các số nguyên a, b, c và số nguyên dương m, nếu Biểu diễn theo hệ b-phân
Cộng và nhân các số nhị
ac ≡ bc (mod m) và gcd(c, m) = 1 thì a ≡ b (mod m). phân
Biểu diễn các số nguyên
âm theo hệ nhị phân
(a) Giả sử a không chia hết cho p. Chứng minh rằng không có hai Tính lũy thừa môđun

số nguyên nào trong số các số 1 · a, 2 · a, . . . , (p − 1) · a là Số nguyên tố và Ước


chung lớn nhất
đồng dư theo môđun p Số nguyên tố

(b) Từ phần (a), kết luận rằng tích các số 1, 2, . . . , p − 1 đồng dư Ước chung lớn nhất

với tích các số a, 2a, . . . , (p − 1)a theo môđun p. Sử dụng điều Phương trình đồng dư
Giới thiệu
này để chứng minh rằng (p − 1)! ≡ ap−1 (p − 1)! (mod p) Định lý phần dư Trung Hoa
55
(c) Chỉ ra từ phần (b) rằng ap−1 ≡ 1 (mod p) nếu a không chia
Định lý Fermat nhỏ

Thuật toán mã hóa


hết cho p. (Gợi ý: Xem lại phần chứng minh Định lý cơ bản RSA

của số học. Chứng minh p ∤ (p − 1)! và áp dụng mệnh đề trên) References

61
Phương trình đồng dư
Định lý Fermat nhỏ

Lý thuyết số cơ bản

Hoàng Anh Đức

Ví dụ 14 (Tìm số dư của phép chia cho số nguyên Giới thiệu

Tính chia hết và phép


tố) toán môđun
Định nghĩa và tính chất cơ
222
Tìm 7 mod 11 bản
Đồng dư theo môđun m

Theo Định lý Fermat nhỏ, ta có 710 ≡ 1 (mod 11) Biểu diễn số nguyên
Biểu diễn theo hệ b-phân
10 k
Do đó, (7 ) ≡ 1 (mod 11) với mọi k ∈ Z Cộng và nhân các số nhị
phân

Mặt khác, 7222 = 710·22+2 = (710 )22 · 72 ≡ 49 ≡ 5 (mod 11) Biểu diễn các số nguyên
âm theo hệ nhị phân
Tính lũy thừa môđun

Số nguyên tố và Ước
Bài tập 16 chung lớn nhất
Số nguyên tố

(a) Sử dụng Định lý Fermat nhỏ để tính 52003 mod 7,


Ước chung lớn nhất

Phương trình đồng dư


52003 mod 11, và 52003 mod 13 Giới thiệu
Định lý phần dư Trung Hoa
(b) Sử dụng kết quả từ phần (a) và Định lý phần dư Trung Hoa 56 Định lý Fermat nhỏ

để tính 52003 mod 1001 (Chú ý rằng 1001 = 7 · 11 · 13) Thuật toán mã hóa
RSA

References

61
Thuật toán mã hóa RSA
Mật mã khóa công khai

Lý thuyết số cơ bản

Hoàng Anh Đức


Trong mật mã khóa bí mật (private key cryptography), một
Giới thiệu
khóa bí mật được sử dụng cả trong việc mã hóa lẫn giải
Tính chia hết và phép
mã các thông điệp toán môđun
Định nghĩa và tính chất cơ
Một vấn đề đặt ra là làm sao để chia sẻ khóa bí mật một bản
Đồng dư theo môđun m
cách an toàn
Biểu diễn số nguyên
Trong mật mã khóa công khai (public key cryptography), Biểu diễn theo hệ b-phân
Cộng và nhân các số nhị
hai khóa được sử dụng: một để mã hóa và một để giải mã phân
Biểu diễn các số nguyên
Thông tin gửi đến có thể được mã hóa bởi bất kỳ ai có khóa âm theo hệ nhị phân
Tính lũy thừa môđun
công khai, nhưng chỉ có thể được giải mã bởi người sở hữu
Số nguyên tố và Ước
khóa bí mật chung lớn nhất
Số nguyên tố
Người sở hữu khóa bí mật có thể mã hóa thông tin với khóa Ước chung lớn nhất

bí mật của mình, và bất kỳ ai cũng có thể giải mã thông tin Phương trình đồng dư
này bằng khóa công khai, và biết rằng chỉ có duy nhất Giới thiệu
Định lý phần dư Trung Hoa
người sở hữu khóa bí mật có thể mã hóa thông tin đó. (Đây Định lý Fermat nhỏ

là cơ sở của chữ ký điện tử) 57 Thuật toán mã hóa


RSA
Hệ mã khóa công khai được biết đến nhiều nhất là RSA References

61
Thuật toán mã hóa RSA
RSA - Rivest-Shamir-Adleman

Lý thuyết số cơ bản
Chọn hai số nguyên tố lớn phân biệt p, q Hoàng Anh Đức

Đặt n = pq và k = (p − 1)(q − 1) Giới thiệu

Chọn số nguyên e thỏa mãn 1 < e < k và gcd(e, k) = 1 Tính chia hết và phép
toán môđun

Tính nghịch đảo d của e theo môđun k, nghĩa là de ≡ 1 Định nghĩa và tính chất cơ
bản
Đồng dư theo môđun m
(mod k)
Biểu diễn số nguyên
Biểu diễn theo hệ b-phân
Khóa công khai: (n, e) Cộng và nhân các số nhị
phân

Khóa bí mật: (n, d) Biểu diễn các số nguyên


âm theo hệ nhị phân
Tính lũy thừa môđun
Mã hóa: Số nguyên tố và Ước
Chuyển thông điệp M cần mã hóa thành số nguyên m, chung lớn nhất
Số nguyên tố
0≤m<n Ước chung lớn nhất

Thông điệp mã hóa c được tính bằng c = me mod n (Việc Phương trình đồng dư
Giới thiệu
này có thể được thực hiện một cách hiệu quả. Xem bài Định lý phần dư Trung Hoa

giảng trước) Định lý Fermat nhỏ

58 Thuật toán mã hóa


Giải mã: RSA

Tính m = cd mod n References

Chuyển m từ số nguyên sang thông điệp M ban đầu


61
Thuật toán mã hóa RSA
RSA - Rivest-Shamir-Adleman

Lý thuyết số cơ bản

Ví dụ 15 Hoàng Anh Đức

n = pq = 43 · 59 = 2537, k = 42 · 58 = 2436 Giới thiệu

Tính chia hết và phép


Chọn e = 13: 1 < e < k và gcd(13, 2436) = 1 toán môđun

d = 937 là nghịch đảo của 13 theo môđun 2436 Định nghĩa và tính chất cơ
bản

Khóa công khai: (2537, 13) Đồng dư theo môđun m

Biểu diễn số nguyên


Khóa bí mật: (2537, 937) Biểu diễn theo hệ b-phân
Cộng và nhân các số nhị
phân

Mã hóa và Giải mã Biểu diễn các số nguyên


âm theo hệ nhị phân
Tính lũy thừa môđun
Chuyển thông điệp M = STOP gồm các chữ cái thành số
Số nguyên tố và Ước
nguyên bằng cách gán mỗi chữ cái bằng thứ tự trong bảng chung lớn nhất
Số nguyên tố
chữ cái tiếng Anh trừ đi 1: ST ⇒ 1819 và OP ⇒ 1415 Ước chung lớn nhất

181913 mod 2537 = 2081 và 141513 mod 2537 = 2182 Phương trình đồng dư
Giới thiệu
Thông điệp mã hóa là 2081 2182 Định lý phần dư Trung Hoa

Ví dụ nếu nhận được thông điệp 0981 0461 Định lý Fermat nhỏ

59 Thuật toán mã hóa


0981937 mod 2537 = 0704 và 0461937 mod 2537 = 1115 RSA

Thông điệp giải mã là HELP References

61
Thuật toán mã hóa RSA
RSA - Rivest-Shamir-Adleman

Lý thuyết số cơ bản
Tính đúng đắn của quá trình giải mã. Hoàng Anh Đức

Ta chứng minh nếu c = me mod n thì m = cd mod n.


Giới thiệu
d e d ed
Ta có c = (m ) ≡ m (mod n) Tính chia hết và phép
Theo cách xây dựng, ed ≡ 1 (mod k) với k = (p − 1)(q − 1). Do toán môđun
Định nghĩa và tính chất cơ
đó tồn tại số nguyên h thỏa mãn ed − 1 = h(p − 1)(q − 1) bản

Ta xét med mod p. Nếu p ∤ m thì theo Định lý Fermat nhỏ, ta có Đồng dư theo môđun m

Biểu diễn số nguyên


med = mh(p−1)(q−1) m = (mp−1 )h(q−1) m Biểu diễn theo hệ b-phân
Cộng và nhân các số nhị
≡ 1h(q−1) m ≡ m (mod p) phân
Biểu diễn các số nguyên
âm theo hệ nhị phân
Tính lũy thừa môđun
Nếu p | m, ta có med ≡ 0 ≡ m (mod p). Tóm lại, med ≡ m
Số nguyên tố và Ước
(mod p). Tương tự, ta có med ≡ m (mod q) chung lớn nhất
Do gcd(p, q) = 1, sử dụng Định lý phần dư Trung Hoa, ta có Số nguyên tố
Ước chung lớn nhất
med ≡ m (mod pq)
Phương trình đồng dư
Do gcd(p, q) = 1, theo Định lý Bézout, tồn tại s, t ∈ Z thỏa mãn Giới thiệu
sp + tq = 1. Đặt x = m · sp + m · tq thì Định lý phần dư Trung Hoa

x mod p = (m · sp + m · (1 − sp)) mod p = m mod p. Suy ra x ≡ m Định lý Fermat nhỏ

(mod p). Tương tự, x ≡ m (mod q) 60 Thuật toán mã hóa


RSA
Theo Định lý phần dư Trung Hoa, x ≡ med (mod pq), hay med ≡ m
(mod pq) ≡ m (mod n) References

61
Tài liệu tham khảo
Lý thuyết số cơ bản

Hoàng Anh Đức

Giới thiệu

Tính chia hết và phép


toán môđun
Định nghĩa và tính chất cơ
bản
Đồng dư theo môđun m

Biểu diễn số nguyên


Agrawal, Manindra, Neeraj Kayal, and Nitin Saxena Biểu diễn theo hệ b-phân

(2004). “PRIMES is in P”. In: Annals of Mathematics Cộng và nhân các số nhị
phân

160.2, pp. 781–793. DOI: Biểu diễn các số nguyên


âm theo hệ nhị phân

10.4007/annals.2004.160.781. Tính lũy thừa môđun

Số nguyên tố và Ước
chung lớn nhất
Số nguyên tố
Ước chung lớn nhất

Phương trình đồng dư


Giới thiệu
Định lý phần dư Trung Hoa
Định lý Fermat nhỏ

Thuật toán mã hóa


RSA
61 References

61

You might also like