0
0
Lập trình
Flame Kris
Flame Krisbacodekiller

Tìm hiểu về hàm băm MD5: Nguyên lý và ứng dụng trong bảo mật thông tin

Đăng vào 5 ngày trước

• 2 phút đọc

Giới thiệu

Bài viết này là một phần trong series về cryptography mà chúng ta đã khám phá những khái niệm như hệ mật đối xứng, hệ mật bất đối xứng, chữ ký điện tử và trao đổi khóa. Trong bài viết này, chúng ta sẽ cùng nhau tìm hiểu chi tiết về hàm băm MD5, một trong những thuật toán băm phổ biến nhất.

Hàm băm là gì?

Hàm băm là một phương pháp mã hóa dữ liệu nhằm tạo ra một giá trị tóm tắt hoặc xác thực cho thông tin đầu vào. Có thể tưởng tượng hàm băm như một máy xay sinh tố, nơi khi cho dữ liệu vào, nó sẽ được chuyển đổi thành một giá trị khác mà không thể làm ngược lại để lấy dữ liệu gốc. Đối với MD5, hàm băm cho ra một giá trị 128 bit, tương đương với 32 ký tự hex.

Nguyên lý hoạt động của hàm băm MD5

Đầu vào của hàm băm MD5

Hàm băm MD5 yêu cầu dữ liệu đầu vào phải là bội số của 512 bit. Nếu dữ liệu không phù hợp, chúng ta cần thực hiện một quá trình được gọi là padding (đệm) để bổ sung các bit cần thiết.

Kỹ thuật Padding

Kỹ thuật đệm bao gồm các bước sau:

  1. Thêm một bit có giá trị 1 vào cuối cùng của dữ liệu gốc.
  2. Thêm các bit 0 cho đến khi chiều dài của dữ liệu đạt 448 bit.
  3. Cuối cùng, thêm 64 bit thể hiện độ dài của dữ liệu gốc.

Quá trình tính toán

MD5 thực hiện qua bốn vòng xử lý, mỗi vòng có 16 bước. Đầu vào A, B, C, D được khởi tạo sẵn và qua mỗi vòng, các giá trị này sẽ được cập nhật theo một công thức cụ thể. Quá trình này bao gồm việc sử dụng các hàm logic, phép toán bitwise và cộng modulo 2^32 để đảm bảo không có tràn số.

Đầu ra

Sau bốn vòng xử lý, giá trị cuối cùng sẽ được thu nhỏ lại thành một mã băm 128 bit. Điều quan trọng là đầu ra này phải độc nhất cho mỗi đầu vào riêng biệt.

Những vấn đề bảo mật với MD5

Lỗ hổng va chạm

Một trong những điểm yếu lớn nhất của MD5 là khả năng xảy ra va chạm, nghĩa là có thể có hai đầu vào khác nhau mà dẫn đến cùng một giá trị băm.

Tấn công tiền ảnh

Tấn công tiền ảnh là việc cố gắng tìm một giá trị đầu vào sao cho khi băm, nó tạo ra một giá trị băm đã cho trước.

Kết luận

Hàm băm MD5 đã từng rất phổ biến trong bảo mật thông tin nhưng hiện nay đã không còn được khuyến nghị sử dụng do những lỗ hổng bảo mật. Chúng ta nên chuyển sang các thuật toán băm an toàn hơn như SHA để bảo vệ dữ liệu tốt hơn.

Tài liệu tham khảo

  1. Wikipedia – MD5
  2. Comparitech – MD5 Algorithm
  3. Binary Hex Converter
  4. Wikipedia – Preimage Attack
  5. RapidTables – Hex to Binary Converter
    source: viblo
Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào