Điểm:5

Khai thác ngẫu nhiên HKDF - muối hay không muối?

lá cờ es

Theo giấy HKDF, việc sử dụng muối phục vụ hai mục đích: tách miền và trích xuất ngẫu nhiên.

Câu hỏi này chỉ là về sự cần thiết của muối cho mục đích khai thác ngẫu nhiên.

Các giấy HKDF Những trạng thái:

một giá trị muối (tức là, một khóa ngẫu nhiên nhưng không bí mật) ... là điều cần thiết để có được các trình trích xuất chung và KDF có thể trích xuất tính ngẫu nhiên từ các nguồn tùy ý với đủ cao Sự hỗn loạn.

Các Trích xuất ngẫu nhiên và dẫn xuất khóa paper (được liên kết bởi HKDF paper) nêu rõ:

Ngoài ra, giả định về tính ngẫu nhiên "đơn nguyên" trên một (unkeyed) chẳng hạn như SHA-1 không phù hợp với cài đặt của khai thác ngẫu nhiên như không có chức năng duy nhất (ngay cả khi hoàn toàn ngẫu nhiên) có thể trích xuất một phân phối gần như thống nhất từ ​​tùy ý phân phối đầu vào entropy cao. Điều này là như vậy, vì một khi chức năng được cố định (ngay cả khi các giá trị hoàn toàn ngẫu nhiên) thì có phân phối đầu vào entropy cao sẽ được ánh xạ tới các tập hợp con nhỏ của đầu ra. Do đó, cách tiếp cận khả thi để khai thác ngẫu nhiên là xem xét một họ (hoặc tập hợp) các hàm được lập chỉ mục bởi một tập hợp của các phím. Khi một ứng dụng yêu cầu băm một đầu vào cho mục đích trích xuất tính ngẫu nhiên, sau đó là một yếu tố ngẫu nhiên (tức là, một chức năng) từ họ này được chọn và chức năng được áp dụng cho đầu vào đã cho. Mặc dù có thể có các phân phối đầu vào cụ thể tương tác xấu với các chức năng cụ thể trong gia đình, một gia đình trích xuất ngẫu nhiên sẽ khiến "sự kiện xấu" này xảy ra với xác suất rất nhỏ.

Câu hỏi cuối cùng là làm thế nào để tạo ra các khóa đã biết ngẫu nhiên được sử dụng bởi vắt. Về mặt kỹ thuật, điều này không khó, vì các bên có thể tạo ra ngẫu nhiên thích hợp, nhưng các chi tiết chính xác phụ thuộc vào đăng kí.Ví dụ, trong trao đổi khóa DH đã thảo luận trước đó, các bên trao đổi trong các giá trị được chọn ngẫu nhiên rõ ràng, đó là sau đó kết hợp để tạo ra một khóa duy nhất [Muối] cho gia đình vắt (ví dụ: HMAC-SHA1).

Các giấy HKDF Những trạng thái:

gia đình Merkle-Damgard [được sử dụng trong thiết kế của nhiều thuật toán băm phổ biến như MD5, SHA-1 và SHA-2] được xây dựng một cách ngẫu nhiên chức năng nén là không phải là một công cụ trích xuất thống kê tốt... đầu ra của họ đó trên bất kỳ bản phân phối nào mà khối đầu vào cuối cùng được cố định không thống nhất về mặt thống kê)

Sau đó, nó lặp lại quan điểm được đưa ra trong Trích xuất ngẫu nhiên và dẫn xuất khóa giấy:

Như chúng ta đã nhấn mạnh trong các phần trước trình trích xuất chung, tức là, những người làm việc trên các nguồn entropy tối thiểu cao tùy ý, cần phải được ngẫu nhiên hóa thông qua một khóa (hoặc âsaltâ) ngẫu nhiên, nhưng không nhất thiết là bí mật. Đặc biệt, ví dụ sau Bổ đề 2 cho thấy rằng Cho mọi trình trích xuất xác định có một nguồn entropy cao mà đầu ra không đồng nhất.

Mâu thuẫn với những tuyên bố này, tôi biết về một triển khai ECDH sử dụng hàm băm Keccak-256 trên phần tử nhóm EC bí mật được chia sẻ không có muối, nhưng có lẽ điều này là hợp lý hoặc A) với lý do việc lựa chọn hàm băm xây dựng bọt biển làm giảm bớt lo ngại ảnh hưởng đến giá trị băm của họ Merkle-Damgard, hoặc B) với lý do rằng biểu diễn điểm nén EC đủ ngẫu nhiên đồng nhất (so với tính đồng nhất về tính ngẫu nhiên của bí mật được chia sẻ trong DH không phải EC).

