Bài giảng Mật mã ứng dụng: Hàm băm kháng xung đột - Đại học Bách khoa Hà Nội
lượt xem 6
download
Bài giảng "Mật mã ứng dụng: Hàm băm kháng xung đột" trình bày các nội dung chính sau đây: Giới thiệu hàm băm kháng xung đột; Tấn công dùng nghịch lý ngày sinh; Sơ đồ Merkle-Damgard; Xây dựng hàm nén; HMAC: MAC dựa trên SHA256; Timing Attack cho MAC. Mời các bạn cùng tham khảo!
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Mật mã ứng dụng: Hàm băm kháng xung đột - Đại học Bách khoa Hà Nội
- Mật mã ứng dụng Hàm băm kháng xung đột
- H ÀM BĂM KHÁNG XUNG ĐỘT ‣ Giới thiệu ‣ Tấn công dùng nghịch lý ngày sinh ‣ Sơ đồ Merkle-Damgard ‣ Xây dựng hàm nén ‣ HMAC: MAC dựa trên SHA256 https://class.coursera.org/ crypto-preview/class/index ‣ Timing Attack cho MAC
- H ÀM BĂM KHÁNG XUNG ĐỘT ‣ Giới thiệu ‣ Tấn công dùng nghịch lý ngày sinh ‣ Sơ đồ Merkle-Damgard ‣ Xây dựng hàm nén ‣ HMAC: MAC dựa trên SHA256 https://class.coursera.org/ crypto-preview/class/index ‣ Timing Attack cho MAC
- Nhắc lại: Toàn vẹn thông điệp MAC xây dựng dựa trên PRF: ・ECBC-MAC, CMAC : Thường dùng với AES (Ví dụ, 802.11i) ・NMAC: làm cơ sở cho HMAC ・PMAC: một MAC song song MAC ngẫu nhiên: ・Carter-Wegman MAC: dựa trên one-time MAC nhanh Tiếp theo: ・xây dựng MAC dựa trên tính kháng xung đột 3
- Tính kháng xung đột Định nghĩa. Xét hàm băm H: M →T với |M| >> |T|. Một xung đột cho H là một cặp m0 , m1 ∈ M thỏa mãn : H(m0) = H(m1) và m0 ≠ m1 Định nghĩa. Hàm H được gọi là kháng xung đột nếu với mọi thuật toán “hiệu quả” (tường minh) A: AdvCR[A,H] = Pr[ A output xung đột cho H ] là “không đáng kể”. Ví dụ: ・SHA-256: Output là 256 bit. 4
- Xây dựng MAC từ hàm kháng xung đột Xây dựng. Xét I = (S, V) là MAC cho thông điệp ngắn trên (K, M, T) (Ví dụ, AES). Xét hàm băm H: Mbig → M. Ta định nghĩa Ibig = (Sbig , Vbig ) trên (K, Mbig, T) như sau: Sbig(k,m) = S(k,H(m)) ; Vbig(k, m, t) = V(k, H(m), t) Định lý. Nếu I là một MAC an toàn và H hàm kháng xung đột, vậy thì Ibig là MAC an toàn. Ví dụ: ・S(k, m) = AES 2-block-cbc(k, SHA-256(m)) là một MAC an toàn. 5
- Xây dựng MAC từ hàm kháng xung đột Sbig(k,m) = S(k,H(m)) ; Vbig(k, m, t) = V(k, H(m), t) Tính kháng xung đột là cần: ・Nếu kẻ tấn công có thể tìm được m ≠ m sao cho H(m ) = H(m ), 0 1 0 1 ・vậy thì MAC không còn an toàn trước tấn công chọn 1 bản rõ: – bước 1: kẻ tấn công truy vấn t ⟵S(k, m0) – bước 2: output (m1 , t) là cặp thông điệp/tag giả mạo 6
- Bảo vệ sự toàn vẹn của file dùng hàm băm kháng xung đột Gói phần mềm: Không gian chung (chỉ đọc) File File File H(F1) H(F2) F1 F2 … Fn … H(Fn) Toàn vẹn: ・Khi người dùng download file, chị ta có thể kiểm tra nội dung có khớp với mã băm ・ H kháng xung đột kẻ tấn công không thể sửa gói phần mềm mà không bị phát hiện ・ Không cần khóa (mọi người đều có thể kiểm tra tính toàn vẹn), nhưng cần không gian lưu trữ công khai 7
- H ÀM BĂM KHÁNG XUNG ĐỘT ‣ Giới thiệu ‣ Tấn công dùng nghịch lý ngày sinh ‣ Sơ đồ Merkle-Damgard ‣ Xây dựng hàm nén ‣ HMAC: MAC dựa trên SHA256 https://class.coursera.org/ crypto-preview/class/index ‣ Timing Attack cho MAC
- Thuật toán tấn công hàm băm ・Xét hàm băm H: M → {0,1} với |M| >> 2n n ・Thuật toán sau cho phép tìm xung đột sau O(2n/2) lần băm. Thuật toán: 1. Chọn 2n/2 thông điệp ngẫu nhiên trong M: m1, …, m2n/2 (với xác suất chúng phân biệt là cao) 2. For i = 1, …, 2n/2 : tính ti = H(mi) ∈ {0,1}n. 3. Tìm xung đột (ti = tj). Nếu không thấy thì quay lại bước 1. ・Khả năng thành công của thuật toán này như thế nào? 9
- Nghịch lý ngày sinh nhật Định lý. Xét các số nguyên r1, …, rn ∈ {1,…,B} có phân phối giống nhau. Khi n = 1.2 × B1/2 thì ta có Pr[ ∃i≠j: ri = rj ] ≥ ½ Chứng minh. Pr[9i 6= j : ri = r j ] = 1 Pr[8i 6= j : ri 6= r j ] Å ãÅ ã Å ã B 1 B 2 B n+1 =1 ··· B B B YÅ n 1 i ã Y n 1 i/B =1 1 1 e i=1 B i=1 Pn 1 1/B i =1 e i=1 ex ≥ 1 - x n2 /(2B) 1 e 0.72 1 e = 0.53 10
- B = 106 # samples n 11
- Thuật toán tấn công hàm băm H: M → {0,1}n Thuật toán: 1. Chọn 2n/2 thông điệp ngẫu nhiên trong M: m1, …, m2n/2 (xác suất chúng phân biệt nhau là cao) 2. For i = 1, …, 2n/2 : tính ti = H(mi) ∈ {0,1}n. 3. Tìm xung đột (ti = tj). Nếu không thấy thì quay lại bước 1. ・Kỳ vọng số vòng lặp cần thực hiện gần bằng 2 ・Thời gian chạy: O(2 n/2) và không gian O(2n/2) 12
- Một số hàm băm kháng xung đột Crypto++5.6.0 [Wei Dai] AMD Opteron, 2.2 GHz (Linux) mã băm tốc độ thời gian tấn hàm (số bit) (MB/giây) công SHA-1 160 153 280 SHA-256 256 111 2128 SHA-512 512 99 2256 Whirlpool 512 57 2256 * thuật toán tốt nhất tìm xung đột cho SHA-1 cần 251 lần tính mã băm. 13
- Thuật toán lượng tử Thuật toán cổ điển Thuật toán lượng tử Tấn công vét cạn hệ mã khối O( |K| ) O( |K|1/2 ) E: K × X ⟶ X Tìm xung đột cho hàm băm O( |T|1/2 ) O( |T|1/3 ) H: M ⟶ T 14
- H ÀM BĂM KHÁNG XUNG ĐỘT ‣ Giới thiệu ‣ Tấn công dùng nghịch lý ngày sinh ‣ Sơ đồ Merkle-Damgard ‣ Xây dựng hàm nén ‣ HMAC: MAC dựa trên SHA256 https://class.coursera.org/ crypto-preview/class/index ‣ Timing Attack cho MAC
- Nhắc lại: Hàm băm kháng xung đột Định nghĩa. Xét hàm băm H: M →T với |M| >> |T|. Một xung đột cho H là một cặp m0 , m1 ∈ M thỏa mãn : H(m0) = H(m1) và m0 ≠ m1 Mục đích: ・Xây dựng hàm băm kháng xung đột Bước đầu tiên: ・Cho một hàm băm kháng xung đột cho thông điệp kích thước nhỏ, ・hãy xây dựng hàm băm cho thông điệp kích thước lớn. 16
- Xây dựng theo sơ đồ Merkle-Damgard m[0] m[1] m[2] m[3] ll PB IV H(m) (fixed) h h h h H0 H1 H2 H3 H4 Cho trước hàm nén h: T × X ⟶ T Xây dựng: ・Hàm băm H: X≤L ⟶ T . Padding: 1000…0 ll msg len 64 bits ・Nếu không đủ không gian cho padding, vậy thì thêm block mới. 17
- Tính kháng xung đột cho sơ đồ MD Định lý. Nếu h là kháng xung đột, vậy thì H xây dựng theo sơ đồ trước cũng là kháng xung đột. Chứng minh. ・xung đột cho H xung đột cho h 18
- Vấn đề Làm thế nào xây dựng được hàm băm kháng xung đột cho thông điệp kích thước nhỏ? 19
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Mật mã và ứng dụng: Hàm băm, chữ ký số - Trần Đức Khánh
45 p | 175 | 26
-
Bài giảng Mật mã và ứng dụng: Hệ mật mã cổ điển - Trần Đức Khánh (tt)
41 p | 134 | 21
-
Bài giảng Mật mã và ứng dụng: Hệ mật mã khóa công khai (bất đối xứng) - Trần Đức Khánh
36 p | 156 | 17
-
Bài giảng Mật mã và ứng dụng: Quản lý khóa, giao thức mật mã - Trần Đức Khánh
17 p | 102 | 10
-
Bài giảng Mật mã và ứng dụng - Trần Đức Khánh
27 p | 133 | 8
-
Bài giảng Mật mã và ứng dụng: Quản lý khóa, giao thức mật mã - Trần Đức Khánh (tt)
26 p | 108 | 8
-
Bài giảng Mật mã ứng dụng: Nhập môn số học thuật toán - Đại học Bách khoa Hà Nội
240 p | 15 | 7
-
Bài giảng Mật mã ứng dụng: Giao thức trao đổi khoá - Đại học Bách khoa Hà Nội
37 p | 7 | 6
-
Bài giảng Mật mã ứng dụng: Chữ ký số - Đại học Bách khoa Hà Nội
34 p | 7 | 5
-
Bài giảng Mật mã ứng dụng: Bài toán logarit rời rạc và Diffie-Hellman - Đại học Bách khoa Hà Nội
50 p | 13 | 5
-
Bài giảng Mật mã ứng dụng: Hệ mật RSA - Đại học Bách khoa Hà Nội
23 p | 13 | 5
-
Bài giảng Mật mã ứng dụng: Mã xác thực thông điệp - Đại học Bách khoa Hà Nội
51 p | 11 | 5
-
Bài giảng Mật mã ứng dụng: Mã khối - Đại học Bách khoa Hà Nội
150 p | 10 | 5
-
Bài giảng Mật mã ứng dụng: Lịch sử mật mã - Đại học Bách khoa Hà Nội
58 p | 9 | 5
-
Bài giảng Mật mã ứng dụng: Giới thiệu sơ lược về mật mã và tiền mật mã - Đại học Bách khoa Hà Nội
74 p | 7 | 5
-
Bài giảng Mật mã ứng dụng: Hệ mã có xác thực - Đại học Bách khoa Hà Nội
45 p | 9 | 4
-
Bài giảng Mật mã ứng dụng: Mã dòng - Đại học Bách khoa Hà Nội
34 p | 8 | 4
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn