Hàm băm mật mã là một thủ tục tất định có đầu vào là khối dữ liệu bất kỳ và trả về một xâu bit có độ dài cố định, gọi là giá trị băm (mật mã), mà bất kỳ sự thay đổi vô tình hay các ý trên dữ liệu sẽ thay đổi giá trị băm. Dữ liệu đem mã hóa thường được gọi là thông điệp (message), và giá trị băm đôi khi còn được gọi là tóm lược thông điệp (message digest) hay giá trị tóm lược (digest).
Hàm băm mật mã lý tưởng có 4 tính chất chính sau:
• dễ dàng tính giá trị băm với bất kỳ thông điệp cho trước nào, • không thể tìm được một thông điệp từ một giá trị băm cho trước,
• không thể sửa được một thông điệp mà không làm thay đổi giá trị băm của nó, • không thể tìm ra 2 thông điệp khác nhau mà có cùng giá trị băm.
Hàm băm mật mã có rất nhiều ứng dụng trong an toàn thông tin, nhất là cho
Tìm Hiểu Thuật Toán MD5 Và Ứng Dụng Trong Chữ Ký Điện Tử
chữ ký điện tử (Digital Signatures), mã xác thực thông điệp (MACs – Message Authentication Codes), và một số dạng xác thực khác. Chúng cũng có thể sử dụng như các hàm băm thông thường, để đánh chỉ số dữ liệu trong bảng băm: như điểm chỉ, để nhận diện dữ liệu lặp hay xác định tệp dữ liệu duy nhất: hay như checksums để nhận biết sự thay đổi dữ liệu. Thật vậy, trong lĩnh vực an toàn thông tin, giá trị băm mật mã đôi khi được gọi điểm chỉ (số), checksums, hay giá trị băm, dù rằng tất cả các thuật ngữ này chỉ đại diện về mặt chức năng nhưng các tính