Computer >> Máy Tính >  >> Lập trình >> Lập trình

Thuật toán MD5 hoạt động như thế nào?

Có các bước sau được thực hiện để tính toán thông báo tóm tắt thông báo của họ như sau -

  • Bước 1 - Nối các bit đệm - Thông báo được tiếp tục hoặc được đệm theo phương thức sao cho tổng độ dài tính bằng bit của nó đồng dư với 448 modulo 512. Thao tác này được thực hiện liên tục ngay cả khi độ dài của thông báo tính bằng bit ban đầu đồng dư với 448 modulo 512. 448 + 64 =512, do đó thông báo được đệm sao cho độ dài của nó bây giờ là 64 bit ít hơn bội số nguyên của 512.

  • Bước 2 - Chiều dài nối - Mô tả 64 bit về độ dài tính bằng bit của thông điệp gốc M (trước khi các bit đệm được chèn) được thêm vào kết quả của bước 1. Nếu độ dài của thông báo gốc cao hơn 264 =184 467 440 73 709 551 616, do đó chỉ sử dụng 64 bit bậc thấp có độ dài của thông điệp M.

    Do đó, trường bao gồm độ dài của thông điệp gốc M modulo 264. Các bit này được thêm vào dưới dạng hai từ 32 bit và thêm từ bậc thấp (ít quan trọng nhất) trước. Kết quả của bước 1 và bước 2 là một thông báo có độ dài bằng các bit là bội số của 512 bit.

  • Bước 3 - Khởi tạo MD Buffer - Bộ đệm 128 bit có thể được sử dụng để lưu giữ kết quả trung gian và cuối cùng của thuật toán băm MD5. Một bộ đệm bốn từ (A, B, C và D) có thể được sử dụng để đánh giá thông báo tóm tắt. Do đó, mỗi A, B, C, D là một thanh ghi 32 bit.

    Các thanh ghi này đang khởi động đến các giá trị sau trong hệ thập lục phân, byte thứ tự thấp trước -

    Word A:01 23 45 67

    Word B:89 ab cd ef

    Word C:fe dc ba 98

    Word D:76 54 32 10

  • Bước 4 - Xử lý tin nhắn trong khối 512 bit (16 từ) - Một chức năng nén bao gồm bốn vòng xử lý. Mỗi vòng tạo ra một đầu vào là khối 512 bit hiện tại đang được xử lý (Y q ) và giá trị bộ đệm 128 bit ABCD và cập nhật phần tăng tốc của bộ đệm.

    Nó có thể mô tả bốn chức năng phụ trợ mà mỗi chức năng tạo ra dưới dạng đầu vào ba từ 32 bit và tạo ra dưới dạng đầu ra một từ 32 bit.

    F (X, Y, Z) =XY v not (X) Z

    G (X, Y, Z) =XZ v Y not (Z)

    H (X, Y, Z) =X xor Y xor Z

    Tôi (X, Y, Z) =Y xor (X v not (Z))

    Ở mỗi vị trí bit, F hoạt động như một điều kiện:Nếu X thì Y khác Z. Hàm F có thể được biểu diễn bằng cách sử dụng + thay vì v vì XY chứ không phải X (Z) sẽ không bao giờ có 1 ở vị trí bit tương tự.

  • Bước 5 - Đầu ra - Bản tóm tắt thông báo đã tạo ra một đầu ra bao gồm A, B, C, D. Đầu ra từ vòng cuối cùng là kết quả băm 128 bit hoặc bản tóm tắt thông báo mà nó có thể nhận được sau khi nó có thể xử lý dần tất cả t khối 512 bit của thông báo .