MD5 là thuật toán băm 128 bit do nhà khoa học Ronald L. Rivest tạo ra vào đầu những năm 1990. Chữ viết tắt MD5 là viết tắt của Message Digest Phiên bản 5.
Mã hóa MD5 dựa trên hàm băm, bao gồm việc hình thành "dấu vân tay" hoặc "tổng" để xác minh thêm tính xác thực của chúng. Sử dụng phương pháp này, bạn có thể xác minh tính toàn vẹn của thông tin cũng như việc lưu trữ các hàm băm mật khẩu.
Lịch sử MD5
Lịch sử của Thuật toán phân loại thông báo (MD5) bắt đầu vào năm 1991, khi giáo sư Ronald L. Rivest của MIT báo cáo về việc tạo ra một thuật toán mới thay thế MD4 đã lỗi thời. Đối với MD4, nhà mật mã học người Đức Hans Dobbertin sau này đã viết về một số thiếu sót trong đó.
Rivest đã mô tả thuật toán MD5 mới trong RFC 1321.
Công việc về thuật toán được tiếp tục bởi các nhà nghiên cứu Bert den Boer và Anton Bosselars, những người vào năm 1993 đã chứng minh khả năng xảy ra va chạm giả trong MD5, khi các vectơ khởi tạo khác nhau có thể khớp với cùng một bản tóm tắt thông báo.
Hơn nữa, vào năm 1996, Hans Dobbertin tuyên bố đã tìm thấy một xung đột trong MD5. Vào thời điểm đó, nhiều thuật toán băm được ưa chuộng hơn đã được biết đến, chẳng hạn như hàm băm mật mã RIPEMD-160 - được phát triển bởi Hans Dobbertin, Anton Bosselars và Bart Prenel, Whirlpool - được phát triển bởi Vincent Raymen và Paulo Barreto và thuật toán băm mật mã SHA-1.
Do kích thước băm tương đối nhỏ (128 bit) trong MD5, người ta đã thảo luận về khả năng xảy ra các cuộc tấn công sinh nhật. Dự án MD5CRK do Jean-Luc Cook khởi xướng vào năm 2004 nhằm mục đích nghiên cứu lỗ hổng của thuật toán sử dụng các cuộc tấn công sinh nhật. Tuy nhiên, sau 5 tháng, vào ngày 17 tháng 8 năm 2004, dự án đã bị cắt giảm do phát hiện ra một lỗ hổng trong thuật toán bởi một nhóm các nhà mật mã Trung Quốc do Lai Xuejia đứng đầu.
Vào tháng 3 năm 2005, các nhà toán học và nhà mật mã học Benne de Weger, Arjen Lenstra và Wang Xiaoyun đã tạo ra hai tài liệu X.509 có cùng hàm băm và các khóa công khai khác nhau.
Một năm sau, vào tháng 3 năm 2006, nhà mật mã học người Séc Vlastimil Klima đã xuất bản một thuật toán cho phép bạn xác định các va chạm trên một máy tính đơn giản chỉ trong một phút. Thuật toán này được gọi là phương pháp "tạo đường hầm".
Do kết quả phân tích kết quả công việc, năm 2008, bộ phận của Cục Quản lý An ninh mạng Quốc gia thuộc Bộ An ninh Nội địa Hoa Kỳ (US-CERT) đã khuyến nghị tất cả những người tham gia vào quá trình phát triển của phần mềm, trang web cũng như người dùng mạng ngừng sử dụng thuật toán MD5 , bất kể mục đích ứng dụng của nó là gì. Lý do cho khuyến nghị như vậy là do tính không đáng tin cậy mà ông đã chứng minh trong quá trình nghiên cứu nó.
Vào tháng 12 năm 2010, các nhà mật mã học Trung Quốc Tao Xie và Feng Denguo đã phát hiện ra một xung đột tin nhắn 512 bit (một khối). Trước đây, xung đột chỉ được tìm thấy trong các tin nhắn có chiều dài từ hai khối trở lên. Sau đó, Mark Stevens đã đạt được kết quả tương tự bằng cách xuất bản các khối có cùng hàm băm MD5. Ông cũng đã phát triển một thuật toán để thu thập các va chạm kiểu này.
Tài liệu cuối cùng đặt dấu chấm hết cho lịch sử phát triển thuật toán MD5 là yêu cầu nhận xét - RFC 6151 (RFC là tài liệu chính thức được phát triển bởi Hội đồng Kỹ thuật Internet (IETF), mô tả các thông số kỹ thuật cho một thuật toán cụ thể technology), mà thực sự đã công nhận MD5 là một thuật toán băm không an toàn . Tài liệu khuyên bạn nên từ bỏ nó, chọn họ thuật toán mã hóa SHA-2 làm giải pháp thay thế.
Thuật toán MD5 đã thảo luận được coi là một trong những tiêu chuẩn thuật toán đầu tiên được sử dụng để kiểm tra tính toàn vẹn của tệp và lưu trữ mật khẩu trong cơ sở dữ liệu ứng dụng web.
Tuy nhiên, trên thực tế, chức năng tương đối đơn giản, độ dài đầu ra ngắn và tính đơn giản của các thao tác được thực hiện, là ưu điểm của thuật toán, cũng xác định nhược điểm của nó - MD5 đề cập đến các thuật toán dễ bị hack và có mức độ thấp bảo vệ chống lại các cuộc tấn công sinh nhật.