Điểm:2

Câu hỏi: Argon2, trạng thái bên trong và tính bảo mật của nó khi tạo khóa lớn hơn 256/512 bit

lá cờ pf

Giả sử tôi muốn sử dụng một mật mã có kích thước khóa lớn, chẳng hạn như ISAAC hỗ trợ khóa ogf 8192 bit.

Tôi có thể băm với sha-256 hoặc sha-512 và lặp lại cho đến khi đạt đến kích thước khóa nhưng tôi sẽ không nhận được 8192 bit bảo mật vì trạng thái bên trong của các hàm băm này được giới hạn ở 256 hoặc 512 bit.

Tôi có thể băm bằng XOF (Chức năng đầu ra có thể mở rộng) chẳng hạn như Skein, SHAKE, KangarooTwelve, Blake3 hoặc Blake2x nhưng một lần nữa, vấn đề là trạng thái bên trong nhỏ và dựa trên các lần lặp trong hàm nén, chúng không mang lại sự an toàn hơn 256/512 bit ngay cả khi đầu ra được chọn tùy ý.

Có thể sử dụng chức năng KDF chuyên biệt như Argon2 hoặc Scrypt.

Câu hỏi của tôi là cụ thể về Argon2.

Tài liệu về nó nói rằng nó chấp nhận đầu vào lớn cho thông báo, muối và kích thước tiêu hóa của nó có thể được chọn tùy ý.

Tôi đã biên dịch chương trình thời gian chạy argon2 để băm các tệp trong thiết bị đầu cuối, chẳng hạn như ảnh và tôi không thể thấy sự khác biệt về thời gian khi kích thước đầu ra nhỏ hoặc lớn.

$ thời gian con mèo ~/some_file | argon2-static 00000000 -d -t 2000000 -m 3 -p 1 -r -l 32 &>/dev/null

thực 0m6.334s
người dùng 0m6.329s
hệ thống 0m0.004s

$ thời gian con mèo ~/some_file | argon2-static 00000000 -d -t 2000000 -m 3 -p 1 -r -l 1024 &>/dev/null

thực 0m6.455s
người dùng 0m6.443s
hệ thống 0m0.008s

Cả hai kích thước đầu ra 32 byte (256 bit) và 1024 (8192 bit) đều có thời gian gần như bằng nhau khi băm bằng Argon2.

Điều này khiến tôi nghi ngờ.

Trạng thái bên trong của Argon2 có cùng kích thước đầu ra không? Hoặc có thể các lần lặp duy nhất của nó trên hàm băm?

Tôi hỏi điều này vì Argon2 sử dụng Blake2b làm hàm băm và nó có 512-bit trạng thái bên trong, không phải 8192 mà tôi muốn.

Tôi có được bảo mật 8192 bit không nếu một số đầu vào có entropy cao (bằng hoặc lớn hơn đầu ra) được xử lý theo kích thước đầu ra này trong Argon2?

Maarten Bodewes avatar
lá cờ in
Câu hỏi đặt ra là tại sao bạn muốn có nhiều hơn 256 bit bảo mật.
kelalaka avatar
lá cờ in
Và, nếu bạn có khóa 8192 bit ngẫu nhiên thống nhất thì bạn không cần bất kỳ KDF nào.Ngoài ra, hãy để $h_0 = SHA-256(yourRandom)$ hơn $h_i = SHA-256(yourRandom||h_{i-1})$ là giải pháp đơn giản để trộn chúng. Đối với Argon2, hãy đọc [bài báo](https://www.password-hashing.net/argon2-specs.pdf) và xem cách nó kết hợp tất cả.
Điểm:3
lá cờ cn

Phần lớn thời gian trong Argon2 được dành để lấp đầy vectơ (hoặc các vectơ) trong bộ nhớ và lặp lại nó. Đầu ra được tạo bằng cách băm khối cuối cùng. Nếu đầu ra dài hơn 512 bit, thì chỉ Blake2b được thực thi một vài lần. Điều này hoàn toàn không quan trọng về mặt thời gian so với các bước trước đó. Vì vậy, bạn không nhận thấy bất kỳ sự khác biệt thời gian.

Tôi muốn nói rằng Argon2 thực sự không thể đạt được bảo mật 8192 bit, chỉ có 512 bit của Blake2b. Tuy nhiên, điều này không thực sự phù hợp. Hiện tại, 256 bit được coi là an toàn, ngay cả khi máy tính lượng tử xuất hiện. Tôi nghĩ rằng điều đó sẽ không thay đổi trong một thời gian dài. Thời điểm mà bảo mật 512-bit không còn đủ nữa là điều mà không ai trong chúng ta sẽ thấy.

Trong trường hợp mật khẩu, dù sao chúng ta cũng không thể áp dụng các tiêu chuẩn bảo mật bit thông thường. Trừ khi mật khẩu được tạo ngẫu nhiên và sử dụng một lần, bảo mật bit của chúng không thể được đo lường một cách rõ ràng.

kelalaka avatar
lá cờ in
Vâng, đúng là người ta chỉ có thể coi đầu vào 512 bit của Blake2 để tấn công, tất nhiên, điều đó là vô nghĩa.

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