Bảo mật thông tin là khoa học nghiên cứu các nguyên lý và phương pháp cho phép mã hóa thông tin sao cho chỉ người có khóa giải mã (bí mật) mới có thể giải để hiểu được thông tin gốc. CƠ SỞ TOÁN HỌC VỀ SỐ NGUYÊN VÀ CÁC THUẬT TOÁN Thuật giải RSA Mã khóa công khai Mã theo khối Mã khóa bí mật
CƠ SỞ TOÁN HỌC CHO MÃ HÓA THÔNG TIN I. CƠ SỞ TOÁN HỌC VỀ SỐ NGUYÊN VÀ CÁC THUẬT TOÁN 1. Một số định nghĩa - Tập số tự nhiên: N = {0, 1, 2, 3, 4, . . . } - Tập số nguyên: Z = {0, ±1, ±2, ±3, . . . } - Thứ tự ≤ trên N là tối thứ tự. - Quan hệ “ước số”, ký hiệu | : a | b ⇔ ∃ k ∈ Z, k.a = b Nói cách khác: b là bội số của a. - Một số khái niệm khác: • ước số chung, ước số chung lớn nhất. Ký hiệu ước số chung lớn nhất của a và b: gcd(a,b) hay a ∧ b hay (a,b) • bội số chung, bội số chung nhỏ nhất. Ký hiệu bội số chung nhỏ nhất của a và b: lcm(a,b) hay a ∨ b • Phép toán chia “thương” và chia “dư”: Định lý: Với a ∈ Z, b ∈ N * , có duy nhất q ∈ Z và r ∈ N sao cho a = q.b + r, 0 ≤ r < b. Định nghĩa: a / b = q, và a % b = r. a % b còn được viết là a mod b. • a và b là nguyên tố cùng nhau khi (a,b) = 1. Ký hiệu: a ⊥ b. • p ∈ N là số nguyên tố khi : p > 1, và p chỉ có 2 ước số dương là 1 và p. Ngược lại, thì p được gọi là hợp số. • Ký hiệu tập các số nguyên tố là P. 2. Một số tính chất, định lý, và thuật toán - Định lý: a, b ∈ N * ⇒ a ∨ b = a.b / (a ∧ b). - Định lý: Với a, b ∈ N * và a > b ta có : a ∧ b = a ∧ (a % b) a ∧ b = a ∧ (a - b) - Thuật toán Euclide: tính gcd(a,b) với a và b là các số tự nhiên. B1 : While a > 0 and b > 0 do if a > b then a := a % b Else b := b % a. B2 : gcd(a,b) = a + b. - Định lý Bezout: Với a, b ∈ N, a > b ≥ 1 ta có : (i) Tồn tại x, y ∈ Z: a.x + b.y = gcd(a,b). (ii) a và b nguyên tố cùng nhau ⇔ tồn tại x, y ∈ Z: a.x + b.y = 1. - Thuật toán Bezout: Input: a và b không âm, a ≥ b. Output: d = gcd(a,b) và hai số nguyên x, y: a.x + b.y = d. B1: nếu b = 0 thì d = a; x =1; y = 0. B2 : x2 = 1 ; x1 = 0 ; y2 = 0 ; y1 = 1. B3 : while b > 0 do Begin q = a/b ; r = a-q.b ; x = x2 – q.x1 ; y = y2 – q.y1 ; a = b ; b = r ; x2 = x1 ; x1 = x ; y2 = y1 ; y1 = y ; end B4 : d = a ; x = x2 ; y = y2. B5 : return d, x, y ; - Định lý cơ bản của số học: Mọi số nguyên n ≥ 2 đều có thể biểu diễn duy nhất dưới dạng tích các thừa số nguyên tố (không kể sai khác phép hoán vị các thừa số nguyên tố). 3. Phép chia dư trên trường Z m , với m ∈ N * Cho m ∈ N * . Quan hệ “đồng dư mod m” trên Z: x ≡ y (mod m) ⇔ m | (x-y) Z m = tập các số nguyên mod m. = { 0, 1, 2, . . . , m-1 } - Định lý: (i) Quan hệ “đồng dư mod m” là quan hệ tương đương trên Z. (ii) a ≡ a1 (mod m), b ≡ b1 (mod m) ⇒ a + b ≡ a1 + b1 (mod m) a.b ≡ a1.b1 (mod m) a n = (a1) n (mod m), với mọi n ∈ Z. ⇒ ta có phép toán cộng (+) và nhân (.) trên Z m . 4. Hàm phi-Euler, Định lý Euler và Định lý Fermat Ký hiệu tập các phần tử khả nghịch trong Z m là Z m * . - Định nghĩa hàm phi-Euler : Cho n ≥1, đặt ϕ(n) = số các số nguyên trong khoảng [1,n] nguyên tố cùng nhau với n. - Định lý: Cho x, y ∈ Z m , m ≥ 2. (i) x ∈ Z m * ⇔ x ⊥ m. (ii) x, y ∈ Z m * ⇔ x -1 , xy ∈ Z m * . (iii) card(Z m * ) = ϕ(m) Nhận xét : Khi m nguyên tố thì ϕ(m) = m-1 và Z m * = Z m - {0}. - Định lý Euler: Cho m ≥ 2. ta có : x ⊥ m ⇒ x ϕ (m) ≡ 1 (mod m). - Định lý Fermat: Cho m ≥ 2. ta có : p ∈ P, x ⊥ p ⇒ x p-1 ≡ 1 (mod p). - Định lý: (i) p ∈ P, n ∈ Z ⇒ n p ≡ n (mod p). (ii) p ∈ P, n ∈ Z, r ≡ s (mod ϕ(m)) ⇒ n r ≡ n s (mod p). (iii) Nếu p và q là hai số nguyên tố khác nhau, và n = p.q thì ϕ(n) = (p-1)(q-1). - Định lý dư số Trung Hoa: (i) Nếu các số nguyên n 1 , n 2 , …, n k đôi một nguyên tố cùng nhau và n = n 1 .n 2 …n k , thì hệ đồng dư x ≡ a 1 (mod n 1 ) x ≡ a 2 (mod n 2 ) . . . x ≡ a k (mod n k ) có nghiệm duy nhất trong Z n . (ii) Ánh xạ f : Z n → Z n1 x Z n2 x … x Z nk với f(x) = (x mod n 1 , x mod n 2 , …, x mod n k ), x ∈ Z n , là song ánh. - Định lý: Cho m ⊥ n. Ánh xạ f : Z mn → Z m x Z n xác định bởi f(x) = (x mod m, x mod n), x ∈ Z mn , là song ánh. 5. Các biểu diễn số theo cơ số và các thuật giải tính toán số học. (tham khảo: [12]) II. BẢO MẬT THÔNG TIN 1. Giới thiệu: Bảo mật thông tin là khoa học nghiên cứu các nguyên lý và phương pháp cho phép mã hóa thông tin sao cho chỉ người có khóa giải mã (bí mật) mới có thể giải để hiểu được thông tin gốc. - Hai dạng bài toán an toàn thông tin: (1) Bảo mật: ngăn cản không cho người lạ trích chọn thông tin từ các thông điệp được gởi trên các kênh truyền phổ biến (thường không an toàn). (2) Chứng thực: đảm bảo chỉ có người nhận đúng mới có thể đọc được thông điệp, đồng thời cũng đảm bảo người gửi không thể phủ nhận thông điệp mình gửi. - Hai loại hệ mã: (1) Hệ mã khóa bí mật (còn được gọi là hệ mã đối xứng). (2) Hệ mã khóa công khai (còn được gọi là hệ mã không đối xứng). - Các ký hiệu: • M: không gian các bản rõ, mỗi bản rõ là một chuỗi ký tự cần mã hóa. • C: không gian các bản mã, mỗi bản mã là một chuỗi ký tự đã được mã hóa. • K: không gian khóa, mỗi khóa là một chuỗi ký tự. Trong đó, e k : khóa mã hóa. d k : khóa giải mã. • E: tiến trình (thuật giải) mã hóa: E(e k ,M) = C. • D: tiến trình (thuật giải) giải mã: D(d k ,C) = M. Các thuật giải E và D phải thỏa các tính chất: D(d k ,C) = D(d k , E(e k ,M) = M 2. Mã khóa bí mật Trong mã khóa bí mật cả quá trình mã hóa lẫn giải mã chỉ sử dụng một khóa, gọi là khóa bí mật; vì vậy hệ thống này còn được gọi là hệ mã đối xứng. Ở người gửi, thực hiện mã hóa và truyền đi: C = E(k,M) Ở người nhận được C, thực hiện giải mãđể có được thông tin gốc: D(k,C) = M. Dưới đây là một số dạng mã đối xứng. - Mã theo chuỗi bit: Thông điệp M là một chuỗi bit, khóa K cũng là chuỗi bit được phát sinh ngẫu nhiên. Bản rõ được mã hóa theo từng bit một để được bản mã, chẳng hạn C = M xor K; khi đó phép giải mã sẽ là C xor K = M. - Mã theo theo chữ: Biến đổi một chữ cái trong bản rõ thành một chữ cái khác trong bản mã. Kỹ thuật này còn được gọi là mã thay thế. Ví dụ: Các chữ cái từ A đến Z được cho tương ứng với các số nguyên từ 0 đến 25. Phép mã hóa như sau: E(k,m) = m + k (mod 26) = c, 0 ≤ k,m ≤ 25; và phép giải mã: D(k,c) = c – k (mod 26), 0 ≤ k,c ≤ 25 Cụ thể: E(3,IBM) = LEP E(7,ENCRYPTION) = LUJXFWAPYU - Mã theo khối: Để tăng độ an toàn ta có thể mã hóa theo khối. Bản rõ và bản mã được chia thành từng khối ký tự trước khi thực hiện mã hóa và giải mã: (1) Chia văn bản M thành nhiều khối M = M 1 M 2 …M j , mỗi khối M i gồm n ký tự. (2) Chuyển các ký tự thành các số tương ứng và xây dựng bản mã: C i ≡ A.M i + B (mod n), i = 1, 2, …, j trong đó, (A, B) là khóa, A là ma trận khả nghịch cấp n với gcd(det(A), n) = 1, B = [B 1 B 2 … B n ] t , C = [c 1 c 2 … c n ] t , và M = [m 1 m 2 … m n ] t . (3) Để giải mã, ta thi hành phép toán: M i ≡ A -1 .(C i – B) (mod n). Trong đó, A -1 là ma trận nghịch đảo của A. Ví dụ : Chọn B = [0 0 … 0] t , n = 3, ma trận mã hóa là = 17720 25235 19212 A Ta có : = − 2195 22915 72310 1 A Thông điệp M = ONE TWO SIX sẽ được mã hóa thành: C = WBX ZPS BRB Tiến trình giải mã sẽ cho ta thông điệm gốc: M = ONE TWO SIX 3. Mã khóa công khai - Khái niệm cơ bản: • Trong một hệ mạ hóa công khai (mã không đối xứng), khóa mã hóa e k và khóa giải mã d k khác nhau. • e k có thể công bố (vì chỉ dùng để mã hóa), còn gọi là khóa công khai. • d k phải giữ bí mật, còn gọi là khóa cá nhân. • Hệ mã khóa công khai được xây dựng trên ý tưởng hàm một chiều. Định nghĩa: Cho các tập hữu hạn S và T. Hàm một chiều f : S → T là hàm khả nghịch thỏa: (1) f dễ thực hiện. (2) hàm ngược f -1 khó thực hiện. (3) f -1 có thể dễ tính được khi có thêm một số thông tin. Ví dụ: Một số hàm một chiều (a) f : (p,q) → n = p.q là hàm một chiều với p và q là các số nguyên tố lớn. (b) f g,N : x → g x mod N là hàm một chiều. (c) f k,N : x → x k mod N là hàm một chiều, với N = pq, p và q là các số nguyên tố lớn, k.k’ ≡ 1 (mod ϕ(N)). [...]... me mod n, c được gọi là bản mã (ciphertext) [2] Giải mã Tìm lại bản rõ m từ bản mã c, sử dụng khóa cá nhân d để tính M = cd mod n Ví dụ: p = 2357, q = 2551 n = pq = 6012707, ϕ = (p-1)(q-1) = 6007800 Với e = 3674911 ∈ (1, ϕ), thuật giải Bezout cho ta d = e-1 mod ϕ = 422191 Vì thế khóa công khai là cặp (n = 6012707, e = 3674911) và khóa cá nhân là d = 422191 Để mã hóa bản tin m = 5234673 ta tính c =... thức (xk)k’ = x - Hệ mã RSA: Hệ thống RSA, viết tắt từ tên của 3 nhà toán học đã phát minh ra hệ mã RSA: R Rivest, A Shamir, L Adleman Định lý: Cho p và q là hai số nguyên tố phân biệt, n = pq, ϕ = ϕ(n) = (p-1)(q-1), 1 < e < ϕ, e và ϕ nguyên tố cùng nhau, d = e-1 mod ϕ, 1 < d < ϕ, 0 ≤ m < n, và c = me mod n Thì m = cd mod n - Thuật giải RSA: [1] Mã hóa (1) Từ khóa công khai (n, e) và thông điệp dưới dạng... thuật giải Bezout cho ta d = e-1 mod ϕ = 422191 Vì thế khóa công khai là cặp (n = 6012707, e = 3674911) và khóa cá nhân là d = 422191 Để mã hóa bản tin m = 5234673 ta tính c = me mod n = 3650502 Để giải mã c, ta tính cd mod n = 5234673 . học. (tham khảo: [12]) II. BẢO MẬT THÔNG TIN 1. Giới thiệu: Bảo mật thông tin là khoa học nghiên cứu các nguyên lý và phương pháp cho phép mã hóa thông tin sao cho chỉ người có khóa giải mã (bí mật). (bí mật) mới có thể giải để hiểu được thông tin gốc. - Hai dạng bài toán an toàn thông tin: (1) Bảo mật: ngăn cản không cho người lạ trích chọn thông tin từ các thông điệp được gởi trên các kênh. mod n 2 , …, x mod n k ), x ∈ Z n , là song ánh. - Định lý: Cho m ⊥ n. Ánh xạ f : Z mn → Z m x Z n xác định bởi f(x) = (x mod m, x mod n), x ∈ Z mn , là song ánh. 5. Các biểu diễn số theo cơ