Định nghĩa : Hai số nguyên dương a,b được gọi là nguyên tố cùng nhau nếu USCLNa,b=1... Số nguyên ttVí dụ: USCLN3,10=1 nên 3 và 10 là nguyên tố cùng nhau Định nghĩa: Số nguyên tố Prime Nu
Trang 1TOÁN RỜI RẠC
(Discrete Mathematics)
Trang 2Chương 4
CƠ SỞ LÝ THUYẾT SỐ
VÀ MÃ HÓA THÔNG TIN
Trang 3Z+: Tập các số nguyên không âm.
Trang 4Số nguyên (tt)
Định nghĩa:
Trên Z, định nghĩa quan hệ |:
∀b∈Z ∀a∈Z\{0} , a|b⇔ ∃k∈Z, b=ka
Đọc là: “b chia hết cho a” hay “a là ước số của b”
Nếu b không chia hết cho a, ta viết a | b
Định lý: ∀a,b,c ∈Z, ta có:
i) a≠0 ⇒ a|0 ii) a|b∧a|c ⇒ a|(b+c)
iii) a≠0, a|b ⇒ a| bc iii) a|b∧b|c ⇒a|c
Trang 6Định nghĩa : Hai số nguyên dương a,b được gọi là nguyên tố cùng
nhau nếu USCLN(a,b)=1
Trang 7Số nguyên (tt)
Ví dụ: USCLN(3,10)=1 nên 3 và 10 là nguyên tố cùng nhau
Định nghĩa: Số nguyên tố (Prime Number):
Số nguyên p>1 gọi là số nguyên tố nếu p không có ước số nào ngoài 1 và chính nó
Ví dụ: 2,3,5,7,11,13,17,… là các số nguyên tố
Định lý: Với mỗi số nguyên dương a bất kỳ đều có thể biểu diễn
duy nhất bằng một tích của dãy không giảm (có thể rỗng) có
r r
r p p p p
3 2
1
=
Trang 9Ví dụ: a = 56, b = -5
Tìm được q = 56/-5 = -11 và r = 56-(-11 ×- 5)Vậy 56 = -11 × -5 + 1 (56 chia cho-5 dư 1)
Trang 10Số nguyên (tt)
Định lý: Nếu a, b được viết ở dạng tích các thừa số nguyên tố:
(Lưu ý: Cả 2 phép phân tích đều có n số thừa số, và ri ≥0, ti≥0)
2
n
r 3
r 2
r
1 p p p p
n
t 3
t 2
t
1 p p pp
b =
) t r min(
n
) t r min(
3
) t r min(
2
) t r min(
p ) b , a (
Trang 12Thuật toán Euclide:
Tìm ước số chung lớn nhất của 2 số nguyên a,b:
Nội dung: Đặt r0 = a và r1=b Thực hiện chia liên tiếp ri cho
ri+1 đến khi số dư bằng 0:
Trang 13Thuật toán Euclide
Ví du: USCLN(48,36)=?
Ta có: 48 =1.36+12
36 = 12.3+0Vậy USCLN(48,36)=12
Ví dụ: USCNL(152;200)=?
Ta có: 200 = 1.152+48
152 = 3.48+ 8
48 = 6.8 + 0Vậy USCLN(152,200)=8
Trang 14Thuật toán Euclide (1):
Trang 15Thuật toán Euclide cải tiến
While (x>0){
While (x:even) x=x/2While (y:even) y=y/2t=|x-y|/2
If (x≥y) x=tElse y=t}
g = g*yReturn g
Trang 17Số nguyên (tt)
Định nghĩa: Số nguyên a chia cho số nguyên b (b≠0) có số dư r,
ta viết: r = a mod b.
Ví dụ: 15 mod 4 = 3; 37 mod 5 = 2
Định nghĩa: Số nguyên a có cùng số dư với số nguyên b khi
chia cho n (n>0, nguyên) khi và chỉ khi a – b chia hết cho n
Kí hiệu a≡b (mod n), đọc là: “a đồng dư modulo n với b”.
Ví dụ: 2 ≡ 9 (mod 7)
4 ≡ 9 (mod 5)
23 ≡ 48 (mod 5)
Trang 18Số nguyên (tt)
Định lý: Nếu a≡b (mod n) và c≡d (mod n) thì:
(a+c) ≡ (b+d) (mod n) và a.c ≡b.d (mod n)C/m?:
Ví dụ:
a)
b)
Trang 19Số nguyên (tt)
Định nghĩa (tính khả nghịch): Cho a,n là 2 số nguyên, n>0 Số
nguyên a’ gọi là đảo của a (mod n) nếu:
a’.a ≡ 1 (mod n), khi đó ta nói a khả nghịch (mod n)
Định lý: Nếu 2 số nguyên a và n là nguyên tố cùng nhau thì tồn tại
một đảo của a (mod n)
C/m: Vì USCLN(a,n)=1 nên tồn tại các số nguyên s và t sao cho:
sa+ tn = 1
Mà tn mod n = 0 ⇒ sa mod n =1 ⇒ s là một đảo của a (mod n)
Trang 20Số nguyên (tt)
Ví dụ: Tìm đảo của 7 modulo 9.
Ta có 1 = 4.7 – 3.9
Vậy 4 là một đảo của 7 modulo 9 Nghĩa là: 4.7 ≡ 1(mod 9)
có dạng: ax ≡ b (mod n)
Trong đó: a,b,n là các số nguyên cho trước (n>0), x: xố nguyên có thể thay đổi để thỏa đồng dư
x thoả đồng dư: ax ≡ b (mod n).
c/m:
Do USCLN(a,b)=1 nên tồn tại đảo của a (mod n) Gọi đảo này là a ’.
Nhân 2 vế của đồng dư đã cho bởi a’ Ta được:
a’.ax ≡ a’b (mod n) ⇒ x ≡ a’b (mod n)
Trang 22Số nguyên (tt)
Giả sử n>1 là một số nguyên dương, m1, m2,…,mn là n số nguyên lớn hơn 1 đôi một nguyên tố cùng nhau Cho a1, a2,…,an là các số nguyên Đặt M=m1.m2….mn Khi đó tồn tại duy nhất một số nguyên
x (0 ≤ x<M) thỏa đồng thời các phương trình đồng dư sau:
Trang 24Số nguyên (tt)
Định lý Fermat nhỏ:
Với p là một số nguyên tố dương, với mọi số nguyên a không
là bội số của p thì ta luôn có: ap-1 ≡ 1 (mod p)
Hệ quả: Giả sử p là số nguyên tố dương
a) Với mọi số nguyên a, ta có: ap ≡ a (mod p)
b) Nếu e,d nguyên dương và thỏa điều kiện ed ≡1 (mod p-1)
thì ta có: (ae)d=(ad)e ≡ a (mod p)
Trang 25Do Mi = 0 (mod mk) với i ≠ k
Nên x ≡ akMkyk ≡ ak (mod mk)
Hay, x thỏa đồng thời các phương trình đồng dư đã cho
Trang 27Số nguyên (tt)
Định lý Fermat nhỏ:
Với p là một số nguyên tố, với mọi số nguyên a không là bội số của p thì ta luôn có: ap-1 ≡ 1 (mod p)
Hệ quả: Giả sử p là số nguyên tố
a) Với mọi số nguyên a, ta có: ap ≡ a (mod p)
b) Nếu e,d nguyên dương và thỏa điều kiện ed ≡1 (mod p-1)
thì ta có: (ae)d = (ad)e ≡ a (mod p)
Trang 29Định lý Euler
Hàm Euler
Cho n∈N, hàm Euler φ(n) được định nghĩa:
φ(n) = |{y ∈N|0<y<n ∧ (y,n)=1}| )
Trang 30 Mã hóa và giải mã: A gởi thông điệp M đến B và muốn chỉ có B mới có thể
hiểu
- Sự an toàn của việc mã hoá dựa vào khoá sử dụng
- Nếu dùng cùng một khoá để mã hoá và giải mã, gọi là hệ mã mã đối xứng
C: Tập các thông điệp đã mã hóa.
Một phép mã hóa với khoá K như là một song ánh
fK: M → C, fK(m)=c Quá trình giải mã là ánh xạ ngược f -1
Trang 31Khái niệm về mã hoá
Ví dụ: Mã hóa văn bản LOVE sử dung khóa K như sau:
fK: A → A, f(x)=(x+k) mod 26 Với A={0,1,…,25} bảng mã của bộ chữ cái tiếng Anh.
Trang 32Khái niệm về mã hoá
Khóa k cần phải giữ bí mật, gọi là khóa riêng (Private key)
Khóa mã hóa đơn giản Ngay cả khi khóa k không biết
cũng có thể tìm ra bằng cách thử 25 trường hợp khác nhau
Trang 33Khái niệm về mã hoá
Ví dụ: Giả sử thông điệp gốc cần gởi: m=10011101
Khóa để mã hóa K=10101110
Mã hóa: c=m+k theo quy tắc: 0+0=0; 0+1=1; 1+0=1 và 1+1=0
10011101 10101110 +
c K
Trang 34Khái niệm về mã hoá
Ví dụ: Xét quy tắc mã hóa:
∀ x ∈ {0,1,2,…,9}, E(x)=x 3 mod 11 Nghĩa là có tương ứng:
x: 0 1 2 3 4 5 6 7 8 9 E(x): 0 1 8 5 9 4 7 2 6 3 Giải mã:
∀ y ∈ {0,1,2,…,9}, D(y)=y 7 mod 11 Nghĩa là có tương ứng:
y: 0 1 8 5 9 4 7 2 6 3 E(y): 0 1 2 3 4 5 6 7 8 9
Nhận xét: Có thể công khai k=3 và công thức mã hóa (xk mod 11), nhưng phải bí mật khóa k2 = 7 để giải mã (có thể tìm ra khóa bí mật từ khóa công khai và công thức mã hóa đã biết tuy nhiên sẽ rất khó khăn với trường hợp số lớn)
Trang 352 Hệ thống mã hóa RSA
RSA: Viết tắt từ tên của 3 tác giả phát minh ra hệ mã:
Rivest, Shamir, Adleman
RSA là hệ mã công khai họat động như sau:
Mã hóa: Giả sử ta cần mã hoá thông điệp M (bản rõ)
Chọn 2 số nguyên tố lớn p,q, rồi tính n = p.q
Chọn số nguyên e < n sao cho (e, (p-1)(q-1))=1
Thông điệp M biểu diễn trong dạng thông thường được mã hóa bởi khóa (e,n) sang dạng mật mã C theo công thức:
C = Me (mod n)
Trang 36M chính là thông điệp gốc ban đầu được khôi phục.
Thông điệp gốc được diễn dịch thành dãy các số nguyên m, thực hiện
mã hoá từ số M (M<n)
(có thể thực hiện bằng cách diễn dịch các kí tự thành một số nguyên, rồi nhóm các số nguyên này lại thành số nguyên lớn)
Ví dụ: - Thông điệp gốc: “STOP”
- Diễn dịch thành dãy số nguyên: m=1819 1415
Trang 37Hệ thống mã hóa RSA
Chứng minh M là thông được gốc ban đầu?
Do ed ≡ 1 (mod (p-1)(q-1))
nên tồn tại số nguyên k sao cho: ed = k(p-1)(q-1)+1
Suy ra: ed ≡ 1 (mod p-1) và ed ≡ 1 (mod q-1)
Theo hệ quả của định lý nhỏ Fermat, ta có:
Do ed ≡ 1 (mod p-1) nên Cd ≡ (Me)d ≡ Med ≡ M (mod p)
Do ed ≡ 1 (mod q-1) nên Cd ≡ (Me)d ≡ Med ≡ M (mod q)
Mà (p,q)=1, theo định lý số dư trung hoa:
Cd ≡ M (mod p.q) ≡ M (mod n) Vậy, Cd chính là thông điệp gốc được phục hồi
Trang 38Hệ thống mã hóa RSA
Ví dụ: (thực tế thì p,q,e phải là các số lớn, tuy nhiên để dể tính
tóan trong minh họa ta dùng số nhỏ)
Thự hiện mã hóa thông điệp “LOVE” và giải mã bằng hệ
mã RSA với p=43, q=59, n=p.q = 43.59 = 2537, e=13
Trang 40Hệ thống mã hóa RSA
RSA là một hệ thống mã khóa công khai, có thể công khai
Công khai khóa (e,n) để mã hóa, tuy nhiên p, q phải được giữ
bí mật
Khi biết p, q, và e, ta có thể tính nhanh được n = p.q và đảo của e (mod (p-1)(q-1)) theo thuật tóan Euclid Nghĩa là có thể giải mã được thông điệp
Tuy nhiên, hiện chưa có phương pháp nào để giải mã thông điệp ngòai việc phân tích n thành tích của 2 thừa số nguyên tố Với số nguyên lớn, việc phân tích rất mất nhiều thời gian và xem như không thể thực hiện được
Trang 41Câu hỏi và bài tập
1 Biểu diễn USCLN của các cặp số nguyên sau đây dưới dạng tổ hợp tuyến tính của các số nguyên đó:
Trang 42Bài tập
5) Tìm những số nguyên có số dư bằng 1 khi chia cho 2 và cũng
có số dư bằng 1 khi chia cho 3
6) Tìm các số nguyên x thỏa tính chất:
Chia cho 9 dư 2Chia cho 5 dư 3Chia cho 8 dư 67) Tìm nhanh số dư khi chia tích sau cho 3:
63115×22090 ×1037 ×326×3127×31278) Tính nhanh số dư khi chia 19367834cho 7
9) Chứng minh rằng 2340 ≡ 1 (mod 11) bằng cách sử dụng định lý Fermat nhỏ và đẳng thức 2340 = (210)34
Trang 43Bài tập
10) Chứng minh rằng 2340 ≡ 1 (mod 31) bằng cách sử dụng định lý Fermat nhỏ và đẳng thức 2340 = (25)68
11) Dùng định lý Fermat nhỏ tính 3302 mod 5, 3302 mod 7 và 3302 mod 11
12) Thế nào là hệ thống mã hóa riêng (private) và mã hóa công