Input : Thông điệp (văn bản) có độ dài tùy ý.
Output : Bản băm, đại diện cho thông điệp gốc, đồ dài cố định 128 bit.
Giả sử đầu vào là một xâu a có độ dài b bit (b có thể bằng 0)
Bước 1: Khởi tạo các thanh ghi, Có 4 thanh ghi được sử dụng để tính toán nhằm đưa ra các đoạn mã: A, B, C, D.
Bản tóm lược của thông điệp được xây dựng như sự kết nối của các thanh ghi. Mỗi thanh ghi có độ dài 32 bit. Các thanh ghi này được khởi tạo giá trị hecxa.
wordA := 67 45 23 01
word B := EF CD AB 89
word C := 98 BA DC FE
word D := 10 32 54 76
Bước 2 :
Xử lý thông điệp a trong 16 khối word, có nghĩa là xử lý cùng một lúc 16 word =512 bit (chia mảng M thành các khối 512 bit, đưa từng khối 512 bit đó vào mảng T[j]). Mỗi lần xử lý một khối 512 bit. Lặp lại N/16 lần.
Bước 3: Thực hiện bốn vòng băm
Các vòng 1, 2, 3 và 4 dùng tương ứng ba hàm F, G, H và I. Mỗi hàm này là một hàm boolean tính theo bit. Chúng được xác định như sau:
F(X, Y, Z) = (X Y) (( X) Z)
G(X, Y, Z) = (X Z) (Y ( Z))
H(X, Y, Z) = X Y Z
I(X, Y, Z) = Y (X ( Z)
» Tin mới nhất:
» Các tin khác: