Bài giảng An toàn thông tin: Chương 5 Hệ mật mã khóa bất đối xứng, cung cấp cho người học những kiến thức như: Dẫn nhập về Mã hóa khóa bất đối xứng; Mật mã khóa bất đối xứng; Toán học trong thuật toán RSA; Thuật toán mã hóa RSA; Ứng dụng thuật toán mã hóa RSA. Mời các bạn cùng tham khảo!
TRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNH KHOA CÔNG NGHỆ THÔNG TIN Bài giảng mơn học: AN TỒN THƠNG TIN Chương 5: HỆ MẬT MÃ KHĨA BẤT ĐỐI XỨNG Số tín chỉ: Số tiết: 30 tiết (Lý thuyết) GV: ThS Nguyễn Thị Phong Dung Email : ntpdung@ntt.edu.vn Chương 5: MẬT MÃ KHĨA BẤT ĐỐI XỨNG Dẫn nhập Mã hóa khóa bất đối xứng Mật mã khóa bất đối xứng Tốn học thuật tốn RSA Thuật tốn mã hóa RSA Ứng dụng thuật tốn mã hóa RSA Bài tập Dẫn nhập Mật mã khóa cơng khai • Tiêu chuẩn an tồn thơng tin: • Confidentiality (tính bí mật ): thơng tin bí mật với người khơng có thẩm quyền • Authenticity (tính xác thực): bên nhận xác minh nguồn gốc thông tin Availability Accountability Non-repudiation Integrity Confidentialit y Authenticit y Information • Integrity (tính toàn vẹn): bên nhận xác minh liệu toàn vẹn Reliability Security • Non-repudiation (tính chống thối thác): bên tạo thông tin phủ nhận thông tin tạo • Reliability (tính ổn định / tin cậy): độ an tồn thuật tốn cao • Kỳ vọng hệ mã hóa: • Đảm bảo tính bí mật, tinh xác thực, ổn định tính chống thối thác Dẫn nhập Mật mã khóa cơng khai • Hệ mã hóa Khóa đối xứng: • Ngun lý: • Mã hóa: Y = E [K, X] • Giải mã: X = D [K, Y] • Ưu điểm: • Tạo tính bí mật cho thơng tin • Yếu điểm: • Phải cung cấp khóa giải mã cho đối tác => khơng an tồn • Bên nhận khơng xác thực nguồn gốc thơng tin • Khơng có sở đễ “chống thối thác” • Cần giải thuật mã hóa đạt thỏa mãn nhiều yêu cầu hơn, an tồn Mã hóa khóa bất đối xứng • Ngun lý: • Dùng thuật tốn RSA (Rivest – Shamir – Adleman) • Bộ khóa bao gồm khóa: • Kr: Khóa riêng (private) – giữ máy, khơng public ngồi • Ku: Khóa chung (public) – khơng giữ máy, public ngồi => Mã hóa khóa bất đối xứng cịn gọi mã hóa khóa cơng khai • Ngun tắc mã hóa giải mã: • Dữ liệu mã hóa khóa riêng Kr => giải mã khóa chung KP • Dữ liệu mã hóa khóa chung KP => giải mã khóa riêng Kr Mã hóa khóa bất đối xứng • Các trường hợp mã hóa giải mã: • Alice muốn truyền thơng tin cho Bob • Trường hợp 1: • Bob cơng khai khóa KPB ngồi • Alice mã hóa khóa chung KPB Bob => C = e(M, KpB) • Bob giải mã khóa riêng KrB Bob => M = d(C, KrB) • Nhận xét trường hợp 1: • Nhận xét tính bí mật: Trudy bắt thơng tin C, Trudy có giải mã khơng? • Nhận xét tính xác thực: Trudy tự tạo thông tin C, giả mạo Alice, gởi cho Bob, Bob có biết khơng? Mã hóa khóa bất đối xứng • Các trường hợp mã hóa giải mã: • Alice muốn truyền thơng tin cho Bob • Trường hợp 2: • Alice cơng khai khóa KPA ngồi • Alice mã hóa khóa riêng KrA Alice => C = e(M, KrA) • Bob giải mã khóa chung KpA Alice => M = d(C, KpA) • Nhận xét trường hợp 2: • Nhận xét tính bí mật: Trudy bắt thơng tin C, Trudy có giải mã khơng? • Nhận xét tính xác thực: Trudy tự tạo thông tin C, giả mạo Alice, gởi cho Bob, Bob có biết khơng? • Nhận xét tính chống từ chối: Alice gởi thông tin C cho Bob, sau Alice có thối thác gói C khơng phải khơng? Tốn học thuật tốn RSA • Ước số chung lớn nhất: • Định nghĩa: • Là số lớn mà số a b chia hết (dư số = 0) • Tên gọi ký hiệu biểu thức: • Tiếng Việt: Ước số chung lớn Biểu thức: ƯSCLN(a,b) • Tiếng Anh: Greatest Common Divisor Biểu thức: GCD (a,b) • Ví dụ: ước chung lớn 15 vì: • 15 chia hết cho: 1, Trong đó: số lớn • Ví dụ: tìm GCD(27, 45) • Các ước 27 là: 1, 3, 9, 27 • Các ước 45 là: 1, 3, 5, 9, 15, 45 • Ước chung lớn số 27 45 Tốn học thuật tốn RSA • Số nguyên tố nhau: • số a b gọi số nguyên tố có ƯSCLN • Ký hiệu biểu thức: GCD (a,b) = • Ví dụ: số 28 số nguyên tố • Giải thuật Euclid: tìm ƯSCLN số ngun • Ngun tắc: • ƯSCLN số nguyên không đổi thay số lớn hiệu chúng • Ví dụ: tìm ƯSCLN số: 252 105 • Thay 252 (252-105= 147) => cặp số mới: 147 105 • Thay 147 (147-105= 42) => cặp số mới: 42 105 • Thay 105 (105-42= 63) => cặp số mới: 42 63 • Thay 63 (63-42= 21) => cặp số mới: 42 21 • Thay 42 (42-21= 21) => cặp số mới: 21 21 n = p.q = 33 Tính φ(n) = (p-1)(q-1) = 20 Chọn e: gcd(e, 20)=1 => e = e=3 nguyên tố với φ(n) Chọn d x = 21 e.d ≡ 1dmod φ(n) (d x e) mod φ(n) 12 15 18 21/10 dư => d = Khóa cơng khai Ku = (e,n)=(3, 33), khóa bí mật KR = (d,n)=(7, 33) Mã hóa rõ M = 15: C = Me mod n = 153 mod 33 = (do 153 = 3375 = 102 x 33 + 9) Giải mã: M = Cd mod n = 97 mod 33 = 15 (do 97 = 4.782.696 = 144.938 x 33 + 15) Thuật toán mã hóa RSA • Nhận xét độ phức tạp RSA: • Phức tạp sinh khóa: • Khóa an toàn chọn cặp số nguyên tố đủ lớn • => vấn đề kiểm tra tính nguyên tố số (thuật tốn Miller-Rabin Solovay-Strassen) • Phức tạp mã hóa giải mã: • Phải thực modulo cho lũy thừa số lớn (Me mod n Cd mod n) • => giải thuật tính “modulo lũy thừa” (Modular Exponentiation) • Khả chống phá mã vét cạn (Brute force): • N = p*q (p q số nguyên tố lớn) • Nếu N > 1024 bit (tương đương 309 chữ số Decimal) => vơ phương vét cạn Ứng dụng thuật tốn mã hóa RSA • Tạo tính bí mật (Confidentiality) • Bob sinh cặp khóa, gởi KuB cho Alice • Alice tạo mã C cho thông điệp M: C = e(M, KuB) • Khi nhận, Bod giải mã C thành M: M = d(C, KrB) • => Bob khơng xác thực C Alice • Tạo tính xác thực (Authenticity) • Alice sinh cặp khóa, gởi KuA cho Bod • Alice tạo mã C cho thông điệp M: C = e(M, KrA) • Bod dùng KuA để giải mã C = d(C, KuA) Nếu thành M => C Alice Ứng dụng thuật tốn mã hóa RSA • Mơ hình kết hợp Confidentiality Authenticity Bài tập • Bài tập • Sinh khóa RSA • Chọn số ngun tố: p=7, q=2 • Tính n = • Tính φ(n) = • Chọn e: • Chọn d: • Public Key là: • Private Key là: • Bản rõ M = • Mã hóa M thành C = • Giải mã C thành M = • Cám ơn ! ... tìm ƯSCLN số: 252 1 05 • Thay 252 ( 252 -1 05= 147) => cặp số mới: 147 1 05 • Thay 147 (14 7-1 05= 42) => cặp số mới: 42 1 05 • Thay 1 05 (1 0 5- 42= 63) => cặp số mới: 42 63 • Thay 63 (6 3-4 2= 21) => cặp... dụ: tính 56 mod • 56 mod = (52 x 52 x 52 ) mod • = (52 mod x 52 mod x 52 mod 7) mod (*) • Thay 52 mod = 25 mod = vào (*), ta được: • = (4 x x 4) mod biểu thức đồng dư với (*) • Vậy: 56 mod ≡ (64)... tính y = 52 0 mod 11 • Thành lập bảng bình phương liên tiếp số 5, mod với 11 (chọn số mũ số 2n) • Từ yêu cầu: thay số mũ 20 thành (16 + 4) • Ta có: 52 0 mod 11 = 5( 16+4) mod 11 = 51 6 * 54 mod 11