Điểm:-1

Đệm và thuật toán MD5

lá cờ cn

Trong MD5, nếu M=100, làm thế nào chúng ta có thể thực hiện đệm trên nó và cần bao nhiêu khối trong mỗi vòng?

Đây là những câu hỏi chung để hiểu phần đệm và vòng.

Maarten Bodewes avatar
lá cờ in
Vui lòng mô tả những gì bạn đã cố gắng tự giải quyết câu hỏi này. Có những mô tả chung về MD5 ở khắp mọi nơi. Chỉ sao chép nội dung từ những mô tả này là không hữu ích.
Maarten Bodewes avatar
lá cờ in
Lưu ý rằng khối và vòng không giống nhau. Bạn dường như hỏi về các khối, trong khi bạn dường như đang tìm kiếm thông tin về các vòng.
lá cờ cn
thực sự tôi đã tìm kiếm rất nhiều nhưng không tìm thấy bất kỳ câu trả lời hữu ích nào, đó là một câu hỏi đố vui trong quá khứ và tôi đang cố gắng tìm câu trả lời..
lá cờ cn
tôi đang cố gắng hiểu toàn bộ quá trình vòng MD5 và khối được tạo trên tin nhắn (như, có bao nhiêu khối sẽ được tạo nếu độ dài tin nhắn là 100 bit hoặc 200 bit..
lá cờ cn
cũng như cách các vòng hoạt động trên các khối này
Patriot avatar
lá cờ cn
@Adam Smith Một cách tiếp cận là đi vào chi tiết về những gì bạn hiểu và sau đó mô tả những gì bạn gặp khó khăn trong việc hiểu. Sau đó, cố gắng xác định câu hỏi của bạn.Như người điều hành đã nói, vui lòng mô tả những gì bạn đã làm để trả lời câu hỏi. Bạn chắc chắn sẽ nhận được phản hồi tốt.
Điểm:2
lá cờ fr

Hầu hết các hàm băm mật mã xử lý dữ liệu theo khối nhiều byte, vì điều này hiệu quả hơn. Đối với các thuật toán sử dụng các từ 32 bit, như MD5 và SHA-256, chúng thường có kích thước 64 byte; đối với các thuật toán sử dụng các từ 64 bit, như SHA-512 hoặc BLAKE2b, nó thường là các khối 128 byte; và SHA-3 vẫn khác.

Mỗi hàm băm này chứa một hàm nén, lấy trạng thái băm trước đó (hoặc trạng thái ban đầu ở đầu) và một khối dữ liệu rồi kết hợp chúng thành trạng thái mới. Chức năng nén này chứa một số vòng nhất định; cùng một số vòng được thực hiện trên mỗi khối. Sau đó, sau khi khối cuối cùng được xử lý, giá trị băm được trích xuất từ ​​trạng thái, trong nhiều trường hợp chỉ là bản sao của tất cả hoặc một phần dữ liệu trạng thái.

Trong các hàm Merkle-DÃ¥mgard, như MD5, SHA-256 và SHA-512, phần đệm được thực hiện với hai phần. Đầu tiên, độ dài của dữ liệu theo bit được tính toán. Trong các hàm 32 bit như MD5 và SHA-256, đây thường là giá trị 64 bit (8 byte); trong các hàm 64-bit, nó thường là giá trị 128-bit (16-byte). Dữ liệu được đệm sao cho một bit 1 được thêm vào, sau đó bao nhiêu bit 0 cần thiết để chừa chính xác khoảng trống cho độ dài. Vì vậy, đối với MD5 hoặc SHA-256, một thông báo 55 byte sẽ có một bit 1, bảy bit 0 và sau đó là độ dài. Tuy nhiên, một thông báo 56 byte sẽ có một bit 1, sáu mươi ba bit 0 để đệm khối, sau đó là bốn trăm bốn mươi tám bit 0 khác để đệm khối tiếp theo và sau đó là độ dài, vì không có khoảng trống cho cả bit 1 và độ dài trong khối hiện tại. Các thuật toán băm khác nhau đệm khác nhau; SHA-3 và BLAKE2b đều sử dụng các kỹ thuật khác với kỹ thuật này.

Đối với các vòng, có ba loại vòng khác nhau mà chúng ta thường nói đến khi xử lý một khối trong hàm nén. Có các vòng, chẳng hạn như trong MD5 và BLAKE2b, trong đó chúng tôi xử lý từng từ thông báo một lần trong mỗi vòng; MD5 có bốn vòng như vậy và BLAKE2b có 12. Ngoài ra còn có các thuật toán, như SHA-256 và SHA-512, trong đó các từ thông báo trong khối được mở rộng thành một chuỗi gồm nhiều từ (lần lượt là 64 và 80) và mỗi vòng xử lý một trong những từ mở rộng này. Trong SHA-3, chúng tôi hoạt động trên toàn bộ trạng thái với dữ liệu đã được XOR và mỗi vòng hoạt động trên toàn bộ trạng thái.

Trên thực tế, hầu như không ai sử dụng các thông báo không phải là số byte nguyên vẹn vì chúng có xu hướng bất tiện khi làm việc trên phần cứng thực. Nhưng đối với MD5 hoặc SHA-256, một thông báo 100 bit sẽ được đệm bằng 1 bit, ba trăm bốn mươi bảy bit 0 (để tạo thành 448 bit) và sau đó độ dài 64 bit sẽ được thêm vào để lấp đầy khối cuối cùng ( 512 bit hoặc 64 byte).

Trong khi bạn hỏi cụ thể về MD5, tôi cũng đã đề cập đến một số thuật toán khác ở đây vì các thuật toán khác nhau theo nhiều cách quan trọng và MD5 không còn được sử dụng nữa, vì vậy cách thức hoạt động của các thuật toán an toàn hơn sẽ khá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.