Thuật ngữ MD5 là gì? Những điều bạn chưa biết về MD5

Rate this post

Đối với ngành mật mã học chắc hẳn bạn đã quen thuộc với thuật ngữ MD5, đây là một thuật toán thú vị nhưng lại khá trừu tượng. Trong bài viết này chúng tôi sẽ giải mã thuật toán MD5 một cách dễ hiểu nhất.

Thuật ngữ MD5 là gì?

MD5 là một thuật ngữ viết tắt của cụm Message-Digest algorithm 5, nó là một loại thuật toán được sử dụng rộng rãi với hàm mã hóa RFC 1321 để có thể tạo ra giá trị hash dài 128bit từ bất kỳ chuỗi dữ liệu nào, MD5 còn được gọi là thuật toán mật mã hash.

MD5 tạo ra một giá trị hash theo định dạng thập lục phân. Điều này cạnh tranh với các thiết kế khác trong đó các hàm hash lấy một phần dữ liệu nhất định và thay đổi nó để cung cấp key hoặc giá trị có thể được sử dụng thay cho giá trị ban đầu.

Lịch sử phát triển của thuật toán MD5

MD5 là một trong một loạt các thuật toán thông báo được thiết kế bởi Giáo sư Ronald Rivest của MIT (Rivest, 1992). Khi công việc phân tích chỉ ra rằng MD4 (phiên bản tiền nhiệm của MD5) không an toàn, Rivest đã thiết kế MD5 vào năm 1991 như một sự thay thế an toàn.

Vào năm 1993, Den Boer và Bosselaers đã đưa ra kết quả về những điểm khuyết của MD5, mặc dù vẫn còn có giới hạn trong việc tìm ra những xung đột ảo của chức năng nén MD5. đó là hai vectơ khởi tạo khác nhau tạo ra một thông báo giống hệt nhau.

Năm 1996, Dobbertin đã công bố một sự xung đột trong chức năng nén của MD5 (Dobbertin, 1996). Mặc dù đây không phải là một các xoi mói vào hàm hash MD5 phiên bản hoàn chỉnh, nhưng nó đủ gần để các nhà mật mã học đề nghị chuyển sang một thay thế mới như chẳng hạn như SHA-1 hoặc RIPEMD-160 .

Kích thước của giá trị hash (128 bit) đủ nhỏ để dự tính một cuộc tấn công sinh nhật. MD5CRK là một dự án phân tán được bắt đầu vào tháng 3 năm 2004 với mục đích chứng minh rằng MD5 thực tế không an toàn bằng cách đưa ra một vụ va chạm bằng cách sử dụng một cuộc tấn công sinh nhật. MD5CRK đã kết thúc ngay sau ngày 17 tháng 8 năm 2004, khi các va chạm cho MD5 được công bố bởi Xiaoyun Wang, Dengguo Feng, Xuejia Lai và Hongbo Yu. Cuộc tấn công phân tích của họ được báo cáo chỉ trong một giờ trên cụm IBM p690.

Vào ngày 1 tháng 3 năm 2005, Arjen Lenstra, Xiaoyun Wang và Benne de Weger đã trình đưa ra hai chứng chỉ X.509 cho giá trị hash MD5. Vào ngày 18 tháng 3 năm 2006, Klima đã xuất bản một thuật toán có thể tìm thấy va chạm trong vòng một phút trên một máy tính xách tay.

Nhiều lỗi RFC liên quan đến MD5 đã được đưa ra thảo luận. Vào năm 2009, Bộ Tư lệnh Không gian Hoa Kỳ đã sử dụng giá trị hash MD5 trong tuyên bố sứ mệnh của họ.

Vào ngày 24 tháng 12 năm 2010, Tao Xie và Dengguo Feng đã công bố vụ va chạm MD5 đơn khối (512-bit) được công bố đầu tiên. Vì “lý do bảo mật”, Xie và Feng không tiết lộ phương thức tấn công mới. Họ đã đưa ra một thách thức cho cộng đồng mật mã, cung cấp phần thưởng 10.000 đô la Mỹ cho người tìm thấy đầu tiên về một vụ va chạm 64 byte trước ngày 1 tháng 1 năm 2013.

Vào năm 2011, RFC 6151 đã được phê duyệt để cập nhật các cân nhắc về bảo mật trong MD5 và HMAC-MD5.

Ứng dụng MD5

ứng dụng của md5

Nhìn chung, những thuật toán MD5 đều được sử dụng rất rộng rãi trong thế giới phần mềm, mục đích để cung cấp cho những tệp tin được chuyển đi trong trạng thái nguyên vẹn.

