Bài giảng An toàn thông tin: Chương 4 Hệ mật mã khóa đối xứng hiện đại, cung cấp cho người học những kiến thức như: Hệ mật mã hiện đại; Mật mã dòng (Stream Cipher); Mật mã khối (Block Cipher); Hệ mật mã Feistel; Data Encryption Standard (DES); Chuẩn mật mã EAS. Mời các bạn cùng tham khảo!
bit, bit dùng kiểm tra) • Số vịng lặp: 16 vịng • Mã DES khơng cịn coi an tồn: • 1998: “DES Cracker” phá mã DES 56 • 2006: COPACOBANA phá mã DES ngày • 2006: Hệ thống khoảng 10.000 PC phá mã DES đêm Data Encryption Standard (DES) • Qui trình mã hóa khối 64 bits DES: • Bước 1: hoán vị khởi tạo (Initial Permutation - IP): • Hốn vị 64 bit P (64 bit = ma trận x 8) • Chia khối 64 bit P thành phần L0 R0 • Bước 2: thực qui trình mật mã Feistel với khóa 48 bit • Chạy thuật tốn sinh khóa (sub-key = 48 bit) • Thực vịng lặp Feistel với hàm F riêng • Số vịng lặp là: 16 vịng Li=Ri-1 Ri=Li-1 ⊕ f(Ri-1,Ki) • Bước 3: hốn vị kết thúc (Final Permutation - FP) • Sau vịng lặp 16: ghép L16 R16 thành C16 • Hốn vị nghịch đảo C16 => có mã khối C Data Encryption Standard (DES) • Thuật tốn sinh khóa DES: • Permuted Choice 1: chọn 56 bit từ khóa ban đầu 64 bit • 56 bit PC1 chia thành phần 28 bit • Mỗi phần thực xoay trái (Left rotation) (hoặc bit tùy thuật tốn) • Ghép phần xoay thành 48 bit (PC2) • Trích PC2 làm Sub-key • Lặp lại bước để tạo 15 Sub-key cịn lại Data Encryption Standard (DES) • Hàm F (Fiestel) với khối 32 bít DES: • Expansion (mở rộng): • Dùng phương thức E(Ri-1) để mở rộng Ri-1 từ 32 bit thành 48 bit • XOR: • Tính: E(Ri-1) ⊕ Ki = B (block 48 bits) • Substitution (thay thế): • Khối B (48 bit) chia thành (Bi = bít) • Tra bít Bi vào Bảng ma trận mật mã khối S = (16 x 4) để nhận bit mật mã Lấy bit thứ Bi làm mã dòng (row) Lấy bit thứ đến Bi làm mã cột (column) • khối B1 B8 sau qua S lại 32 bit (8 x bit) Triple DES (3DES) • Tổng quát 3-DES: • DES FIBS PUB 46-3 (1999) • Thực lần mã DES • Mã hóa: • C = E(K3, D(K2, E(K1, P))) • Giải mã: • P = D(K1, E(K2, D(K3, C))) • Đánh giá: • Độ an toàn dự kiến (NIST) • 3DES (2 khóa) đến 2009 • 3DES (3 khóa) đến 2030 • Hiệu cao tốc độ chậm • Mã AES thay 3DES Nếu dùng khóa K1 = K3 Advanced Encryption Standard (AES) • Tính chất AES: • Chuẩn NIST, FIBS PUB 197 (2001) • Thiết kế Vincent Rijmen Joan Daemen, sau Rijdael • Block size = 128 bit Khóa K = 128/192/256 bit • Khơng dựa mã Feistel • Số lượng vịng thay đổi từ 10 đến 14 vịng • Hiệu quả: • Độ an toàn cao 3DES => Thay cho 3DES • Từ 2003, AES sử dụng Mỹ cho liệu mật tuyệt mật • Chống lại thám mã nay! Ứng dụng mã khóa đối xứng • Tính xác thực (Authentication) mã đối xứng: • Tình • Giả sử Alice Bob thỏa thuận khóa bí mật K • Alice Trudy gởi thông điệp mã hóa đến Bob • Khi nhận thơng điệp, Bob cần xác thực thơng điệp Alice? • Cách giải quyết: • Bob nhận “MHFSLHIFSNIQU”, dùng khóa K để giải = “meetmetonight” –> cụm từ có nghĩa! => gởi từ Alice !!! • Bob thơng điệp, “FNERIUF”, dùng khóa K (vì nghĩ Alice gửi) để giải mã thành “gfhntqs” –> vô nghĩa! => Không phải gửi từ Alice !!! • Thực tế: tính “có nghĩa” khó xác định với máy tính Ứng dụng mã khóa đối xứng • Vấn đề trao đổi khóa bí mật: • Người gửi người nhận phải thỏa thuận khóa bí mật • Khó quản lý khóa • Nếu có N người cần trao đổi với người cần N(N-1)/2 khóa • Dùng trung tâm phân phối khóa (Key Distribution Center - KDC) • Mỗi người giữ khóa bí mật với KDC • Khóa bí mật người KDC cung cấp Cám ơn ! ... Sub-key lại Data Encryption Standard (DES) • Hàm F (Fiestel) với khối 32 bít DES: • Expansion (mở rộng): • Dùng phương thức E(Ri-1) để mở rộng Ri-1 từ 32 bit thành 48 bit • XOR: • Tính: E(Ri-1)... trình mật mã Feistel với khóa 48 bit • Chạy thuật tốn sinh khóa (sub-key = 48 bit) • Thực vịng lặp Feistel với hàm F riêng • Số vịng lặp là: 16 vịng Li=Ri-1 Ri=Li-1 ⊕ f(Ri-1,Ki) • Bước 3: hốn vị kết...Data Encryption Standard (DES) • Qui trình mã hóa khối 64 bits DES: • Bước 1: hốn vị khởi tạo (Initial Permutation - IP): • Hốn vị 64 bit P ( 64 bit = ma trận x 8) • Chia khối 64 bit P thành phần