của người gửi, sau đó một kẻ xâm nhập không thể giả mạo nội dung của một tin nhắn, y, mà
có giá trị băm tương tự như thông báo ban đầu.
Chúng ta hãy tự thuyết phục rằng một tổng kiểm tra đơn giản, chẳng hạn như kiểm tra Internet, sẽ làm cho một người nghèo hàm băm mật mã. Thay vì thực hiện 1s
bổ sung cho số học (như trong checksum Internet), chúng ta hãy tính toán một checksum
bằng cách xử lý từng nhân vật như một byte và thêm các byte với nhau sử dụng 4 byte
khối tại một thời điểm. Giả sử Bob nợ Alice 100,99 $ và gửi một IOU để Alice
bao gồm các chuỗi văn bản "IOU100.99BOB." Các đại diện ASCII (trong
ký hiệu thập lục phân) cho những lá thư này là 49, 4F, 55, 31, 30, 30, 2E, 39, 39,
42, 4F, 42.
Hình 8.8 (top) cho thấy tổng kiểm tra 4-byte cho thông điệp này là B2 C1
D2 AC. Một tin nhắn hơi khác nhau (và một tốn kém hơn cho Bob) được
thể hiện trong nửa dưới của hình 8.8. Các thông điệp "IOU100.99BOB" và
"IOU900.19BOB" có samechecksum. Như vậy, thuật toán kiểm tra đơn giản này vi phạm các yêu cầu trên. Với các dữ liệu ban đầu, nó là đơn giản để tìm
một tập hợp các dữ liệu với cùng một checksum. Rõ ràng, cho các mục đích an ninh, chúng tôi
sẽ cần một hàm băm mạnh hơn một checksum.
MD5 băm thuật toán của Ron Rivest [RFC 1321] là sử dụng rộng rãi hiện nay. Nó
sẽ tính toán một băm 128-bit trong một quy trình bốn bước bao gồm một bước đệm
(thêm một tiếp theo đủ số không do đó độ dài của thông điệp đáp ứng
các điều kiện nhất định), một bước append (phụ thêm một đại diện 64-bit của độ dài tin nhắn trước khi đệm), một khởi tạo của một ắc, và một bước cuối cùng vòng lặp, trong đó khối 16 chữ của tin nhắn được xử lý (đọc sai) trong bốn
viên đạn. Đối với một mô tả của MD5 (bao gồm cả việc thực hiện mã nguồn C) xem
[RFC 1321].
đang được dịch, vui lòng đợi..
