Điểm:2

Hiểu xung đột Hash - tại sao lại tệ?

lá cờ cn

Tôi đã đọc một vài câu trả lời về câu hỏi: tại sao xung đột băm lại nguy hiểm như vậy? Nhưng không nhận được câu trả lời thực sự thỏa mãn. Giả sử chúng tôi là những người đầu tiên tìm thấy va chạm SHA256, như

sha256($§"%fa7asd8ft6sds) = sha256(889=?`/&&%"HSF)

(đây không phải là một phương trình thực, nhưng giả sử nó đúng).

Tại sao điều này lại nguy hiểm? Tại sao SHA256 bị hỏng bây giờ? Làm cách nào để tôi nhận được nhiều va chạm hơn từ việc này? Và có thể có nhiều xung đột quan trọng hơn như sha256(Send me 5â¬) = sha256(Send me 5000⬠&%$"§"%§%...)

knaccc avatar
lá cờ es
Nếu tôi ký vào một hàm băm của thông báo A, thì khả năng tìm thấy xung đột hàm băm có nghĩa là bạn có thể khẳng định rằng tôi đã ký vào thư B thay vì chúng sẽ chia sẻ cùng một hàm băm.
kelalaka avatar
lá cờ in
Điều này có trả lời câu hỏi của bạn không? [Các ví dụ tấn công hay khác sử dụng xung đột hàm băm là gì?](https://crypto.stackexchange.com/questions/87104/what-are-other-good-attack-examples-that-use-the-hash-collision )
Điểm:4
lá cờ in

Trước hết, các xung đột hàm băm mật mã không được tìm thấy bằng cách tìm kiếm hoặc tình cờ. Chúng được tính toán bởi vì - vì lý do nào đó - thuật toán băm bị hỏng. Bạn vẫn phải tạo khoảng $2^{128}$ băm để tìm ra xung đột, ngay cả khi bạn lấy ngày sinh nhật - và hãy nhớ rằng bạn cũng phải thực hiện so sánh, mặc dù có các thủ thuật để tăng tốc độ đó.

Thay vào đó, nhóm thực hiện phân tích sẽ tìm ra điểm yếu và khai thác nó, đôi khi đòi hỏi rất nhiều nguồn lực. Điều này cũng có nghĩa là nếu bạn tạo ra một va chạm mà bạn có khả năng tạo ra nhiều va chạm hơn bằng cách sử dụng cùng một phương pháp.

Nếu một lượng tương đối nhỏ các trạng thái bên trong bị ảnh hưởng thì nó có thể có thể sửa hàm băm - chẳng hạn như SHA-1 cứng được bảo vệ chống lại cuộc tấn công SHAttered. Tất nhiên, bây giờ SHA-1 được chứng minh là yếu, có rất nhiều lý do để chuyển sang ví dụ: SHA-256 dù sao đi nữa và tôi chưa thấy sự hấp thụ của SHA-1 cứng ở bất cứ đâu.


Ngay cả khi bạn chỉ có hai đầu vào tạo ra cùng một giá trị băm, bạn vẫn có thể gặp rắc rối. Băm hoạt động nội bộ theo từng khối. Nếu có thể tìm thấy một vụ va chạm thì các khối tiếp theo cũng sẽ dễ bị tổn thương. Nói cách khác, nếu bạn tìm thấy $H'(B_1) = H'(B_2)$ sau đó $H'(B_1 \| E) = H'(B_2 \| E)$ ở đâu $\|$ là phép nối. Lưu ý rằng phần mở rộng $E$ có thể chứa không tí nào dữ liệu. Vì vậy, theo nghĩa đó: nếu bạn tìm thấy một xung đột cho SHA-256 thì bạn đã tìm thấy nhiều xung đột của các thông báo bắt đầu bằng một hoặc nhiều khối dữ liệu cụ thể.

Đối với SHA-3, tình huống phức tạp hơn một chút (tùy thuộc vào trạng thái bên trong - tức là khả năng của miếng bọt biển đã sử dụng - giống hệt nhau trước hoặc sau thao tác cuối cùng) nhưng về cơ bản, bạn vẫn gặp rắc rối.


Nếu những loại xung đột này có thể áp dụng cho giao thức của bạn thì lại là một câu hỏi khác. Các lược đồ như HMAC dựa trên hàm băm hoàn toàn không bị ảnh hưởng vì nó không yêu cầu khả năng chống va chạm từ hàm băm đã định cấu hình.

poncho avatar
lá cờ my
Đối với SHA-3, trạng thái bên trong duy nhất bạn cần giống hệt là 'bit dung lượng'; kẻ tấn công có thể đặt 'bit tốc độ' trên một trong hai thông báo thành bất kỳ thứ gì anh ta muốn (bằng cách chọn thông báo một cách thích hợp).

Đă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.