Điểm:0

Thuật toán SHA-256 TableSalt của tôi có cho đi muối hạt không?

lá cờ cn

thiết lập

Tôi có một bảng giá trị mà tôi cần tính toán băm muối cho mỗi bảng-tế bào giá trị. Hơn nữa, tôi cần muối cho mỗi ô trong bảng duy nhấtkhông thể đoán trước. (Tôi có thể giải thích điều gì thúc đẩy nhu cầu này sau, nhưng bây giờ tôi không muốn sao nhãng khỏi phần trình bày vấn đề.)

Bây giờ tôi không muốn thêm một cột bổ sung cho mỗi cột hiện có trong một bảng chỉ để lưu trữ loại muối trên mỗi ô duy nhất này. Vì vậy, một chiến lược đơn giản mà tôi nghĩ đến là trước tiên hãy tạo một chuỗi 32 byte ngẫu nhiên, bí mật, an toàn cho toàn bộ bảng, gọi nó là R_32, sau đó đối với bất kỳ ô cụ thể nào, hãy tính muối của nó là SHA-256 của R_32 nối với tọa độ hàng/cột của ô. Trong mã giả này trông giống như

tableSalt(row, col) = SHA_256( R_32 + row + col )

ở đâu + ở đây được hiểu là nối chuỗi byte, không phải phép cộng. (Tọa độ hàng/cột được biểu diễn dưới dạng mỗi giá trị 8 byte.)

Câu hỏi

Trong ứng dụng của tôi, điều quan trọng là hàm băm hạt giống bí mật R_32 ở trên không thể thiết kế ngược, bất kể có bao nhiêu muối tế bào khác nhau từ cùng một bảng được biết đến. Là muối ăn thủ tục trên an toàn trong khía cạnh này?

bk2204 avatar
lá cờ fr
Tôi sẽ sử dụng HMAC trong trường hợp này để tính toán muối và sau đó sử dụng muối làm khóa cho HMAC thứ hai để tính toán hàm băm có muối của bạn. Điều đó chắc chắn sẽ an toàn và nó sử dụng các kỹ thuật tiêu chuẩn hơn sẽ dễ kiểm tra hơn.
Babak Farhang avatar
lá cờ cn
Mối quan tâm của tôi thực sự nằm ở bất kỳ điểm yếu nào đã biết trong SHA-256 (độ lệch so với hàm băm mật mã *lý tưởng*) khi được sử dụng với các phần bổ sung 16 byte, độ rộng cố định, entropy thấp cho hạt giống ở trên. Chính điều đó, điều đó làm tôi lo lắng.
Meir Maor avatar
lá cờ in
Điều đó có thể ổn, nhưng HMAC tốt hơn, nó sẽ đảm bảo quá trình trộn diễn ra đầy đủ sau khi thêm các chất bổ sung, khiến cho các loại muối khác nhau có thể có liên quan theo cách có vấn đề. Ngoài ra SHA3 tốt hơn về mặt này.
Điểm:0
lá cờ in

Nó có an toàn không? Có, vì trong thiết lập cơ bản này được sử dụng ở nơi khác và tôi không biết về bất kỳ cuộc tấn công thực tế nào. Tuy nhiên SHA256 không phải là lựa chọn tốt nhất. Đó là cấu trúc cơ bản không trộn lẫn trong hậu tố cũng như chúng ta có thể muốn. Cấu trúc HMAC hoặc đơn giản là sử dụng SHA3 với cấu trúc bọt biển sẽ tốt hơn nhưng ngay cả như đã viết, tôi không tin rằng các muối sẽ liên quan theo kiểu có thể khai thác được.

Babak Farhang avatar
lá cờ cn
Cảm ơn bạn vì câu trả lời. Tôi không có đủ điểm nghiệp chướng để đánh dấu câu trả lời của bạn. (Hơi lạ, vì đó là câu hỏi *của tôi* và tôi đã được phép đăng nó :) Bạn đề cập đến "cấu trúc bọt biển" này là gì? Ngoài ra, với mục đích "trộn", có nhiều lợi thế trong việc lồng tính toán, như trong Hash(Hash(content + row) + column)) ?
Meir Maor avatar
lá cờ in
Bạn có thể đánh dấu là đã được phê duyệt. với một tấm séc ngay cả khi bạn không thể upvote. Việc lồng nhau có nghĩa là áp dụng hàm băm đầy đủ sau khi thêm hàm băm phần entropy thấp (hàm băm (hạt chính + hàng + cột)). điều này đặc biệt hữu ích cho các cấu trúc damgard của merkel. Nhưng SHA3 có lẽ không cần thiết: https://en.m.wikipedia.org/wiki/Sponge_function
Babak Farhang avatar
lá cờ cn
Cảm ơn rất nhiều về liên kết và gợi ý về khả năng đánh dấu câu trả lời kết thúc. Re *hash(hash(master seed+row+column))* thay vì *hash(hash(master_seed + row) + column)* Đó có phải là lỗi đánh máy không? Vì tôi luôn nghĩ rằng hàm băm của một hàm băm không an toàn hơn hàm băm ban đầu.
Meir Maor avatar
lá cờ in
Nó không tương đương vì nó trộn lẫn hạt giống entropy cao kỹ lưỡng hơn. nhưng những gì tôi đã viết trên thực tế không "đúng"/tốt nhất nó phải giống như hmac. hàm băm (hạt giống + hàm băm (hạt giống + vị trí)). Nhưng thực sự vì tôi không thể thực sự tấn công ngay cả công thức ban đầu của bạn nên những cải tiến này có thể không cần thiết.

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