Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 30 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
30
Dung lượng
527,89 KB
Nội dung
BÀI CÁC HỆ MẬT MÃ (NHẮC LẠI) 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 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 1 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 1.1 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 tốn học để mã hóa giữ mật thơng tin • Thám mã (cryptoanalysis): nghiên cứu phương pháp tốn học để phá vỡ hệ mật mã • Là cơng cụ hiệu giải tốn ATBM, sở cho nhiều chế khác (xác thực, nhận dạng) Nhưng khơng vạn Truyền tin bí mật Google Mail • Bước 1: Trao đổi khóa • Bước 2: Mã hóa liệu Lưu trữ thơng tin mật Alice Alice Thiết bị lưu trữ Alice “hôm nay” truyền tin bí mật cho Alice “ngày mai” 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õ) 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ã • 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 trình mã hóa giải mã Alice Bob Eve Một ví dụ - Mật mã Caesar • Julius Caesar đưa vào kỷ thứ trước CN, sử dụng quan • Ý tưởng: thay ký tự (bản rõ) bảng chữ ký tự (bản mật) đứng sau (khóa) vị trí Sử dụng bảng chữ vòng A D, B E, C F, , X A, Y B, Z C • Mơ hình hóa tốn học: Khóa K = Mã hóa: C = (M+3) mod 26 Giải mã: M = (C − 3) mod 26 • Dễ dàng bị phá K thay đổi Gaius Julius Caesar giá trị khác 1.2 Một số nguyên lý chung hệ mật mã • Định luật Kerckhoffs: “Một hệ mật mã cần an toàn thơng tin hệ, trừ khóa bí mật, cơng khai” • Tại sao? 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ã hồ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: thỏa mãn đồng thời điều kiện Thời gian để thám mã thành công lớn thời gian cần giữ mật thơng tin Chi phí để thám mã thành công lớn giá trị thông tin thu 10 Lý thuyết Shannon (tiếp) • Độ dư thừa ngôn ngữ: Sự xuất n ký tự (n- gram) cho phép đoán nhận ký tự xuất với xác xuất p Nếu p = ∀n: ngơn ngữ khơng có dư thừa Nếu p > 0: ngơn ngữ có dư thừa (một số ký tự không cần thiết sau n ký tự xuất hiện) Định lượng: sử dụng lý thuyết thơng tin Ví dụ: tiếng Việt • Đối với thám mã: sử dụng phương pháp vét cạn, cần phải thu tối thiểu u ký tự mật mã để tìm xác khóa u: khoảng cách unicity (unicity distance) u lớn độ an toàn hệ cao 11 Lý thuyết Shannon (tiếp) • Tính tốn khoảng cách unicity = ( ) − ( ) : Kích thước khóa , , : entropy ký tự Ví dụ = −∑ × )): entropy ký tự rõ 2( ( : xác suất xuất ký tự không gian rõ • Nếu khóa mật xuất hoàn toàn ngẫu nhiên, chung bảng chữ cái: 2( ) = 2( ) − ( ) N: số ký tự bảng chữ • Làm để tăng độ an toàn sử dụng mật mã? 12 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) • Bạn nghe đâu đó, “dễ dàng” bẻ khóa mật mã DES có kích thước khóa 64 bit? Năm 1999, hệ thống phá mã EFF DES (trị giá 250K$) bẻ khóa DES khoảng ngày Năm 2008, hệ thống phá mã COPACOBANA (trị giá 10K$) bẻ khóa DES 6,4 ngày Sử dụng định luật Moore để tính thời gian bẻ khóa năm 2016 với chi phí 10K$? 13 Thơng tin tham khảo – Kích thước khóa • 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) • Cần giữ thơng tin mật hệ thống phá mã COPACOBANA? (năm 2008) 64 bit: 6.4 ngày 128 bit: ? • 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 14 Thông tin tham khảo – Kích thước khóa http://www.keylength.com 15 Thơng tin tham khảo – Thời hạn khóa 16 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 tốn tử Thay Đổi chỗ XOR (Tại dùng 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: DES, 2DES, 3DES, AES, RC4, RC5 Việc tìm hiểu đặc điểm hệ mật mã coi tập!!! 17 2.1 Sơ đồ chung • Hệ mật mã gồm: Bản rõ (plaintext-M): tin sinh bên gửi Bản mật (ciphertext-C): tin che giấu thông tin rõ, gửi tới bên nhận qua kênh khơng bí mật Khóa (key-KS): giá trị ngẫu nhiên bí mật chia sẻ bên trao đổi thông tin Bên thứ tin cậy tạo phân phối tới bên gửi bên nhận Hoặc, bên nguồn tạo chuyển cho bên nhận Mã hóa (encrypt-E): C = E(KS, M) Giải mã (decrypt): M = D(KS, C) = D(KS, E(KS, M)) 18 Sơ đồ chung Khóa mã hóa giải mã giống 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 : - Hoàn toàn ngẫu nhiên - Chia sẻ cách bí mật - Giữ bí mật hồn tồn trước kẻ công M* Thám mã Kẻ công KS* 19 Thám mã • Nhắc lại định luật Kerckhoffs “Một hệ mật mã cần an toàn thơng tin hệ, trừ khóa bí mật, công khai” Kẻ thám mã biết giải thuật mã hóa, giải mã • Tấn cơng biết mật: Kẻ thám mã có thêm mật C (ciphertext-only attack) Phương pháp phá mã: thử tất tổ hợp khóa để tìm tổ hợp khóa thích hợp Trong trường hợp khơng gian khóa lớn phương pháp khơng thực Đối phương cần phải phân tích văn mật, thực kiểm nghiệm thống kê để giảm số lượng trường hợp cần thử 20 10 3.1 Kịch trao đổi khóa bí mật Diffie-Hellman • Alice Bob chia sẻ khóa nhóm (q, a) Trong q số nguyên tố 1< a < q thỏa mãn: (ai mod q) ≠ aj mod q ∀ < i ≠ j < q A XA < q YA = aXA mod q B XB < q YB = aXB mod q YA YB KS = YB XA KS = YA XB mod q mod q 31 Ví dụ • Khóa chung nhóm q = 71, a = Hãy tự kiểm tra điều kiện thỏa mãn a • A chọn XA = 5, tính YA = 75 mod 71 = 51 B A XA = YA = 75 mod 71 = 51 KS = 45 mod 71 = 30 YA YB XB = 12 YB = 712 mod 71 = KS = 5112 mod 71 = 30 • Vấn đề an toàn sơ đồ xem xét đến sau Rút điều từ sơ đồ này? 32 16 3.2 Sơ đồ chung • Hệ mật mã gồm: Bản rõ (plaintext-M): tin sinh bên gửi Bản mật (ciphertext-C): tin che giấu thông tin rõ, gửi tới bên nhận qua kênh khơng bí mật Khóa: Bên nhận có cặp khóa: Khóa cơng khai KUB : cơng bố cho tất biết (trong có kẻ cơng) Khóa cá nhân KRB : bên nhận giữ bí mật, khơng chia sẻ Mã hóa (encrypt-E): C = E(KUB, M) Giải mã (decrypt): M = D(KRB, C) = D(KRB, E(KUB, M)) 33 3.2 Sơ đồ chung (tiếp) Khóa mã hóa giải mã khác KUB KRB M M Mã hóa Người Gửi (A) Giải mã C C Người nhận (B) Kênh truyền Làm để B gửi tin cách bí mật cho A? M* Thám mã K*RB Kẻ công 34 17 3.2 Sơ đồ chung (tiếp) • Yêu cầu cặp khóa (KUB, KRB) Hồn tồn ngẫu nhiên Có quan hệ mặt tốn học 1-1, Nếu có giá trị KUB khơng thể tính KRB KRB phải giữ mật hồn tồn 35 Một ví dụ - Hệ mật RSA • Sinh khóa: Chọn p,q hai số ngun tố Tính n = p q , (n) = (p-1)(q-1) Chọn e cho UCLN((n), e) = ;1< e < (n) Tính d cho (e d) mod (n) =1 Khóa cơng khai : KU = (e,n) Khóa riêng : KR = (d,n) • Mã hóa : C = Me mod n • Giải mã: M = Cd mod n 36 18 Một ví dụ - Hệ mật RSA • Sinh khóa: Chọn p = 5, q = 11 Tính n = p × q = 55, (n) =(p-1)×(q-1) = 40 Chọn e cho UCLN((n), e) = < e < (n) VD: e = Tính d cho (e × d) mod (n) = 1, < d < (n) d = 23 Cặp khóa : KU = (7,55), KR = (23,55) • Mã hóa: M = C = 41 • Giải mã: C = 41 M = Nếu kẻ cơng có KU, làm để tính KR? 37 3.3 Kết hợp mật mã khóa cơng khai mật mã khóa đối xứng • Ưu điểm mật mã khóa cơng khai: Khơng cần chia sẻ khóa mã hóa KUB cách bí mật Dễ dàng ứng dụng hệ thống mở Khóa giải mã KRB có B biết: An tồn Có thể sử dụng KRB để xác thực nguồn gốc thông tin (Chúng ta quay lại vấn đề sau) Số lượng khóa để mã mật tỉ lệ tuyến tính với số phần tử (n phần tử n cặp khóa) • Nhưng 38 19 3.3 Kết hợp mật mã khóa cơng khai mật mã khóa đối xứng • Vấn đề cần giải hệ mật mã khóa cơng khai Vẫn cần kênh an tồn để chia sẻ khóa VD: Tấn công vào sơ đồ Diffie-Hellman kỹ thuật man-in-themiddle 39 3.3 Kết hợp mật mã khóa cơng khai mật mã khóa đối xứng • Hạn chế mật mã khóa cơng khai so với mật mã khóa đối xứng: Kém hiệu hơn: khóa có kích thước lớn hơn, chi phí tính tốn cao Có thể bị cơng tốn học Kết hợp hệ mật mã 40 20 Sơ đồ “lai” • Phía gửi Thơng điệp (bản rõ) KUB KS Nguồn khóa bí mật Mã hóa KCK Khóa mã hóa Bản mã Thơng điệp mã hóa Mã hóa KĐX Tự suy luận cách thức xử lý phía nhận tập! 41 MỘT SỐ VẤN ĐỀ VỀ QUẢN LÝ KHĨA 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 42 21 4.1 Kích thước thời hạn 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) • Bạn nghe đâu đó, “dễ dàng” bẻ khóa mật mã DES có kích thước khóa 64 bit? Năm 1999, hệ thống phá mã EFF DES (trị giá 250K$) bẻ khóa DES khoảng ngày Năm 2008, hệ thống phá mã COPACOBANA (trị giá 10K$) bẻ khóa DES 6,4 ngày Sử dụng định luật Moore để tính thời gian bẻ khóa năm 2016 với chi phí 10K$? 43 Kích thước khóa • 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) • Cần giữ thông tin mật hệ thống phá mã COPACOBANA? (năm 2008) 64 bit: 6.4 ngày 128 bit: ? • 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 44 22 Thơng tin tham khảo – Kích thước khóa http://www.keylength.com 45 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… 46 23 Thơng tin tham khảo – Thời hạn khóa http://www.keylength.com 47 Nâng cấp thuật tốn khóa • Thời hạn sử dụng thuật tốn/khóa = Thời hạn thuật tốn/khóa theo đề nghị - Thời gian cần giữ mật thơng tin Ví dụ: Thuật tốn 3TDEA có thời hạn theo đề nghị 2030, yêu cầu giữ mật thông năm thời hạn sử dụng 2025 • Nên sử dụng thuật tốn/khóa có thời hạn đủ dài, đảm bảo hết hạn thông tin không cần giữ mật • Trong trường hợp sử dụng thuật tốn/khóa đủ tốt, cần có kế hoạch nâng cấp thuật tốn khóa Cần kiểm thử, đánh giá kế hoạch trước sau nâng cấp 48 24 4.2 Các thơng tin giao kết khóa • Khóa cần đặt mối giao kết (asociation) với thực thể thơng tin khác: Mục đích sử dụng Thời hạn khóa Trạng thái Nguồn gốc Chủ sở hữu khóa Khóa cặp (đối với khóa hệ mật mã khóa đối xứng) Khóa nhóm, tham số nhóm Dữ liệu ký/xác thực Phiên sử dụng 49 4.3 Vịng đời khóa Compromised PreActivation 15 13 Active 10 14 Deactivated 12 Destroyed 11 Suspended 50 25