Điểm:3

Tại sao RSA không phải là hàm băm?

lá cờ lk

Giả định RSA nói rằng $(GenSP,F,SampleX)$ là một chiều. Vì vậy, nếu chúng ta khởi tạo một thể hiện của RSA $(n,e), (n,d)$ và khá quên khóa bí mật và SampleX được phân phối đồng đều trên $X, F = x^e \bmod N$ phải là một chiều.

Bây giờ người ta cũng biết rằng các hàm Injective ngụ ý khả năng chống va chạm, nhưng tất nhiên không phải là một chiều.

Cho đến nay, chúng ta đã có khả năng chống ảnh trước và chống va chạm. Và điện trở tiền ảnh thứ hai sẽ được cung cấp nếu chúng ta lấy $x$ chỉ từ $\{0,\ldots,n-1\}$.

Chúng tôi nói về RSA xác định, vì vậy không có quá trình ngẫu nhiên nào liên quan đến đệm ngẫu nhiên. Do đó F của chúng ta cũng là tất định.

Tui bỏ lỡ điều gì vậy?

Morrolan avatar
lá cờ ng
Một vấn đề đơn giản là chúng ta thường muốn các hàm băm của mình có một miền lớn vô hạn - hoặc ít nhất một miền đủ lớn để trở thành vô hạn cho các mục đích thực tế. RSA không cung cấp điều này, thay vào đó giới hạn các thông báo theo kích thước của mô-đun.
Morrolan avatar
lá cờ ng
Một vấn đề khác - ít kỹ thuật hơn - là bằng cách nào đó bạn cần thuyết phục người dùng về cặp `(e, N)` của bạn (cặp này sẽ phải được chuẩn hóa, nếu chúng tôi sử dụng RSA làm hàm băm), rằng bạn thực sự đã làm được vứt bỏ khóa riêng tương ứng, nhân tố hóa tương ứng của mô đun.
Mark avatar
lá cờ ng
RSA cũng là đồng hình theo mặc định, do đó, ít nhất nó sẽ là một mô hình tồi của một tiên tri ngẫu nhiên, như $H(a)H(b) = H(ab)$. Bạn có khả năng có thể "sửa" điều này thông qua phần đệm hoặc đơn giản là hàm băm được xây dựng có một số thuộc tính chống va chạm, nhưng không phải là một lời tiên tri ngẫu nhiên tốt (ví dụ: không có các thuộc tính giả ngẫu nhiên).
Điểm:3
lá cờ in

RSA là một cái bẫy-hoán vị, với cách thiết kế của bạn, bạn chỉ cần cung cấp RSA-HASH với những vấn đề này;

  • Miền giới hạn với hoán vị: các hàm băm mật mã, mặc dù chúng có thể băm kích thước tùy ý nhưng chúng có miền lớn hơn nhiều so với phạm vi của chúng; xem xét

    • SHA-256 trong khi nó có thể có kích thước đầu ra 256 bit thì phạm vi miền là $2^{64}$ chút ít.
    • SHA-3 trong khi nó có thể có kích thước đầu ra 256 bit trở lên thì phạm vi miền là $2^{128}$ chút ít.

    Mặc dù Keccak (SHA-3) sử dụng hoán vị, nhưng cuối cùng nó không phải là hoán vị vì nó sử dụng kích thước đầu vào lớn hơn $2^{128}$. Một hoán vị duy nhất có thể gây ra một số vấn đề.

    Mặt khác, tiền tố dưới dạng hàm băm có ít cách sử dụng, miễn là bạn không xem xét việc băm tệp hoặc chữ ký có kích thước mô-đun rất lớn là không thể với RSA-HASH.

  • Tiêu chuẩn: Giả sử NIST đã xuất bản hàm RSA-HASH-3 dưới dạng $H(m) = m^3 \bmod n$. Bây giờ, mọi người trong cộng đồng tiền điện tử sẽ tranh luận rằng trong khi xây dựng RSA-HASH-3, họ đã không phá hủy $p$$q$ và họ giữ $d$ như riêng tư. Không có gì đảm bảo rằng họ sẽ làm điều này hay không. Vì vậy, tin tưởng một cách ngây thơ rằng chúng đã bị xóa không phải là cách hoạt động của mật mã ( Bình luận của Moralan).

  • Chúng tôi hy vọng rằng các hàm băm có thể mô phỏng Oracles ngẫu nhiên và một số không thành công vì cuộc tấn công mở rộng chiều dài của chúng. Mặt khác, RSA-HASH khác xa với một lời tiên tri ngẫu nhiên. Thuộc tính nhân của RSA ngăn chặn điều này. Trong một Oracle ngẫu nhiên, chúng tôi không mong đợi một mối quan hệ chung giữa các đầu vào được đưa vào một số mối quan hệ giữa các đầu ra, tuy nhiên, RSA-HASH có nó $$RSA(m_1)RSA(m_2) = RSA(m_1 m_2)$$

  • Không gian đầu vào ngắn: Để giảm thời gian băm, bạn có thể muốn sử dụng $e=3$, sau đó với root khối tấn công tất cả các thông báo < $\sqrt[3]{N}$ có thể được dễ dàng. Tăng $e$ sẽ làm tăng chi phí băm. Hãy nhớ về nhu cầu sử dụng RSA 2048-bit.

  • hậu lượng tử: hiện tại mật mã khối và hàm băm đã an toàn trở lại thuật toán Grover. Chỉ cần sử dụng khóa 256 bit cho mật mã khối và sử dụng ít nhất hàm băm đầu ra 256 bit. Có một công trình cải tiến (Brassard et al.) cho các hàm băm giảm kích thước thành căn bậc ba ( thay vì căn bậc hai của Grover - tối ưu tiệm cận!), tuy nhiên, chi phí diện tích bằng chi phí, vì vậy có không có nguy hiểm ở đó.

    Mặt khác, RSA sẽ bị phá hủy sau khi thuật toán của Shor được xây dựng. Cho nên, RSA-HASH không an toàn sau lượng tử.

Bất kỳ sử dụng?: RSA-HASH có thể phục vụ như một hoán vị ngẫu nhiên tốt nếu kích thước mô-đun phù hợp với ứng dụng của bạn.

Tóm lại là: hoán vị, bảo mật với độ tối, tốc độ và không có hậu lượng tử không phải là lựa chọn tốt cho hàm băm mật mã.

Sử dụng Dòng SHA-2, SHAK của SHA-3, BLAKE2 (rất nhanh), BLAKE3 (rất nhanh), v.v. cho các ứng dụng của bạn.

lá cờ cn
"họ có phạm vi lớn hơn nhiều so với miền của họ" không, toàn bộ điểm của hàm băm là tên miền của nó (và do đó nhất thiết phải là phạm vi của nó) nhỏ hơn nhiều so với miền của nó. Sau đó, bạn sử dụng thuật ngữ "phạm vi miền" mà tôi chưa từng nghe đến. Những gì bạn đang nói đến là tên miền.
kelalaka avatar
lá cờ in
@Maeher vâng, có một lỗi ở đó. Cảm ơ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.