Phương pháp Secure Hash Standard (SHS): • Phương pháp Secure Hash Standard (SHS) do NIST và NSA xây dựng được công bố trên Federal Register vào ngày 31 tháng 1 năm 1992 và sau đó chính thức trở thành phương pháp chuẩn từ ngày 13 tháng 5 năm 1993. • Thông điệp rút gọn có độ dài 160 bit.
Hàm băm mật mã Phương pháp Secure Hash Standard (SHS): • Phương pháp Secure Hash Standard (SHS) NIST NSA xây dựng công bố Federal Register vào ngày 31 tháng năm 1992 sau thức trở thành phương pháp chuẩn từ ngày 13 tháng năm 1993 • Thơng điệp rút gọn có độ dài 160 bit Ngày 26/08/2002, Viện Tiêu chuẩn Công nghệ quốc gia Hoa Kỳ (National Institute of Standard and Technology - NIST) đề xuất hệ thống chuẩn hàm băm an toàn (Secure Hash Standard) gồm thuật toán hàm băm SHA-1, SHA256, SHA-384, SHA-512 Đến 25/03/2004, NIST chấp nhận thêm thuật toán hàm băm SHA-224 vào hệ thống chuẩn hàm băm Các thuật toán hàm băm NIST đề xuất đặc tả tài liệu FIPS180-2 [24] 9.1.3 Cấu trúc hàm băm Hầu hết hàm băm mật mã có cấu trúc giải thuật sau: • Cho trước thơng điệp M có độ dài Tùy theo thuật tốn sử dụng, cần bổ sung số bit vào thông điệp để nhận thơng điệp có độ dài bội số số cho trước Chia nhỏ thông điệp thành khối có kích thước nhau: M1, M2, …Ms • Gọi H trạng thái có kích thước n bit, f “hàm nén” thực thao tác trộn khối liệu với trạng thái hành • Khởi gán H0 vector khởi tạo H i = f (H i −1 , M i ) với i = 1, 2, 3, …, s Hs thơng điệp rút gọn thơng điệp M ban đầu 225 Chương 9.1.4 Tính an tồn hàm băm tượng đụng độ Hàm băm xem an toàn tượng đụng độ khó tìm hai thơng điệp có giá trị băm Nhận xét: Trong tập hợp mà phần tử mang N giá trị cho trước với xác suất nhau, cần khoảng N phép thử ngẫu nhiên để tìm cặp phần tử có giá trị Như vậy, phương pháp hàm băm xem an toàn tượng đụng độ chưa có phương pháp cơng tìm cặp thơng điệp có giá trị hàm băm với số lượng tính tốn đáng kể so với ngưỡng 2n/2, với n kích thước (tính bit) giá trị băm Phương pháp cơng dựa vào đụng độ: • Tìm thơng điệp có nội dung khác giá trị băm • Ký thơng điệp, sau đó, người ký khơng thừa nhận chữ ký mà nói ký thơng điệp khác • Như vậy, cần phải chọn thông điệp “đụng độ” với trước ký 9.1.5 Tính chiều Hàm băm xem hàm chiều cho trước giá trị băm, tái tạo lại thơng điệp ban đầu, hay cịn gọi “tiền ảnh” (“pre-image”) Như vậy, 226 Hàm băm mật mã trường hợp lý tưởng, cần phải thực hàm băm cho khoảng 2n thơng điệp để tìm “tiền ảnh” tương ứng với giá trị băm Nếu tìm phương pháp cơng cho phép xác định “tiền ảnh” tương ứng với giá trị băm cho trước thuật tốn băm khơng cịn an tồn Cách cơng nhằm tạo thông điệp khác với thông điệp ban đầu có giá trị băm gọi công “tiền ảnh thứ hai” (second pre-image attack) 9.2 9.2.1 Hàm băm MD5 Giới thiệu MD5 Hàm băm MD4 (Message Digest 4) Giáo sư Rivest đề nghị vào năm 1990 Vào năm sau, phiên cải tiến MD5 thuật toán đời Cùng với phương pháp SHS, ba phương pháp có ưu điểm tốc độ xử lý nhanh nên thích hợp áp dụng thực tế thông điệp dài Thông điệp ban đầu x mở rộng thành dãy bit X có độ dài bội số 512 Một bit thêm vào sau dãy bit x, tiếp đến dãy gồm d bit cuối dãy 64 bit l biểu diễn độ dài thông điệp x Dãy gồm d bit thêm vào cho dãy X có độ dài bội số 512 Quy trình thể Thuật toán 9.1 Thuật toán 9.1 Thuật toán xây dựng dãy bit X từ dãy bit x d = (447 − ⏐x⏐) mod 512 Gọi dãy 64 bit l biểu diễn nhị phân giá trị ⏐x⏐ mod 264 X = x ⏐⏐ ⏐⏐ 0d ⏐⏐ l 227 Chương Đơn vị xử lý MD5 từ 32-bit nên dãy X biểu diễn thành dãy từ X[i] 32 bit: X = X[0] X[1] X[N–1] với N bội số 16 Thuật toán 9.2 Hàm băm MD5 A = 0x67452301; B = 0xefcdab89; C = 0x98badcfe; D = 0x10325476; for i = to N/16 –1 for j = to 15 M[j] = X[16i-j] end for AA = A BB = B CC = C DD = D Round1 Round2 Round3 Round4 A = A+AA B = B+BB C = C+CC D = D+DD end for Đầu tiên, bốn biến A, B, C, D khởi tạo Những biến gọi chaining variables 228 Hàm băm mật mã Bốn chu kỳ biến đổi MD5 hoàn toàn khác sử dụng hàm F, G, H I Mỗi hàm có tham số X, Y, Z từ 32 bit kết từ 32 bit F (X, Y, Z) = (X ∧ Y) ∨ ((¬X) ∧ Z) G(X, Y, Z) = (X ∧ Z) ∨ (Y ∧ (¬ Z)) H (X, Y, Z) = X ⊕ Y ⊕ Z I (X, Y, Z) = Y ⊕ (X ∨ (¬ Z)) (9.1) với quy ước: X∧Y X∨Y X⊕Y ¬X X+Y X