Điểm:2

Đưa ra một hàm băm và một giá trị băm, bạn có thể cho biết liệu nó có thể tạo ra giá trị như vậy không?

lá cờ tr

Tôi đã đưa ra câu hỏi sau:

Cho một hàm băm H() và một giá trị băm h đó là trong tên miền/phạm vi đầu ra của H(), bạn có thể xác định nếu h có thể được sản xuất bởi H() (tức là h trong hình ảnh của H())?

Câu hỏi có thể được trả lời? Nó có mâu thuẫn với đặc tính kháng tiền định không?

Có bất kỳ lợi ích nào bạn có thể nghĩ đến đối với hàm băm có thuộc tính trên không (mà bạn có thể/không thể biết nếu h có thể được tạo ra bởi hàm băm)?

Maarten Bodewes avatar
lá cờ in
Lưu ý rằng tiêu đề cho biết một câu hỏi [đã được trả lời](https://crypto.stackexchange.com/a/41708/1172). Tuy nhiên, theo ý kiến ​​​​cá nhân của tôi, các câu hỏi tiếp theo đủ thú vị để tiếp tục mở.
Điểm:2
lá cờ ng

Cho một hàm băm $\mathcal H()$ và một giá trị băm $H$ đó là trong tên miền/phạm vi đầu ra của $\mathcal H()$, bạn có thể xác định nếu $H$ có thể được sản xuất bởi $\mathcal H()$ (tức là $H$ trong hình ảnh của $\mathcal H()$)?

Tôi sẽ cho rằng "mã miền/phạm vi đầu ra" được xác định mà không cần tham chiếu đến những gì hàm băm thực sự tạo ra (chứ không phải là tập hợp các đầu ra thực tế của hàm băm, điều này sẽ làm cho nó đạt được tất cả theo định nghĩa).

Nếu một hàm băm $\mathcal H$ là như vậy mà đối với một phần khá lớn của nhất định $H$ trong tên miền của nó, người ta có thể triển lãm đầu vào $M$ như vậy mà $H(M)=H$, thì chức năng đó sẽ không có khả năng chống tạo ảnh trước. Do đó, cuộc triển lãm đã nói phải không thể tính toán được đối với một ngẫu nhiên $H$.

Nếu chúng ta lập mô hình hàm băm như một hàm ngẫu nhiên $\{0,1\}^*\to\{0,1\}^n$, sau đó theo người thu phiếu giảm giá vấn đề, số lần băm dự kiến ​​của các tin nhắn ngẫu nhiên để đạt được tất cả các giá trị là $E=2^n\,(n\,\ln(2)+\gamma)+1/2+o(1)$. Trong thực tế tiền điện tử $n\ge128$ do đó $\log_2(E)\khoảng n+\log_2(n)-0,53$. Do đó, trung bình chúng ta cần băm ít hơn tất cả các tin nhắn chính xác 33 byte để đạt được tất cả các giá trị cho hàm băm 256 bit lý tưởng, nhưng cần băm nhiều hơn tất cả các tin nhắn chính xác 65 byte để đạt được tất cả các giá trị cho hàm băm 512-bit lý tưởng. băm nhỏ. Tạo ra nhiều giá trị băm như vậy là không thể.

Đối với các hàm băm thông thường như SHA-1, SHA-256, SHA-512 và tôi tin rằng SHA-3, như đã nêu trong đó câu trả lời khác, chúng tôi không có bằng chứng toán học nào cho thấy có thể đạt được mọi giá trị đầu ra. Điều tốt nhất chúng ta có thể nói là nó có khả năng đúng (thậm chí giới hạn ở những thông điệp phù hợp với một khối duy nhất và thậm chí còn hơn thế nữa với nhiều khối hơn), nhưng sẽ rất ngạc nhiên nếu nó có thể được chứng minh hoặc bác bỏ.


Nhưng tôi nghĩ chúng ta có thể xây dựng một hàm băm mà có thể chứng minh được đạt đến tất cả không gian đầu ra của nó, nhưng ở một mức độ lớn các thuộc tính được mong đợi từ hàm băm mật mã. Đây là một hàm băm ứng cử viên của chuỗi bit tùy ý có thể đạt được toàn bộ $\{0,1\}^{512}$.

Tôi sẽ sử dụng 3072-bit thủ an toàn $p$, đó là như vậy mà $q=(p-1)/2$ cũng là số nguyên tố; và một máy phát điện $g$ của nhóm nhân $\mathbb Z_p^*$, đó là $g\in[2,p-2]$ với $g^q\equiv-1\pmod p$. chúng ta có thể sử dụng $p=2^{3072}-2^{3008}+2^{64}\,(\left\lfloor2^{2942}\,\pi\right\rfloor+1690314)-1$ sau đó Nhóm MODP 3072-bit, và $g=\left\lfloor 2^{3070}\,e\right\rfloor$.

Tính toán hàm băm $H(M)\in\{0,1\}^{512}$ tin nhắn đầu vào $M\in\{0,1\}^*$ như sau:

  1. Chuyển đổi chuỗi bit $M$ thành số nguyên $m$ theo quy ước big-endian và theo dõi độ dài bit $\ell$ của $M$.
  2. tính toán $$\begin{align} m_0&=m\bmod(p-1)\ h_0&=(g^{m_0}\bmod p)-1\ h_1&=\left\lfloor h_0/2^{1024}\right\rfloor\bmod2^{512}\ h_2&=\left\lfloor h_0/2^{1664}\right\rfloor\bmod2^{512}\ m_1&=\left\lfloor m/(p-1)\right\rfloor\ \end{align}$$ Lưu ý: hằng số 1024 và 1664 chọn vị trí của hai phân đoạn 512-bit không chồng lấp tùy ý trong biểu diễn nhị phân của $h_0$.
  3. Chuyển thành $h_1$ thành chuỗi bit $H_1\in\{0,1\}^{512}$, $h_2$ thành chuỗi bit $H_2\in\{0,1\}^{512}$, và $m_1$ thành chuỗi bit $M_1\in\{0,1\}^{\ell}$ theo quy ước big-endian.
  4. Tính toán và xuất $H=H_1\oplus H_2\oplus\operatorname{SHA3-512}(M_1)$.

Sự chuyển hóa giữa $m_0$$h_0$ là một dự đoán của $[0,p-2]$. Nếu làm theo chúng ta có thể chứng minh được một hình ảnh trước $M$ của bất kỳ $H\in\{0,1\}^{512}$ nếu chúng ta có thể giải DLP trong nhóm nhân $\mathbb Z_p^*$: chúng tôi sửa $M_1=0^{3072}$ (do đó $\ell=3072$$m_0=m$), $h_0=2^{640}\,h_1$ (do đó $H_2=0^{512}$), điều đó cho phép chúng ta tính toán $H_1=H\oplus\operatorname{SHA3-512}(M_1)$, sau đó $h_1$, sau đó $h_0=2^{640}\,h_1$. Chúng tôi giải quyết vấn đề DLP $(g^{m_0}\bmod p)=h_0+1$ để có được $m_0$, sau đó $m$, sau đó là 3072-bit $M$.

Lập luận của tôi rằng hàm băm có khả năng chống va chạm và chống tạo ảnh trước là $M\mapsto(M_1,m_0)$ là thuốc tiêm, $m_0\mapsto H_1\oplus H_2$ dường như khá khó để đảo ngược hoặc va chạm và XORing điều đó với hàm băm không liên quan tốt của $M_1$ ít hơn một nửa khả năng chống va chạm.


Có bất kỳ lợi ích bạn có thể nghĩ đến?

tôi không thấy bất kỳ kỹ thuật thực tế mang lại lợi ích cho hàm băm có thể đạt được một cách rõ ràng tất cả tên miền của nó, vì chúng tôi không thể phân biệt bằng thực nghiệm với hàm băm tiêu chuẩn tốt nếu không có thuộc tính này. Mặt khác, nó sẽ thỏa mãn về mặt trí tuệ. Vấn đề là, bất cứ điều gì tôi có thể nghĩ đến (như ứng cử viên ở trên) nếu cả hai đều chậm hơn và kém an toàn hơn ở độ rộng đầu ra nhất định so với hàm băm tiêu chuẩn và việc xem xét thực tế đó sẽ cân nhắc lợi ích vô hình của việc đảm bảo có thể đạt được tất cả các giá trị đầu ra.

Tôi không thấy bất kỳ lợi ích nào đối với hàm băm mà rõ ràng là không thể đạt được một số không gian đầu ra của nó và do đó, về mặt tính toán, không thể thể hiện giá trị đầu ra đó hoặc không thể biết liệu giá trị không gian đầu ra nhất định có thể truy cập được hay không.

Tôi có thể tưởng tượng các ứng dụng cho hàm băm có thể không đạt được một số đã biết các giá trị trong không gian đầu ra của chúng (ví dụ: một giá trị như vậy có thể được dành riêng làm chỉ báo của trường hợp đặc biệt). Mặt khác, chúng ta có thể dễ dàng xây dựng các giá trị băm như vậy từ các giá trị gốc tiêu chuẩn. Ví dụ: đối với hàm băm 256 bit không thể đạt được $0^{256}$, chúng ta có thể sử dụng (với các chuyển đổi thông thường giữa chuỗi bit và số nguyên) $M\mapsto(\operatorname{SHAKE128}(M,416)\bmod(2^{256}-1))+1$. Và trong thực tế, chúng tôi cũng có thể sử dụng bất kỳ hàm băm 256 bit tiêu chuẩn nào.

kelalaka avatar
lá cờ in
Không phải XOR 512-bit đầu tiên của đầu vào thành đầu ra của SHA3-512 là một cách dễ dàng hơn để đảm bảo tất cả phạm vi là không gian 512-bit sao?
fgrieu avatar
lá cờ ng
@kelalaka: nếu bạn đang đề xuất $H(m_0\mathbin\|m_1)=m_0\oplus\operatorname{SHA3-512}(m_0\mathbin\|m_1)$ với $m_0\in\{0,1\}^ {512}$, thì không, không có bằng chứng nào đạt đến tất cả giá trị đầu ra và điều đó rất có thể sai khi chúng tôi giới hạn ở các thông báo 512 bit. Nếu tôi hiểu đúng phép toán của [người thu phiếu thưởng](https://en.wikipedia.org/wiki/Coupon_collector%27s_problem), thì điều đó có thể xảy ra sau khi chúng tôi băm khoảng $2^{512+8,5}$ tin nhắn. Hàm _demontrably_ của tôi đạt đến tất cả các giá trị đầu ra, nhưng chúng ta cần giải một biến thể của bài toán DLP để đảo ngược nó.
kelalaka avatar
lá cờ in
Vâng, điều đó không chính xác, tôi nên nói x-oring tin nhắn thành 512 khối, sau đó x-or với hàm băm, vẫn không có bằng chứng, chỉ là mong đợi.
Điểm:2
lá cờ in

Đưa ra hàm băm H() và giá trị băm h nằm trong tên miền/phạm vi đầu ra của $H()$, bạn có thể xác định nếu $h$ có thể được sản xuất bởi $H()$ (tức là $h$ trong hình ảnh của $H()$)?

Nói chung là, bạn không thể nếu bạn xem xét $H$ phải là một hộp đen. Tuy nhiên, tôi sẽ ngạc nhiên nếu có những giá trị mà hàm băm như SHA-2/3 không thể đạt được, do cách chúng được xây dựng. Như trong phần Hỏi/Đáp mà tôi đã chỉ ra, cuối cùng, bạn sẽ muốn xem xét hoạt động bên trong của hàm băm.

Câu hỏi có thể được trả lời? Nó có mâu thuẫn với đặc tính kháng tiền định không?

Không trực tiếp. Tất nhiên, nó sẽ làm giảm tên miền, nhưng không đáng kể. Tuy nhiên, nó có thể đặt ra những nghi ngờ lớn về việc xây dựng hàm băm. Mọi người sẽ thử và phân tích lý do tại sao phân phối không hoàn hảo và tôi đoán họ sẽ sớm tìm thấy các vấn đề khác trừ khi hàm băm được thiết kế có chủ ý để loại bỏ các giá trị nhất định (ví dụ: "nếu đầu ra = 0 thì thực hiện một khối băm khác ").

Có bất kỳ lợi ích nào bạn có thể nghĩ đến đối với hàm băm có thuộc tính trên không (mà bạn có thể/không thể biết nếu $h$ có thể được tạo ra bởi hàm băm)?

Bạn có thể ví dụ sử dụng các giá trị đó để chỉ ra rằng đã xảy ra sự cố - nếu bạn bằng cách nào đó tìm được chúng. Chẳng hạn, bạn có thể nghĩ về các kênh bí mật bằng cách sử dụng các giá trị như vậy - nhưng lưu ý rằng với khả năng chống ảnh trước, bạn cũng có thể chỉ cần chọn một số từ tên miền chung.

Ví dụ, nếu bạn quản lý để tạo ra kết quả bỏ qua các giá trị nhất định áp dụng cho một chức năng chung thì tất nhiên bạn có thể đảm bảo rằng ai đó không bao giờ trúng xổ số (mặc dù, đối với xổ số thông thường, bạn có thể không cần nỗ lực). Thông thường, bạn chỉ lấy một phần đầu ra băm cho loại điều đó, vì vậy, ví dụ: bạn có thể đảm bảo rằng các bit ban đầu không bao giờ bằng 0 (nhưng lưu ý rằng các hàm băm đó sẽ không vượt qua được nhiều bộ thử nghiệm).

Với các cấu trúc thông thường, có thể khó ẩn các loại giá trị đặc biệt này khỏi các cấu trúc khác phân tích cấu trúc bên trong của hàm băm, đặc biệt là về lâu dài. Điều đó nói rằng, bạn có thể xem ví dụ: Dual_EC_DRBG để hiểu rằng bạn có thể làm những việc khá khó chịu với một thuật toán, đặc biệt là khi nói đến việc lựa chọn các hằng số.

lá cờ tr
Cảm ơn về thông tin bạn vừa nhập! Điều đó có chính xác không vì H là một hộp đen, tôi luôn có thể trả lời "có" do khả năng cao là tất cả các hình ảnh đều được ánh xạ? Sau đó, đưa ra một hàm băm nhân tạo với một số giá trị đã biết, nó sẽ không bao giờ xuất ra, tôi sẽ trả lời "có" nếu h không có trong các giá trị đó và "không" nếu không. Tôi luôn luôn có thể giành chiến thắng?
Maarten Bodewes avatar
lá cờ in
Không bởi vì nếu đó là hộp đen, bạn sẽ không thể biết giá trị nào sẽ bị loại khỏi đầu ra. Nói chung, bạn mong đợi một đầu ra băm được phân phối tốt, nhưng nếu bạn chỉ bỏ qua một số ít thì điều này là không đáng kể và không thể phát hiện được.

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