Thuật toán hàm băm MD5

Một phần của tài liệu Chữ ký số và ứng dụng trong quản lý văn bản điện tử (Trang 34)

a. Thuật toán hàm băm MD4

Input: Thông điệp là xâu a có độ dài b bit.

Output: Bản băm, đại diện cho thông điệp gốc, độ dài cố định 128 bit.

a). Tóm tắt thuật toán

Bước 1: Khởi tạo các thanh ghi

Có 4 thanh ghi để tính toán nhằm đưa ra các đoạn mã: A, B, C, D. Đại diện thông điệp được xây dựng như sự kết nối của các thanh ghi. Mỗi thanh ghi có độ dài 32 bit. Các thanh ghi này được khởi tạo bằng giá trị dạng hecxa.

word A := 67 45 23 01 word B := ef cd ab 89

word C := 98 ba dc fe word D := 10 32 54 76

Bước 2:

+ Tạo “Thông điệp đệm” M cho xâu a.

+ Chia mảng M thành các khối 512 bit, đưa từng khối 512 bit vào mảng T[j]. + Mỗi lần xử lý một khối 512 bit (16 word ), lặp lại N/16 lần.

b. Thuật toán hàm băm MD5

- MD5 (Message-Digest algorithm 5) là một hàm băm mật mã được sử dụng phổ biến, được thiết kể bởi Giáo sư Ronald L. Rivest tại trường MIT vào năm 1991 để thay thế cho hàm băm trước đó là MD4 (1990). Là một chuẩn Internet (RFC 1321), MD5 đã được dùng trong nhiều ứng dụng bảo mật và cũng được dùng phổ biến để kiểm tra tính

toàn vẹn của tập tin. Cũng như các hàm băm khác như MD4 và SHS (Secure Hash Standard), MD5 là phương pháp có ưu điểm tốc độ xử lý rất nhanh, thích hợp với các thông điệp dài và cho ra giá trị băm dài 128 bit.

- Trong MD5, thông điệp ban đầu X sẽ được mở rộng thành dãy bit X có độ dài là bội của 512. Dãy bit X gồm các thành phần được sắp thứ tự như sau: Dãy bit X ban đầu, một bit 1, dãy d bit 0 (d được tính sao cho dãy X cuối cùng là bội của 512), dãy 64 bit l biểu diễn chiều dài của thông điệp. Đơn vị xử lý trong MD5 là các từ 32-bit, nên dãy bit X ở trên sẽ được biểu diễn thành dãy các từ X[i] 32-bit sau:

X=X[0] X[1] X[2] …X[N−1] , với N là bội của 16.

Dưới đây là các ví dụ mô tả các kết quả sau khi thực hiện hàm băm MD5. - MD5("xin chao") = 2201c07c37755e663c07335cfd2f44c6

Chỉ cần một thay đổi nhỏ (chẳng hạn viết hoa chữ x thành X) cũng làm thay đổi hoàn toàn kết quả trả về :

- MD5("Xin chao") = e05c1d9f05f5b9eb56fe907c36f469d8 Thuật toán cũng cho kết quả đối với chuỗi rỗng :

- MD5(" ") = d41d8cd98f00b204e9800998ecf8427e

c. Phương pháp MD5 có những ưu điểm sau so với phương pháp MD4

- Thay vì có 3 chu kỳ biến đổi như trong MD4, MD5 bổ sung thêm chu kỳ thứ 4 để

tăng mức độ an toàn.

- Trong mỗi thao tác của từng chu kỳ, MD5 sử dụng hằng số ti phân biệt, trong khi

MD4 sử dụng hằng số chung cho mọi thao tác trong cùng chu kỳ biến đổi.

- Hàm G ở chu kỳ 2 của MD4: G(X,Y,Z) = ((XZ) (XY)  (YZ)) được thay

thế bằng G(X,Y,Z) = (XZ) (Y(Z)) để giảm tính đối xứng.

- Mỗi bước biến đổi trong từng chu kỳ chịu ảnh hưởng kết quả của bước biến đổi trước, vì vậy làm tăng nhanh tốc độ của hiệu ứng lan truyền (avalanche).

- Các hệ số dịch chuyển xoay vòng trong mỗi chu kỳ được tối ưu hóa nhằm tăng tốc

độ hiệu ứng lan truyền. Ngoài ra, mỗi chu kỳ sử dụng 4 hệ số dịch chuyển khác nhau.

- Lý do MD5 được thiết kế thay thế cho MD4 là vì các phân tích chỉ ra rằng phương

pháp MD4 có vẻ không an toàn. Den Boer và Bosselaers đã chỉ ra các điểm yếu trong MD4 trong một bài báo được đăng vào năm 1991và một tấn công xung đột đầu tiên được tìm thấy bởi Han Dobbertin vào năm 1996 .

- Tuy nhiên, các nỗ lực tấn công, phân tích của các nhà nghiên cứu cho thấy MD5 cũng không còn an toàn và cần được thay thế bằng một thuật toán băm khác như các công bố của Den Boer và Bosselaers năm 1993; của Hans Dobbertin năm 1996; của nhóm tác giả Xiaoyun Wang, Dengguo Feng, Xuejia Lai, và Hongbo ngày 19/8/2004; của Arjen Lenstra, Xiaoyun Wang, và Benne de Weger ngày 1/3/2005; và của Vlastimil Klima, …

Một phần của tài liệu Chữ ký số và ứng dụng trong quản lý văn bản điện tử (Trang 34)

Tải bản đầy đủ (PDF)

(73 trang)