Chúng tôi nghiên cứu một hàm băm $H$ Được định nghĩa bởi $H(m):=H_2(H_1(m))$, với SHA-256 cho $H_1$ và MD5 cho $H_2$.
Các khả năng chống va chạm của MD5 bị hỏng nặng, do đó, đối số chung¹ rằng khả năng chống va chạm của $H$ ít nhất là yếu nhất trong khả năng chống va chạm của $H_1$ và $H_2$ không dẫn chúng ta đến đâu cả.
Lập luận chung² rằng khả năng chống lại tiền ảnh đầu tiên của $H$ ít nhất là của $H_2$ hoạt động vì chúng tôi tin tưởng vào khả năng chống tạo ảnh trước của MD5; được đặt câu hỏi (xem cái này), nhưng không bị hỏng trong thực tế.
Điều duy nhất tôi có thể nghĩ về điện trở tiền ảnh thứ hai của $H$ là nó không thể tốt hơn điện trở tiền ảnh thứ hai của $H_1$. Điều đó không đảm bảo tính bảo mật và vì khả năng chống tạo ảnh thứ hai của SHA-256 được cho là tốt nên cũng không gây ra cuộc tấn công.
Từ quan điểm ứng dụng (đó là câu hỏi dường như là về vì nó đề cập đến một ứng dụng cụ thể), tôi không thấy rằng bất kỳ cuộc tấn công phân tích mật mã nào hiện có trên MD5 hoặc SHA-256 đều có liên quan.
- Khả năng chống va chạm của MD5 bị hỏng.Nhưng kích thước đầu vào MD5 ngắn (kích thước đầu ra 256 bit của SHA-256 chỉ bằng một nửa khối đầu vào của MD5) và ràng buộc nặng nề rằng đầu vào này là hàm băm, mỗi thứ đều đủ để khiến các cuộc tấn công va chạm MD5 hiện tại không thể áp dụng được (hạn chế với những người tốt hơn nhiều so với vũ phu).
- Cả SHA-256 và MD5 đều không mong muốn thuộc tính mở rộng chiều dài, nhưng độ dài cố định của khối đầu vào MD5 dành cho thuộc tính của MD5. Và việc băm lại đầu ra SHA-256 thành các khối có kích thước bằng một nửa so với SHA-256.
Do đó, các cuộc tấn công duy nhất có liên quan đến mật mã mà tôi thấy là những cuộc tấn công còn lại cho các hàm băm lý tưởng $H_1$ và $H_2$ với chiều rộng đầu ra tương ứng của chúng. Từ $H_2$ hẹp hơn nhiều so với $H_1$, các cuộc tấn công vũ phu bị giới hạn bởi chiều rộng của $H_2$ và cân nhắc về tốc độ. Đặc biệt:
- Hàm băm phức hợp của câu hỏi chỉ rộng 128 bit, do đó các va chạm có thể được thể hiện với khoảng $2^{66}$ đánh giá (của cả SHA-256 và MD5) bằng tiêu chuẩn tìm kiếm va chạm phân tán. Tôi có thể tưởng tượng các tình huống trong đó khả năng chống va chạm thấp là một vấn đề (và không thể nói ở đây, điều đó phụ thuộc vào ứng dụng).
- Băm hợp chất không thể sử dụng được cho kéo dài phím, như cần thiết cho mật khẩu, vì nó quá nhanh và không khó bộ nhớ. Tuy nhiên, không có dấu hiệu kéo dài phím nào là một yêu cầu.
Băm phức hợp đó thiếu một đối số bảo mật rõ ràng, không nhanh lắm, đặc biệt là đối với đầu vào ngắn và ít nhất là xấu từ góc độ quan hệ công chúng vì MD5 bị hỏng. Theo như tôi có thể nói, đó là trong thực tế tốt như bất kỳ hàm băm 128 bit nhanh nhẹ nào có thể có trên tất cả kỹ thuật quan điểm, bao gồm cả việc không đạt yêu cầu về khả năng chống va chạm (nhưng không có gì chắc chắn rằng khả năng chống va chạm là một yêu cầu trong trường hợp sử dụng).Tôi thấy không có lý do gì để sử dụng hàm băm hỗn hợp đó thay vì thứ gì đó hiện đại hơn và an toàn hơn MD5, bao gồm một số SHA-2 (có thể bị cắt ngắn) hoặc SHA-3's SHAK128 với kích thước đầu ra có thể điều chỉnh được hoặc Blake2b (hoặc Blake3 sau khi bụi lắng xuống) .
¹ Giả thuyết về một vụ va chạm cho $H$, đó là $(m,m')$ với $m\ne m'$ và $H(m)=H(m')$. chúng ta có thể tính toán $w=H_1(m)$ và $w'=H_1(m')$. Nếu $w=w'$, chúng tôi có một vụ va chạm cho $H_1$. Nếu không, chúng tôi có $H_2(w)=H_2(w')$ với $w\ne w'$, do đó một vụ va chạm cho $H_2$. Vì vậy, chúng tôi đã phá vỡ khả năng chống va chạm cho $H_1$ hoặc $H_2$.
² Đưa ra giả thuyết về thuật toán tìm tiền ảnh đầu tiên cho $H$, được cho $h$ Phát hiện $m$ như vậy mà $H(m)=h$ với xác suất không đáng kể và nỗ lực khả thi. chúng ta có thể tính toán $w=H_1(m)$ và nó là như vậy $h=H_2(w)$. Vì vậy, chúng tôi đã xây dựng một phương pháp tìm tiền ảnh đầu tiên cho $H_2$ với cùng một xác suất thành công không đáng kể và về cơ bản là cùng một nỗ lực như thuật toán được giả thuyết.
³ Một thuật toán tìm tiền ảnh thứ hai cho $H_1$, được cho $m$ Phát hiện $m'\ne m$ như vậy mà $H_1(m)=H_1(m')$, cũng tìm thấy tiền ảnh thứ hai cho $H$.