Tìm hiểu và phân tích đánh giá độ an toàn của thuật toán MD5 - Chu, Thị Thanh Xuân (ĐHCN, 2017)
Trong mật mã học MD5 (Message-Digest algorithm 5) là một hàm băm mật mã được sử dụng phổ biến với giá trị băm (Hash) dài 128 bit. 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. Trong ứng dụng truyền dữ liệu, máy chủ tập tin thường cung cấp một checksum MD5 được tính toán trước cho tập tin, để người dùng có thể so sánh với checksum của tập tin đã tải về. Trong ứng dụng chữ ký số, MD5 sẽ băm thông điệp dài thành văn bản đại diện và việc ký sẽ được thực hiện trên văn bản đại diện trước khi được truyền đi. Trong ứng dụng mật khẩu, chương trình sẽ băm từng mật khẩu sang không gian mã MD5 và so sánh mã này với mã MD5 cần được giải mã. MD5 được thiết kế bởi Ronald Rivest vào năm 1991 để thay thế cho hàm băm trước đó là MD4 (vì MD4 đã được chứng minh là không an toàn). Từ năm 1996 người ta đã phát hiện ra một lỗ hổng trong MD5 và các chuyên gia mã hóa bắt đầu đề nghị sử dụng giải thuật khác như SHA-1, đến năm 2005 nhiều lỗ hổng hơn được khám phá khiến cho việc sử dụng giải thuật này cho mục đích bảo mật đang bị đặt nghi vấn. Trên thực tế trong các ứng dụng bảo vệ mật khẩu giải thuật MD5 vẫn được sử dụng rộng rãi. Có nhiều phương pháp và kỹ thuật tấn công mật khẩu được công bố nhưng mức độ thành công của các phương pháp này phụ thuộc lớn vào tài nguyên của máy tính và cách đặt mật khẩu. Do vậy để có một đánh giá cụ thể về độ an toàn của thuật toán MD5 trong các ứng dụng của nó, đặc biệt là ứng dụng lưu trữ mật khẩu, tác giả đã lựa chọn đề tài: “Tìm hiểu và phân tích đánh giá độ an toàn của thuật toán MD5”.