Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 33 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
33
Dung lượng
649,49 KB
Nội dung
BÀI MẬT MÃ VÀ ỨNG DỤNG Bùi Trọng Tùng, Viện Công nghệ thông tin Truyền thông, Đại học Bách khoa Hà Nội 1 Nội dung • Mật mã (cipher) gì? • Ngun tắc chung hệ mật mã • Hệ mật mã khóa đối xứng • Hệ mật mã khóa bất đối xứng • Mã xác thực thơng điệp • Hàm băm mật mã • Giao thức mật mã 2 MẬT MÃ LÀ GÌ? Bùi Trọng Tùng, Viện Cơng nghệ thơng tin Truyền thông, Đại học Bách khoa Hà Nội 3 Khái niệm mật mã • Mã hóa (code): biến đổi cách thức biểu diễn thơng tin • Mật mã (cipher): mã hóa để che giấu, giữ mật thơng tin Lưu trữ Truyền tin • Mật mã học (cryptography): ngành khoa học nghiên cứu phương pháp toán học để mã hóa giữ mật thơng tin • Thám mã (cryptoanalysis): nghiên cứu phương pháp toán học để phá vỡ hệ mật mã • Là cơng cụ hiệu giải toán ATBM, sở cho nhiều chế khác (xác thực, nhận dạng) Nhưng không vạn 4 Xây dựng mơ hình (mật mã khóa đối xứng) • Alice Bob chia sẻ thơng tin bí mật k gọi khóa • Alice cần gửi cho Bob thông điệp m (bản rõ-plain text) Nội dung thơng điệp cần giữ bí mật trước quan sát Eve (kẻ công, thám mã) Mã hóa: c = E(k, m) c: mã (cipher text) • Alice gửi mã lên kênh truyền Bob Eve thu thơng điệp Chỉ có Bob giải mã để thu rõ Giải mã: m = D(k, c) • Mật mã khóa đối xứng: dùng khóa k hai q trình mã hóa giải mã Alice Bob Eve 5 Định luật Kerckhoffs • Hệ mật mã gồm {k, E, D} • Làm cách để ngăn cản kẻ khác giải mã? • Định luật Kerckhoffs: “Một hệ mật mã cần an tồn thơng tin hệ, trừ khóa bí mật, cơng khai” • Tại sao? 6 Lý thuyết Shannon • Hệ mật hồn hảo: độ an tồn hệ mật khơng phụ thuộc vào số mã thời gian kẻ công sử dụng để thám mã (An tồn vơ điều kiện) • Lý thuyết Shannon: Một hệ mật mã hoàn hảo Độ dài khóa tối thiểu độ dài tin rõ Khóa sử dụng lần Tại khó đạt thực tế? Điều kiện cần • An tồn theo tính tốn: Hệ mật gọi an tồn theo tính tốn với độ an tồn (t, ε) kẻ công thực phá mã thời gian tối đa t đạt xác suất thành công tối đa ε 7 Thơng tin tham khảo – Kích thước khóa • Khóa có kích thước bao nhiêu? Mật mã coi an toàn phương pháp vét cạn (brute-force) cách nhanh để bẻ khóa Mục tiêu: giảm thiểu nguy bị công vét cạn (đạt độ an tồn theo tính tốn) • Chi phí để bẻ khóa DES (năm 2008) 64 bit: $10.000 87 bit: $10.000.000.000 (thời gian bẻ khóa khơng đổi) • Tuy nhiên, vét cạn phương pháp công tầm thường • Tham khảo kích thước khóa nên sử dụng tương lai địa http://csrc.nist.gov/groups/ST/toolkit/key_management.html 8 Thơng tin tham khảo – Kích thước khóa http://www.keylength.com 9 Thời hạn khóa • Thời hạn khóa (Cryptoperiod): thời gian khóa có hiệu lực sử dụng Giảm xác suất bẻ khóa thành cơng thám mã Giảm thiệt hại xảy tình trạng khóa bị cơng/sử dụng sai • Các yếu tố ảnh hưởng đến thời hạn khóa: Độ an tồn hệ mật Môi trường triển khai vận hành ứng dụng Lượng thơng tin mã hóa Thời hạn giữ mật thơng tin Mục đích sử dụng khóa Số phần tử chia sẻ khóa/Số tạo Sự phát triển hệ thống tính tốn… 10 10 Thơng tin tham khảo – Thời hạn khóa 11 11 Hệ mật mã khóa đối xứng • Symmetric cryptography, Secret-key cryptography: sử dụng khóa mã hóa giải mã • Được phát triển từ sớm • Thuật tốn mã hóa: phối hợp toán tử Thay Đổi chỗ XOR • Tốc độ thực thuật tốn nhanh, thực dễ dàng phần cứng • Một số hệ mật mã khóa đối xứng đại: AES, Salsa20, DES, 2DES, 3DES, RC4, RC5, 12 12 2.1 Sơ đồ chung Hệ mật mã gồm: • Bản rõ (plaintext-m): thơng tin khơng che dấu • Bản mật (ciphertext-c): thơng tin che dấu • Khóa (key- kS): giá trị chia sẻ bí mật • Mã hóa (encrypt-E): c = E(kS, m) E hàm ngẫu nhiên • Giải mã (decrypt): m = D(kS, c) D hàm xác định • Tính đắn D(kS, E(kS, m)) = m 13 13 Sơ đồ chung Khóa mã hóa giải mã giống chia sẻ trước kS kS m m Mã hóa Người gửi Giải mã c Người nhận c Kênh truyền Yêu cầu với kS : - Ngẫu nhiên - Chia sẻ cách bí mật m* Thám mã Kẻ công kS* 14 14 Mật mã dịng (stream cipher) • Xử lý văn rõ theo dòng byte, thời gian thực RC4 (900 Mbps), SEAL (2400 Mbps), RC5(450 Mbps) • Phù hợp với hệ thống truyền liệu thời gian thực môi trường mạng máy tính • An tồn khóa dùng lần (one-time-pad) • Trên thực tế, sử dụng hàm sinh khóa giả ngẫu nhiên (PRG - Pseudo Random Generator) G: K {0, 1}n (len(K)