Cho một tập hợp 100 chuỗi khác nhau có chiều dài bằng nhau, làm thế nào bạn có thể định lượng xác suất mà xung đột tiêu hóa SHA1 đối với các chuỗi là khó xảy ra ...?Xác suất của các va chạm SHA1
Trả lời
Are các giá trị băm 160 bit được tạo ra bởi SHA-1 đủ lớn để đảm bảo dấu vân tay của mỗi khối là duy nhất? Giả sử giá trị hash ngẫu nhiên với một phân phối thống nhất, một bộ sưu tập của khối dữ liệu n khác nhau và một hash chức năng mà tạo ra bit b, xác suất p rằng sẽ có một hoặc nhiều va chạm giáp số các cặp các khối nhân với số bằng xác suất mà một cặp nhất định sẽ va chạm.
(nguồn: http://bitcache.org/faq/hash-collision-probabilities)
Tóm lại, khả năng xảy ra xung đột là 10^-45. Điều đó rất, rất * rất khó xảy ra. –
Nhưng SHA-1 không phân bố đều, nó có thể lớn hơn giới hạn trên. Tôi nghi ngờ rằng phương trình này là không chính xác. Ít nhất là EQUAL. – Kamel
Câu trả lời này không tính đến phát hiện của Trung Quốc năm 2005, nơi họ có thể sản xuất va chạm trong 2^69 lần lặp thay vì 2^80 được dự tính bởi lực lượng vũ phu https://www.schneier.com/blog/archives /2005/02/sha1_broken.html – Djarid
Đó là Birthday Problem - bài viết cung cấp các xấp xỉ tốt đẹp giúp dễ dàng ước tính xác suất. Xác suất thực tế sẽ rất rất rất thấp - xem this question để biết ví dụ.
Vâng, xác suất xảy ra xung đột sẽ là 1 - ((2^160 - 1)/2^160) * ((2^160 - 2)/2^160) * ... * ((2)^160 - 99)/2^160).
Hãy suy nghĩ về xác suất xảy ra xung đột 2 mục trong không gian 10. Mục đầu tiên là duy nhất với xác suất 100%. Thứ hai là duy nhất với xác suất 9/10. Vì vậy, xác suất của cả hai là duy nhất là 100% * 90%, và xác suất của một vụ va chạm là 1 - (100% * 90%), hoặc 1 - ((10 - 0)/10) * ((10 - 1)/10) hoặc 1 - ((10 - 1)/10).
Rất khó xảy ra. Bạn sẽ phải có nhiều chuỗi hơn để nó trở thành một khả năng từ xa.
Hãy xem bảng trên this page on Wikipedia; chỉ nội suy giữa các hàng cho 128 bit và 256 bit.
- 1. Xác suất va chạm khi sử dụng băm 32 bit
- 2. va chạm HG vụ va chạm gấp?
- 3. Trình phát hiện va chạm/phát hiện va chạm voxel
- 4. Tạo các va chạm MD5 của riêng bạn
- 5. Phát hiện va chạm Javascript
- 6. Va chạm HashSet trong Java
- 7. Hiểu sha-1 va chạm yếu
- 8. thuật toán băm tốt nhất về mặt va chạm băm và hiệu suất cho các chuỗi
- 9. Box2dweb - Va chạm Contact Point
- 10. zend: va chạm tham số
- 11. Số va chạm băm dự kiến
- 12. javascript va chạm tên hàm
- 13. CHECKSUM() va chạm trong SQL Server 2005
- 14. Phát hiện va chạm giữa các quả cầu tăng tốc
- 15. QuadTree cho phát hiện va chạm 2D
- 16. Làm thế nào để phát hiện va chạm nhưng không va chạm trong box2d?
- 17. Python & Pygame: Va chạm với nội thất của vòng tròn
- 18. Phát hiện va chạm ban đầu của hai cơ quan Box2D mà không cần liên tục va chạm
- 19. Visual Studio 2008 va chạm khủng khiếp
- 20. Va chạm dựa trên gạch trong XNA
- 21. Phát hiện va chạm liên tục 2D
- 22. Phát hiện va chạm canvas Javascript
- 23. Tìm va chạm trong bảng băm
- 24. Độ phân giải va chạm trong HashMap
- 25. string.GetHashCode() tính độc đáo và va chạm
- 26. Va chạm bất ngờ với std :: hash
- 27. Phát hiện va chạm vòng tròn nhanh
- 28. Cách phát hiện va chạm trong webgl?
- 29. Mô phỏng n-mô phỏng va chạm 2D (phát hiện va chạm nhanh cho số lượng lớn quả bóng)
- 30. Mô hình diễn viên và phát hiện va chạm
làm rõ, làm thế nào bạn có thể có 'độ dài khác nhau nhưng bằng' chuỗi? – KevinDTimm
@kevindtimm "a", "b", "c" có độ dài bằng nhau nhưng các chuỗi khác nhau –
Tôi giả sử các chuỗi có độ dài tối thiểu 20 byte. Nếu không, rõ ràng là cơ hội sẽ cao hơn của một vụ va chạm. :) –