Điểm:1

Thành phần của các hàm chống va chạm H' = h1(h2()) có chống va chạm không?

lá cờ id

Giả sử có hai hàm băm chống va chạm $h_1$$h_2$ với kích thước đầu ra của $n_1$$n_2$ tương ứng.

$H'(x) = h_1(h_2(x))$ chống va chạm cho các mối quan hệ khác nhau giữa $n_1$$n_2$?


Điều này đã khiến tôi và các đồng nghiệp của tôi bối rối trong vài ngày qua vì hai cách tiếp cận khác nhau mâu thuẫn với nhau:

Cách tiếp cận thứ nhất:

Dựa trên định nghĩa về khả năng chống va chạm $H'$ có một đầu ra của $n_1$ chiều dài và vì vậy nếu chúng ta có thể tìm thấy một cuộc tấn công ít phức tạp hơn $\mathcal O(2^{n_1/2})$ nó không chống va chạm.

Chúng tôi muốn $$\mathcal O(2^{n_2/2}) < \mathcal O(2^{n_1/2}) \implies \ldots \implies n_2 < n_1$$

Vì thế nếu $n_2 < n_1, H'$ không có khả năng chống va chạm và trong các trường hợp khác, nó là


cách tiếp cận thứ 2:

Giả sử $H'$ không có khả năng chống va chạm.

Sau đó, có tồn tại khác nhau $x_1$$x_2$ để có thể $H'(x_1) = H'(x_2)$ I E. $h_1(h_2(x_1)) = h_1(h_2(x_2))$

Điều đó có thể xảy ra nếu $h_2(x_1) = h_2(x_2)$, nhưng $h_2$ có khả năng chống va chạm

Nó cũng có thể xảy ra nếu $h_1(A) = h_1(B)$ ở đâu $A = h_2(x_1)$$B = h_2(x_2)$ nhưng $h_1$ có khả năng chống va chạm.

Chúng tôi đã chứng minh rằng $H'$ có khả năng chống va chạm và mối quan hệ của $n_1$$n_2$ không thành vấn đề.

kelalaka avatar
lá cờ in
Chào mừng bạn đến với [cryptography.se].Đây có phải là một câu hỏi bài tập về nhà? (Chúng tôi có lừa đảo cho việc này)
kelalaka avatar
lá cờ in
Một gợi ý: nếu $n_1 = n_2$ thì cách tiếp cận thứ nhất giống như cách tiếp cận thứ hai. Khi chúng khác nhau $n_2
John St avatar
lá cờ id
Đó là sự chuẩn bị cho kỳ thi mật mã ứng dụng thạc sĩ của tôi, tôi đã nhìn thấy những trò lừa bịp nhưng tôi không tìm thấy cách tiếp cận đầu tiên ở bất kỳ đâu.
John St avatar
lá cờ id
Dựa trên nhận xét của bạn, tôi nhận ra các giải pháp sau giả định $n_1=n_2$? Mặc dù, làm thế nào tôi có thể hiểu nó và do đó không áp dụng được cho vấn đề này?
Điểm:4
lá cờ my

Điều này đã khiến tôi và các đồng nghiệp của tôi bối rối trong vài ngày qua vì hai cách tiếp cận khác nhau mâu thuẫn với nhau

Lý do là hai cách tiếp cận này giả định các định nghĩa khác nhau về 'chống va chạm'; hai định nghĩa này không tương đương nhau; nghĩa là, chúng ta có thể tìm thấy các hàm thỏa mãn một định nghĩa chứ không phải định nghĩa kia.

Lần thử đầu tiên sử dụng định nghĩa 'không có va chạm tìm thấy tệp đính kèm mất ít thời gian hơn $\mathcal{O}(2^{n/2})$ hoạt động; bởi vì $n$ đã được khắc phục, chúng tôi sử dụng điều này làm tốc ký cho 'một cuộc tấn công diễn ra $c2^{n/2}$ hoạt động, đối với một số $c$ không xa lắm so với 1 và một số định nghĩa hợp lý về hoạt động (trong trường hợp này là đánh giá hàm băm).

Vấn đề với định nghĩa này là nó dẫn đến một số kết luận ngớ ngẩn, ví dụ, SHA-256 bị cắt bớt thành 8 bit là 'chống va chạm' theo định nghĩa này. Theo hướng khác, đầu ra 1kbyte từ SHAKE-256 không phải là 'chống va chạm', bởi vì bạn có thể tìm thấy các xung đột với ít hơn nhiều so với $2^{8192/2}$ đánh giá băm.

Ngược lại, cách tiếp cận 2 sử dụng định nghĩa 'hàm băm có khả năng chống va chạm nếu chúng ta không thể tìm thấy xung đột'. Thể hiện điều này một cách chính thức hơi phức tạp (bởi vì, miễn là đầu vào được phép dài hơn đầu ra, thì phải có xung đột, chúng tôi chỉ không biết chúng là gì) và cũng bởi vì điều này liên quan đến tài nguyên tính toán chúng tôi có (hiện tại, SHA-256 được cắt bớt thành 200 bit có khả năng chống va chạm; có thể không phải 20 năm nữa kể từ bây giờ khi chúng tôi có thêm sức mạnh tính toán); mặt khác, nó gần với khái niệm trực quan về 'khả năng chống va chạm' mà chúng ta có.

