Điểm:2

Mạnh đến mức nào nếu tôi kết hợp hai hàm băm, chẳng hạn như MD5(SHA256(input))?

lá cờ in

Nếu tôi cố gắng làm MD5(SHA256(đầu vào)), sức mạnh của cái gọi là phương pháp băm kép này là gì?

Nó có mạnh bằng SHA256 hay mạnh bằng MD5 hay mạnh bằng SHA256 + MD5 không?

Đây không phải là một câu hỏi bài tập về nhà btw, tôi đang hỏi vì một vấn đề thực sự trong dự án của tôi. Được rồi, tôi chỉ cần làm SHA256(đầu vào) trên đầu vào và lưu trữ nó trong một cột trong một bảng MySQL. Nhưng mối quan tâm thực tế của tôi là: SHA256 có độ dài 64 khi được mã hóa base64, nhưng MD5 có độ dài 32 khi được mã hóa base64. Tôi cần một chỉ mục trên cột này. Liệu MySQL có hoạt động tốt hơn khi tôi sử dụng MD5(SHA256(input)) vì nó ngắn hơn (do cây B+ cô đặc hơn hoặc về cơ bản nhỏ hơn có nghĩa là dung lượng lưu trữ ít hơn)?


Do chính tôi biên tập: bạn thử nghĩ xem "mạnh mẽ" ở đây có nghĩa là gì? Đó là khả năng chống tiền hình ảnh hay khả năng chống hình ảnh thứ hai?

lá cờ us
Hãy nghĩ về một số hàm băm khác khi va chạm tệ hơn nhiều so với MD5 - giả sử Hash(X) = 1... tính bảo mật của Hash(SHA256(X)) sẽ như thế nào? Logic tương tự áp dụng cho câu hỏi này.
fgrieu avatar
lá cờ ng
Băm SHA-256 (tương ứng với MD5) là _not_ có độ dài 64 (tương ứng với 32) khi mã hóa cơ số 64.Việc sử dụng mã nhị phân làm khóa tìm kiếm không có lý do _good_ CNTT nào là vấn đề và có lý do để nhanh hơn. Vì các mục tiêu bảo mật của toàn bộ hệ thống không được nêu rõ nên chúng tôi không thể biết liệu chúng có được đáp ứng hay không. Tôi đã mở lại Q, nhưng thực sự: tại sao điều này lại được xem xét, với MD5 bị hỏng? Tại sao không phải là một hàm băm cắt ngắn hiện đại?
kelalaka avatar
lá cờ in
[RIPEMD](https://en.wikipedia.org/wiki/RIPEMD) được sử dụng tốt hơn MD5, mà Bitcoin đã sử dụng RIPEMD-160
kelalaka avatar
lá cờ in
Tổng kích thước dữ liệu là gì? Tại sao vụ va chạm lại quan trọng đối với bạn? Tại sao bạn không thể sử dụng PRP đảm bảo tính duy nhất với điều kiện dữ liệu là duy nhất? Mục tiêu của bạn không rõ ràng để cung cấp câu trả lời đầy đủ... Và phần cây B+ lạc đề ở đây.
dave_thompson_085 avatar
lá cờ cn
Ngoài thực tế, việc lưu trữ SHA256 bị cắt ngắn cũng tốt về mặt mật mã, nếu muốn, bạn có thể lưu trữ SHA256 đầy đủ và chỉ có MySQL _index_ tiền tố của nó; xem sách hướng dẫn. Nhưng đó không phải là mật mã và là lạc đề.
Điểm:3
lá cờ ng

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$$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$$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'$$H(m)=H(m')$. chúng ta có thể tính toán $w=H_1(m)$$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$.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.