Khi sử dụng một $n$-bit băm, xác suất mà một tình cờ thay đổi không bị phát hiện là về $2^{-n}$ (đối với các giá trị băm thậm chí đáp ứng nhẹ mục tiêu thiết kế của chúng).
Nếu một người đang sử dụng kỹ thuật này một lần mỗi giây trong 100 năm, với hàm băm 128 bit như MD5, thì xác suất đó là $36524\times86400\times2^{-128}\approx2^{31.6-128}=2^{-96.4}$.
Chúng tôi biết 44 miệng núi lửa trên trái đất do va chạm với một thiên thể đủ lớn để giáng một đòn mạnh vào nền văn minh hiện tại của chúng ta, xảy ra trong vòng 2,3 năm qua. Do đó, xác suất của một sự kiện phá vỡ nền văn minh trong khung thời gian 100 năm này là ít nhất $44\times100/(2,3\times10^9)\approx2^{-19}$ (và tôi lạc quan ở đây: sự hủy diệt hạt nhân nhân tạo được cho là có thể xảy ra hơn). Do đó, không có ích gì khi bận tâm về xác suất chỉ $2^{-96.4}$.
Nhưng trong mật mã, chúng tôi xem xét đối thủ chủ động cố gắng đánh bại chúng tôi. Nếu chúng tôi sử dụng hàm băm 128 bit (chẳng hạn như MD5) và tạo nhiều tệp (giả sử $2^{31.6}$ như trên, hàm băm phù hợp với thẻ nhớ USB 64 GB) và có những đối thủ mạnh với loại tài nguyên bị lãng phí khi khai thác bitcoin¹, thì khả năng họ tìm thấy một tệp có cùng hàm băm như tệp của chúng ta trở nên khá lớn (mặc dù không phải là vấn đề Tôi sẽ bị làm phiền).
Mối nguy hiểm thực sự và tức thời sẽ xảy ra nếu chúng ta cho rằng các đối thủ quản lý để xâm nhập vào phần mềm mà chúng ta sử dụng để lưu các tệp (chẳng hạn như PDF) của mình và chúng ta đủ ngớ ngẩn để sử dụng MD5 hoặc SHA-1, thứ mà khả năng chống va chạm tiền tố được chọn đã bị hỏng. Giờ đây, các đối thủ có thể dễ dàng tạo các tệp có cùng MD5 hoặc SHA-1 như bất kỳ tệp nào của chúng tôi, trông chính xác như cách đối thủ thấy phù hợp khi xem.
Đối với mục đích của tôi (chỉ kiểm tra tính hợp lệ của dữ liệu), bạn sẽ đề xuất điều gì?
Bỏ qua khả năng sửa đổi đối thủ là lạc đề trong một nhóm tiền điện tử. Nếu chúng tôi làm điều này, CRC là đủ. 64-bit là tốt. Về điều duy nhất cần lo sợ là giới truyền thông có thể sử dụng CRC trong nội bộ và họ can thiệp. Đối với việc thiếu thông tin, việc chọn CRC nguyên thủy 64 bit ngẫu nhiên có ý nghĩa.
Quay lại với mật mã học và đó là mô hình đối lập: nó nên được sử dụng các giá trị băm không bị phá vỡ giống như các giá trị băm của họ SHA-2 hoặc SHA-3. Thiếu một bước đột phá mà ít người mong đợi, SHA-256 có khả năng bảo mật đầy đủ trong ít nhất một thập kỷ, SHA-512 mãi mãi (ở quy mô con người) ngay cả khi chúng ta cho rằng chúng ta đã từng nhận được Máy tính lượng tử liên quan đến mật mã.
¹ Tôi đang nói về tổng năng lượng điện và các mạch tích hợp bị lãng phí. Tuy nhiên, phần lớn trong số đó sẽ không dành cho việc băm song song ồ ạt với ASIC như trong khai thác bitcoin. Nó sẽ dành cho bộ nhớ nhanh được tổ chức để tìm kiếm, vì việc tính toán các hàm băm MD5 có chi phí thấp so với việc khớp chúng với $2^{\approx31,6}$ mục tiêu băm.