Với định nghĩa này, cách tiếp cận 2 có thể được viết lại thành 'nếu chúng ta giả sử $H'$ không chống va chạm, thì chúng ta biết $x \ne y$ với $H'(x) = H'(y)$. Sau đó, một trong hai $h_2(x) = h_2(y)$ (và do đó $h_2$ không chống va chạm, như chúng ta biết là va chạm), hoặc $h_2(x) \ne h_2(y)$, trong trường hợp đó chúng ta có $h_1(u) = h_1(v)$$u = h_2(x), v = h_2(y), u \ne v$ (và do đó $h_1$ không chống va chạm, như chúng ta biết là va chạm).

John St avatar
lá cờ id
Điều này có nghĩa là cả hai cách tiếp cận đều hợp lệ nhưng liên quan đến các định nghĩa về khả năng chống va chạm khác nhau?
poncho avatar
lá cờ my
@JohnSt: thực ra, tôi nghĩ rằng tôi đã nói rõ rằng tôi không nghĩ rằng định nghĩa trong cách tiếp cận 1 thực sự hợp lệ; tuy nhiên, miễn là bạn hiểu các vấn đề, bạn có thể tự quyết định
John St avatar
lá cờ id
Tôi hiểu rồi, cảm ơn vì lời giải thích của bạn, tôi đã ở trên con tàu tiếp cận 2 ngay từ đầu nên tôi sẽ sử dụng nó trong trường hợp điều này xuất hiện trong bài kiểm tra, đồng thời nêu rõ định nghĩa về khả năng chống va chạm mà tôi sẽ sử dụng
Điểm:0
lá cờ id

Tôi có cơ hội hỏi giáo sư của mình và ông ấy mong đợi giải pháp đầu tiên, vì giải pháp thứ hai giả định $n_1 = n_2$ (tôi vẫn không biết tại sao hoặc nó làm điều đó ở đâu).

Ông cũng giải thích rằng:

  • một $n_2$ 1000 bit mà sau đó chuyển đổi thành một $n_1$ 2 bit được coi là có khả năng chống va chạm vì bạn sử dụng toàn bộ bảo mật mà 2 bit cung cấp, tức là bạn nhận được tất cả giá trị mà 2 bit mà bạn đã "trả tiền".
  • Ngược lại một $n_2$ 500 bit mà sau đó chuyển đổi thành một $n_1$ 1000 bit không được coi là có khả năng chống va chạm vì bạn "trả" cho 1000 bit bảo mật và chỉ sử dụng 500.

Điều này thực sự đã giúp tôi hiểu khái niệm này một cách trực quan và logic.

poncho avatar
lá cờ my
Vì vậy, anh ấy đang tuyên bố rằng hàm băm có đầu ra 2 bit có thể "chống va chạm"? Tôi xin lỗi, nhưng điều đó mâu thuẫn nghiêm trọng với hiểu biết của tôi về "kháng va chạm" nghĩa là gì...
poncho avatar
lá cờ my
Tôi càng nghĩ về điều này, định nghĩa của giáo sư càng không có ý nghĩa. Chúng tôi định nghĩa các thuật ngữ, không phải vì chúng tôi thích tạo ra các định nghĩa, mà vì những định nghĩa đó hữu ích. Định nghĩa của tôi về khả năng chống va chạm (chúng tôi không biết về va chạm và không biết cách tìm kiếm thực tế) tự cho mình là một giả định bảo mật cho các bằng chứng bảo mật khác nhau về những thứ liên quan đến hàm băm. Ngược lại, tôi không thể nghĩ ra cách sử dụng duy nhất cho "đối với hàm băm 2 bit này, chúng tôi không thể tìm thấy xung đột mà không thực hiện đánh giá hàm băm $\sqrt{2^2}$"
John St avatar
lá cờ id
Cách tôi hiểu là định nghĩa khả năng chống va chạm là một tiêu chí triển khai. Ví dụ, chức năng 2 bit được triển khai theo cách cung cấp điện trở tối đa có thể cho độ dài đầu ra của nó. Việc sản phẩm cuối cùng có đủ và có đủ khả năng chống va chạm hay không (dựa trên nhu cầu chứ không phải định nghĩa) là một vấn đề khác.
John St avatar
lá cờ id
Điều đó nói rằng, tôi đồng ý rằng định nghĩa là một chút đặc biệt và gây hiểu nhầm.
John St avatar
lá cờ id
Một ví dụ sử dụng cho định nghĩa này là liệu bất kỳ hàm nào $H'$ bao gồm nhiều hàm có được triển khai để sử dụng bảo mật đầy đủ các hàm tương ứng hay không. (tức là Bạn không thể phá vỡ nó dễ dàng hơn bằng cách hãm một chức năng bên trong là một phần của nó)

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