Professional Documents
Culture Documents
00 CoSoToanHoc ThuongK58
00 CoSoToanHoc ThuongK58
CƠ SỞ TOÁN HỌC
CỦA LÝ THUYẾT MẬT MÃ
11/9/2017 1
NỘI DUNG
Số học Modulo
Ma trận
11/9/2017 2
SỐ HỌC CÁC SỐ NGUYÊN
11/9/2017 3
SỐ HỌC CÁC SỐ NGUYÊN
Binary operations
Tập hợp Z là đóng kín đối với các phép cộng, trừ và nhân,
nhưng không đóng kín đối với phép chia.
Ví dụ:
11/9/2017 4
SỐ HỌC CÁC SỐ NGUYÊN
Chia số nguyên
Cho hai số nguyên bất kỳ a và n , n > 1 q là thương số
q = a div n
Ví dụ
37 div 11 = 3
37 = 3*11 + 4 37 mod 11 = 4
11/9/2017 5
SỐ HỌC CÁC SỐ NGUYÊN
Phép chia hết
Ví dụ:
4|44, 13|78, -6|24, 11|(-33).
11∤(-32), 13 ∤27, -6 ∤ 23, 4 ∤ 41.
11/9/2017 6
SỐ HỌC CÁC SỐ NGUYÊN
Phép chia hết
11/9/2017 7
SỐ HỌC CÁC SỐ NGUYÊN
gcd(140,12)=4
Ký hiệu: d = gcd(a,b)
11/9/2017 8
SỐ HỌC CÁC SỐ NGUYÊN
Thuật toán Euclidean
Mục đích: tìm gcd(a,b)
gcd(a,b) = r1
11/9/2017 9
SỐ HỌC CÁC SỐ NGUYÊN
Thuật toán Euclidean
gcd(a,0) = a gcd(a,b)=gcd(b,r)
11/9/2017 11
SỐ HỌC CÁC SỐ NGUYÊN
Số nguyên tố
Một số nguyên a > 1 được gọi là số nguyên tố, nếu a không có ước số nào ngoài 1 và chính a và được
gọi là hợp số , nếu không phải là số nguyên tố.
Hai số a và b được gọi là nguyên tố với nhau, nếu chúng không có ước số chung nào khác 1, tức là
nếu gcd(a,b) =1.
Trong đó , ,…, là các số nguyên tố khác nhau, , ,…, là các số mũ nguyên dương.
11/9/2017 12
NỘI DUNG
Số học Modulo
Ma trận
11/9/2017 13
SỐ HỌC MODULO
Toán tử Mod
a mod n = r
11/9/2017 14
SỐ HỌC MODULO
Toán tử Mod
Ví dụ:
• 27 mod 5 = 2
• 70 mod 7 = 0
• -18 mod 14 = 10
• -7 mod 10 = 3
11/9/2017 15
SỐ HỌC MODULO
Đồng dư - congruence
Hai số nguyên a và b là đồng dư với nhau theo module n, và viết a ≡ b (mod n),
nếu n|(a−b).
Mỗi lớp tương đương được đại diện bởi một số duy nhất trong tập hợp: Zn = {0,
1, 2, 3,...., n -1} là số dư chung khi chia các số trong lớp đó cho n.
11/9/2017 16
SỐ HỌC MODULO
Toán tử trong Zn
11/9/2017 17
SỐ HỌC MODULO
Toán tử trong Zn
11/9/2017 18
SỐ HỌC MODULO
Toán tử trong Zn
Ví dụ: (241*72) mod 23 = ((241 mod 23) * (72 mod 23)) mod 23
= (11 * 3)mod 23
= 33 mod 23 = 10
11/9/2017 19
SỐ HỌC MODULO
Nghịch đảo - Inverses
a+b ≡ 0 (mod n)
Trong số học modulo, mỗi một số nguyên có một nghịch đảo cộng.
Tổng hai số nguyên là đảo cộng của nhau thì đồng dư với 0 trong modulo n
Ví dụ: 11 là nghịch đảo cộng của 9 trong Z20vì (11+9)= 20 ≡ 0 mod 20
Trong tập Z10 có bao nhiêu cặp nghịch đảo cộng?
11/9/2017 20
SỐ HỌC MODULO
Nghịch đảo
22-1.8mod25
vì 22 = 176 ≡=8
=?
1 (mod25)
11/9/2017 21
SỐ HỌC MODULO
Nghịch đảo
Ví dụ: Tìm tất cả các cặp là nghịch đảo nhân của nhau trong Z11.
11/9/2017 22
SỐ HỌC MODULO
Nghịch đảo
Nghịch đảo nhân – Multiplicate Inverses
11/9/2017 23
SỐ HỌC MODULO
Nghịch đảo
Nghịch đảo nhân – Multiplicate Inverses
Có cặp 7 cặp:
{(1,1), (3,9), (5,21), (7,15), (11,19), (17,23), (25,25)}.
11/9/2017 24
SỐ HỌC MODULO
Thuật toán Euclidean có thể tính đồng thời gcd(a,b) và giá trị s và t.
11/9/2017 25
SỐ HỌC MODULO
r = r1 − q * r2
Thuật toán Euclidean mở rộng s = s1 − q * s2
t = t1 − q * t2
gcd(a,b) = r1 s = s1 t = t1
11/9/2017 26
SỐ HỌC MODULO
MATLAB
11/9/2017 27
SỐ HỌC MODULO
q r1 r2 r s1 s2 s t1 t2 t
5 161 28 21 1 0 1 0 1 -5
1 28 21 7 0 1 -1 1 -5 6
3 21 7 0 1 -1 4 -5 6 -23
7 0 -1 4 6 -23
11/9/2017 29
SỐ HỌC MODULO
11/9/2017 30
SỐ HỌC MODULO
Tập các thặng dư thu gọn theo được định nghĩa là tập
∗ = { ∈ : gcd( , ) = 1}
11/9/2017 31
NỘI DUNG
Số học Modulo
Ma trận
11/9/2017 32
ĐỒNG DƯ TUYẾN TÍNH
11/9/2017 33
ĐỒNG DƯ TUYẾN TÍNH
Lời giải:
• Ta có: gcd(3,5) = 1, có 1|4.
• Lập bảng tìm nghịch đảo nhân của 3 trên modulo 5, sử dụng Euclidean mở rộng (tự lập
bảng) ⇒ 3-1(mod 5) = 2
11/9/2017 34
NỘI DUNG
Số học Modulo
Ma trận
11/9/2017 35
MA TRẬN
Định nghĩa
Ma trận kích thước mxn bao gồm: m*n phần tử, m hàng và n cột
Phần tử aij thuộc hàng i, cột j
⋯
⋱ ⋮
⋮
⋯
11/9/2017 36
MA TRẬN
Ma trận chuyển vị
11/9/2017 37
MA TRẬN
Định thức
Định thức của ma trận vuông A, kích thước m× m (kí hiệu là det(A))
là một số được tính theo:
Ma trận nghịch đảo nhân: Ma trận vuông B được gọi là nghịch đảo
của ma trận vuông A khi và chỉ khi: A×B=I
11/9/2017 38
MA TRẬN
Ma trận thặng dư (Residue Matrices)
Mọi phép toán trên ma trận thặng dư thì tương tự như trên ma trận
số nguyên ngoại trừ việc các toán tử được thực trên trong số học
modulo.
Ma trận thặng dư vuông tồn tại nghịch đảo nhân khi và chỉ khi:
gcd(det(A),n)=1.
11/9/2017 39
MA TRẬN
11/9/2017 40
Bài 1. Cho một ma trận vuông A, tìm nghịch đảo A-1 trong module n.
3 9
Ma trận: A = trên module n = 17.
2 7
3 9
Tìm det(A) = =3
2 7
gcd( det(A), n) = gcd(3,17) = 1.
Suy ra ma trận A tồn tại nghịch đảo trên module 17.
A-1 = (det(A) )-1 *BT (mod 17). Với BT là ma trận phụ đại số đã được chuyển vị.
Tính toán (det(A) )-1 : Tìm nghịch đảo nhân của det(A)= 3 trên module 17, sử
dụng thuật toán Euclidean mở rộng. (det(A) )-1 mod 17 = 3-1mod 17 = 6.
7 −9
Tính ma trận phụ đại số đã được chuyển vị BT (tự tính), BT = .
−2 3
11/9/2017 41
Bài 1. Cho một ma trận vuông A, tìm nghịch đảo A-1 trong module n.
7 −9 42 −54 8 14
Vậy: A-1 = 6* (mod 17) = mod 17 =
−2 3 −12 18 5 1
3 9 8 14 69 51 1 0
Check again: A * A-1 = * = mod 17 = =I
2 7 5 1 51 35 0 1
11/9/2017 42
Bài 2. Problem with Hill cipher.
3 9
Encryption: Plaintext P =“BACHKHOA”, Key: K = .
2 7
Encryption by Hill cipher, được bản mật ciphertext C = (P*K) mod 26.
Kiểm tra khóa K thỏa mãn điều kiện tồn tại nghịch đảo nhân: gcd(det(K), 26) = 1.
Plaintext: “BA CH KH OA” viết dưới dạng ma trận như sau:
1 0
Plaintext = => P = 2 7
10 7
14 0
Lưu ý: ta có thể chèn thêm ký tự “Z” vào bản rõ khi chiều dài bản rõ khác số
nguyên lần số hàng/cột của khóa.
11/9/2017 43
Bài 2. Bài toán với Hill cipher
1 0
Encrypt: C = (P*K) mod 26 = 2 7 ∗ 3 9
mod 26
10 7 2 7
14 0
3 9 3 9
C = 20 67 mod 26 = 20 15 ⇒ ℎ =
44 139 18 9
42 126 16 22
11/9/2017 44
Bài 2. Bài toán với Hill cipher
3 9
Decryption: Ciphertext C = “DJUPSJQW”, Key: K = . Giải mật mã hóa bằng
2 7
Hill cipher, thu được bản rõ plaintext P = (C*K-1) mod 26.
Kiểm tra khóa K thỏa mãn tồn tại nghịch đảo nhân: gcd(det(K), 26) = 1, tính K-1
Ciphertext: “DJ UP SJ QW” viết dưới dạng ma trận như sau:
3 9
Ciphertext = ⇒ C = 20 15
18 9
16 22
11/9/2017 45
Bài 2. Bài toán với Hill cipher
3 9
11 23
Decrypt: P = (C*K-1) mod 26 = 20 15 ∗ mod 26
18 9 8 1
16 22
105 78 1 0
C = 340 475 mod 26 = 2 7 ⇒ =
270 423 10 7
352 390 14 0
11/9/2017 46
BÀI TẬP VỀ NHÀ THEO NHÓM
HÌNH THỨC NỘP BÀI: Thông qua thư mục dropbox của nhóm trưởng.
11/9/2017 47
Thank you for
attending!
11/9/2017 48