2013-01-16 76 views
12

Tôi biết SHA-224, SHA-256, SHA-384 và SHA-512 là tất cả các phần của SHA-2 hash function family. Nhưng bây giờ cũng có một thuật toán băm SHA-3 mới.Sự khác biệt giữa thuật toán băm SHA-2 và SHA-3 là gì?

Bạn có thể cho tôi biết sự khác biệt giữa SHA-2 và SHA-3 không? Khi nào và tại sao tôi nên sử dụng SHA-3? Và SHA-3 thực sự bao gồm thuật toán băm an toàn nào?

+0

@xuinkrbin. đó là một sự xấu hổ, vì nó là tắt chủ đề trên diễn đàn này - câu hỏi này sẽ tốt hơn tại crypto.stackexchange. Lưu ý rằng chúng tôi hiện có một câu trả lời và không thể thêm câu trả lời bổ sung nào. Vì vậy, không có cách nào mà điều này sẽ trở thành một hit hữu ích tại google - ngay cả khi câu trả lời của Ilmari không phải là một nửa xấu. Nhưng tôi đã xóa nhận xét khá xúc phạm của tôi. –

+0

Nó rất hữu ích cho tôi. :-) –

Trả lời

18

SHA-3, còn được gọi là Keccak (tên ban đầu trước khi được chọn là người chiến thắng của NIST SHA-3 competition), là một thuật toán băm hoàn toàn mới không liên quan gì đến SHA-1 và SHA-2.

Thật vậy, một trong những lý do đã nêu tại sao NIST chọn Keccak qua các đối thủ cạnh tranh khác của SHA-3 là không giống với các thuật toán SHA-1/2 hiện có; người ta cho rằng sự khác biệt này làm cho nó bổ sung tốt hơn cho các thuật toán SHA-2 hiện có (vẫn được coi là an toàn và được đề xuất bởi NIST), cũng như làm cho nó ít có khả năng là bất kỳ đột phá mã hóa tương lai nào sẽ làm tổn hại đến an ninh của cả SHA- 2 và SHA-3.

Đối với một số nền, cuộc thi hàm băm SHA-3 ban đầu được NIST công bố vào năm 2007, sau khi một số cuộc tấn công mật mã mới đã gọi bảo mật của SHA-1. Trong khi các cuộc tấn công vào SHA-1 chủ yếu là sự quan tâm lý thuyết, thì lo ngại rằng những cải tiến hơn nữa về các kỹ thuật này có thể cho phép các cuộc tấn công thực tế va chạm trên SHA-1, và các kỹ thuật tương tự cũng có thể được áp dụng với SHA-2, có cùng thiết kế với SHA-1. Do đó, NIST quyết định tổ chức một cuộc thi để chọn người kế nhiệm cho SHA-2, được gọi là SHA-3.

Tuy nhiên, trong khi tấn công va chạm trên thế giới thực trên SHA-1 was finally demonstrated in 2017, các cuộc tấn công đáng sợ trên SHA-2 đã không thành hiện thực. Ngày nay, nói chung chấp nhận việc phá vỡ SHA-2 sẽ không dễ dàng như cách đây mười năm, và do đó tất cả các biến thể của SHA-2 vẫn được coi là an toàn trong tương lai gần. Tuy nhiên, vì NIST đã hứa rằng SHA-3 sẽ được chọn vào năm 2012, và vì rất nhiều người đã dành khá nhiều thời gian và công sức để đệ trình và đánh giá các hàm băm mới cho cuộc thi, và vì có một số thiết kế thực sự tốt đẹp trong số những người vào vòng chung kết, có lẽ sẽ là một sự xấu hổ nếu không chọn bất kỳ người nào trong số họ là người chiến thắng. Vì vậy, NIST quyết định chọn Keccak làm SHA-3, và đề xuất nó như là một thay thế thay thế (không kế thừa) cho hàm băm SHA-2.

Điều đó có nghĩa là, nếu bạn muốn có hàm băm an toàn và tiêu chuẩn hóa, bạn có thể chọn SHA-2 hoặc SHA-3. Nếu bạn đang cảm thấy thực sự là hoang tưởng, thậm chí bạn có thể muốn sử dụng cả hai và thiết kế hệ thống mật mã của mình để nó vẫn an toàn ngay cả khi một trong hai hàm băm bị hỏng.

+5

Sử dụng cả hai hàm băm có thể hơi nguy hiểm nếu bạn không biết mình đang làm gì. Nó phụ thuộc vào những gì bạn muốn đạt được tất nhiên. –

Các vấn đề liên quan