Điểm:0

Việc sử dụng HMAC-SHA256(key, counter) để chỉ cung cấp Pad có dễ bị tấn công bởi Bruteforce không?

lá cờ cn
ciphertext1 = hmac-sha256(key, counter1) â (plaintext1 với plaintext1 sha1 hash)
ciphertext2 = hmac-sha256(key, counter2) â (plaintext2 với plaintext2 sha1 hash)
ciphertext3 = hmac-sha256(key ,counter3) â (bản rõ3 với hàm băm sha1 của bản rõ3)
.
.
.

Lưu ý: counterN đang tăng trong khi (văn bản gốcN với hàm băm sha1 văn bản gốc) dài hơn hmac-sha256(key, counterN). Vì vậy, phải mất một thời gian để tiếp tục chức năng hmac-sha256 với bộ đếm tăng

Giả sử Eve biết bộ đếm và bản mã.Eve có thể làm gì khác ngoài bruteforce để tìm chìa khóa không? Việc ẩn bộ đếm từ Eve có cần thiết không? Hay Eve có thể phá mật mã này mà không cần chìa khóa không? Giới hạn sử dụng của thuật toán này để tiếp tục sử dụng cùng một khóa cho hmac-sha256 là bao nhiêu?

Lưu ý-2: Tôi không phải là nhà mật mã học. Nó chỉ là sự tò mò

Lưu ý-3: độ dài khóa là 256 bit

kelalaka avatar
lá cờ in
Tại sao bạn mã hóa bằng HMAC? nó sẽ chậm hơn nhiều so với việc sử dụng KMAC hoặc BLAKE2b làm MAC được khóa... dường như bạn chỉ sử dụng HMAC làm chế độ CTR. Thay vào đó, bạn có thể sử dụng [Băm theo cách này](https://crypto.stackexchange.com/q/1656/18298)
lá cờ cn
Vâng, có vẻ như bạn đúng về tốc độ. Và tất nhiên trong liên kết, phần "AES đã được phân tích rộng rãi hơn nhiều" là khó hiểu. Nhưng phần này rõ ràng là đúng. Tôi nghĩ tôi nên học trên BLAKE hoặc KMAC. Cảm ơn bạn!
Maarten Bodewes avatar
lá cờ in
Tôi sẽ không sử dụng SHA-1 theo cách này. Nếu kẻ tấn công biết bản rõ và hàm băm, họ có thể thực hiện một cuộc tấn công lật bit. Vì vậy, tôi đoán câu trả lời là không. Thay vào đó, bạn có thể thay thế SHA-1 bằng HMAC over counter + ciphertext. Tôi cũng không chắc rằng thuật toán được mô tả tốt, do bộ đếm được sử dụng vừa là nonce vừa để mã hóa nhiều thông điệp hơn, nhưng tôi cho rằng đó là một vấn đề với mô tả hơn là mật mã.
lá cờ cn
Vâng... Bạn nói đúng.Vì vậy, tôi có thể nói "hmac-sha256(key, counter) â (văn bản gốc với hmac-sha1(văn bản gốc, có thể_another_key))" phải không? Và có lẽ tôi đã không mô tả tốt nhưng tôi không biết tôi đã mô tả khó hiểu ở đâu... Nếu phần "với" gây nhầm lẫn, ý tôi là đặt khoảng trắng giữa văn bản gốc và kết quả hmac-sha1, sau đó xor nó với kết quả hmac-sha256
lá cờ cn
Tôi thật ngu ngốc :p Phần "hmac-sha1(plaintext, Maybe_another_key)" là không cần thiết. Và tôi quyết định sử dụng cái này: "ciphertext1 = blake3(counter, key) â plaintext" và "hash = blake3(ciphertext1, another_key)" gửi ciphertext1 và hash. Cảm ơn bạn Maarten và kelalaka. Tôi nghĩ rằng tôi đã làm bây giờ đúng không? (xin lôi vi đa lam phiê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.