Trong trường hợp nào thì muối cần thiết? (đối với loại tài liệu khóa đầu vào và đối với loại hàm HMAC-Hash nào).

Có phải những bài báo này đã lỗi thời và những lo ngại mà các bài báo này nêu ra về việc sử dụng muối có được giảm bớt ở bất kỳ mức độ nào thông qua nghiên cứu kỹ lưỡng hơn về bản chất của các hàm băm hiện đại không?

kelalaka avatar
lá cờ in
[Mức giảm bảo mật tiêu chuẩn cho HKDF áp dụng cho một đối thủ có thể truy vấn HKDF-Mở rộng cho nhiều chuỗi thông tin một cách thích ứng, với định lý được tham số hóa theo số lượng truy vấn, vì vậy mục đích sử dụng được đề xuất của bạn hoàn toàn phù hợp với mục đích sử dụng HKDF đã được nghiên cứu và dự kiến.Điều này áp dụng cho dù bạn có sử dụng muối hay không.](https://crypto.stackexchange.com/a/59070/18298)
Điểm:1
lá cờ cn

Thuật ngữ là quan trọng ở đây. Mục đích chính của muối mật mã là bảo mật mật khẩu trong quá trình sử dụng lại và tránh tính toán trước hàm băm. Vì vậy, có, điều đó cung cấp sự tách biệt miền của bạn. Nhưng câu hỏi của bạn là về trích xuất ngẫu nhiên từ các nguồn tùy ý, tức là bao gồm cả thiết bị.

  1. SP800 90B của NIST "Đề xuất cho các nguồn Entropy được sử dụng để tạo bit ngẫu nhiên" không đưa ra khuyến nghị cụ thể nào về loại trình trích xuất hoặc cấu hình nào phải được sử dụng. Bạn có thể sử dụng MD5 như được đề xuất trong bài báo đầu tiên của mình.Hoặc cuộn loại kỳ lạ của riêng bạn miễn là bạn tính toán entropy đầu ra theo độ lệch của $< 2^{-64}$.

  2. Một loại muối có thể được công khai, do đó nó có thể được tái sử dụng như đã biết. Hãy nhớ rằng bạn không bảo mật mật khẩu mà trích xuất từ ​​​​các nguồn entropy cung cấp (phải thừa nhận là không đồng nhất) nhưng luôn là nguồn ngẫu nhiên. Do đó, yêu cầu ướp muối trở nên dư thừa bởi dòng entropy đầu vào.

  3. Tôi không chấp nhận rằng việc sửa khối cuối cùng thành kiến ​​trúc Merkle-Damgard ngụ ý rằng cần phải thêm muối và HKDF. Có, họ chứng minh tính không đồng nhất của đầu ra tiếp theo, nhưng đó là một kịch bản tấn công theo quan điểm của tôi. Và nếu một kẻ thù có thể đưa một khối toàn số 0 vào máy trích xuất của bạn, thì bạn cần bảo vệ căn phòng tốt hơn. Phần đệm đơn giản được phục vụ cho phép tính entropy I/O (thường là bổ đề Hàm băm còn lại). Bài báo của bạn thực sự nói lên nhiều điều, thúc đẩy lập luận về tính không thể phân biệt bằng máy tính.

  4. TRNG thương mại không ngẫu nhiên muối cụ thể. Bất kỳ loại muối nào cũng sẽ được tái sử dụng trong quá trình sản xuất.

  5. Về mặt triết học, hầu như tất cả các trình trích xuất ngẫu nhiên đều có một muối nhúng trong các vectơ khởi tạo của chúng. Nhìn vào khối số lớn trong triển khai SHA2. Hoặc một ma trận Toeplitz.

Vì vậy, tôi đồng tình với nhận xét của kelalaka cho bạn. Không cần muối.

knaccc avatar
lá cờ es
Tôi nghĩ rằng về cơ bản, bạn đang nói rằng bạn không đồng ý với tuyên bố của bài báo rằng "có các phân phối đầu vào entropy cao sẽ được ánh xạ tới các tập hợp con đầu ra nhỏ" khi sử dụng hàm băm hiện đại. Điều này có ý nghĩa trực quan, ở chỗ nó gần giống với việc tìm kiếm các xung đột trong hàm băm bằng cách can thiệp vào nguồn entropy cao.
Paul Uszak avatar
lá cờ cn
@knaccc Tôi đoán vậy. Bạn đã trích dẫn ba ví dụ khác nhau (hai bài báo của bạn và kinh nghiệm cá nhân của bạn về ECDH). Thường có sự khác biệt giữa các phương pháp tiếp cận toán học/học thuật và các trình trích xuất TRNG trong thế giới thự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.