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?