Ví dụ: các máy chủ tệp thường cung cấp tổng kiểm tra MD5 (được gọi là MD5sum –  là một chương trình máy tính tính toán và xác minh hash MD5 128 bit, như được mô tả trong RFC 1321. Hàm hash MD5 có chức năng như một dấu vân tay kỹ thuật số nhỏ gọn của một tệp) được tính toán trước cho các tệp để người dùng có thể so sánh tổng kiểm tra đã tải xuống. Người dùng Windows có thể sử dụng chức năng PowerShell đi kèm “Get-FileHash”, cài đặt tiện ích Microsoft hoặc sử dụng các ứng dụng của bên thứ ba. ROM Android cũng sử dụng loại tổng kiểm tra này.

Vì dễ tạo ra xung đột MD5, người tạo tệp có thể tạo tệp thứ hai có cùng tổng kiểm tra, vì vậy kỹ thuật này có thể bảo vệ chống lại một số hình thức giả mạo độc hại. Trong một số trường hợp, md5sum không thể tin cậy được (ví dụ: nếu nó được lấy trên cùng kênh với tệp đã tải xuống), trong trường hợp đó MD5 chỉ có thể cung cấp chức năng kiểm tra lỗi: nó sẽ nhận ra tải xuống bị hỏng hoặc không đầy đủ.

Vì vậy, bất cứ khi nào tải xuống bất kỳ dữ liệu có giá trị nào từ Internet, bạn cần kiểm tra tính toàn vẹn của tệp đã tải xuống. Đó là, bạn cần đảm bảo rằng tệp đã tải xuống có giống với tệp gốc hay không. Trong trường hợp này, hàm hash MD5 có thể trở nên tiện dụng.

Trong lịch sử, MD5 đã được sử dụng để lưu trữ mật khẩu một chiều, thường là với việc kéo dài keys. MD5 cũng được sử dụng trong lĩnh vực khám phá điện tử, để cung cấp một mã định danh duy nhất cho mỗi tài liệu được trao đổi. Phương pháp này có thể được sử dụng để thay thế hệ thống đánh số tem Bates đã được sử dụng trong nhiều thập kỷ trong quá trình trao đổi tài liệu giấy.

Lưu ý: MD5SUM được tích hợp sẵn trên tất cả các hệ thống UNIX. Tuy nhiên trên Windows bạn cần cài đặt gói. Các liên kết tải xuống được đưa ra trong chính bài viết.

Tìm hiểu thêm về Hash MD5

Hash MD4 có độ dài là 128 bit, nó được hiển thị trong giá trị thập lục phân tương đương với 32 chữ số. Điều này có thể chính xác đối với mọi tập tin hoặc văn bản khác nhau.

Ví dụ: 120EA8A25E5D487BF68B5F7096440019 = Đây là một bài kiểm tra

Trong trường hợp đoạn văn bản dài hơn, nhưng hàm hash vẫn chỉ có 32 chữ số, chúng chỉ thay đổi về mặt giá trị thuật toán. Ngược lại, đoạn hash của đoạn văn bản là 0 thì nó vẫn chứa 32 ký tự chữ số.

Ví dụ: 6c16fcac44da359e1c3d81f19181735b = Đây là một thử nghiệm để cho thấy độ dài của văn bản không quan trọng

d41d8cd98f00b204e9800998ecf8427e = (“”)

Cho dù trong câu đó được thay đổi nhỏ như một dấu chấm (.) hoặc một dấu (,) thì giá trị thuật toán cũng sẽ được thay đổi toàn bộ.

Lời kết

Với sự phát triển của các thuật toán hash khác nhau, các chuyên gia đã lưu ý rằng: các kỹ sư nhận thấy MD5 có những điểm yếu nghiêm trọng về việc không “chống va chạm”. Xung đột xảy ra khi hai giá trị hash được tìm thấy tương tự hoặc giống nhau. Để hoạt động chính xác, mỗi giá trị hash riêng lẻ phải là duy nhất. Vì chức năng này rất cần thiết cho các giao thức xác thực phổ biến như Lớp cổng bảo mật (SSL), MD5 thường được thay thế bằng các loại thuật toán hash khác. Chính vì điều này mà các kỹ sư bảo mật và những người khác đã quen thuộc với danh sách dài các thuật toán hash với các thuộc tính khác nhau. Hy vọng với những thông tin này bạn đã hiểu rõ hơn về thuật toán mật mã MD5 là gì và ứng dụng của nó như thế nào vào thực tiễn người dùng.

Để lại Trả lời

Địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu *