III. Mật mã cĩ khĩa cơng khai:
2. Phân loại các hàm băm mật mã:
Các hàm băm mật mã được phân thành 2 lớp: lớp các hàm băm khơng cĩ khĩa (unkeyed hash functions) và lớp các hàm băm cĩ khĩa (keyed hash functions). Các hàm băm khơng
khĩa chỉ cĩ duy nhất một đầu vào là thơng điệp (message) cần tính giá trị băm. Cịn các hàm băm cĩ khĩa nhận hai giá trị đầu vào: thơng điệp cần tính giá trị băm và khĩa bí mật để tiến hành cơng việc.
Ngồi ra người ta cịn phân loại hàm băm theo tính chất và chức năng, trong số các lớp hàm băm phân loại theo cách này, ta sẽ xem xét lớp hàm băm mà mã băm của chúng được dùng làm mã phát hiện thay đổi (modification detection codes – MDCs). Các hàm băm thuộc lớp này tạo ra các mã băm là hình ảnh đại diện (representative image) cho các chuỗi bit thơng điệp. MDCs là lớp con của lớp các hàm băm khơng cĩ khĩa. Lớp này lại tiếp tục được phân thành các lớp con nhỏ hơn, trong số các lớp con này, chúng ta sẽ xem xét chi tiết hai hàm băm sau:
Hàm băm một chiều (one-way hash functions – OWHFs) là hàm băm mang tính chất: với mọi mã băm biết trước, khơng thể tính tốn để tìm được chuỗi bit đầu vào cĩ mã băm bằng với mã băm đã cho.
Hàm băm kháng xung đột (collision resistant hash functions – CRHFs) là hàm băm mang tính chất: khơng thể tính tốn để tìm ra hai chuỗi bit cĩ cùng giá trị băm.
Ở đây ta hiểu “khơng thể tính tốn” theo nghĩa độ phức tạp tính tốn là trên đa thức (supper-polynomial), hoặc tính tốn địi hỏi nguồn tài nguyên (khơng gian lưu trữ) vượt quá khả năng cĩ thể cung cấp.
Các định nghĩa của hàm băm một chiều và hàm băm kháng xung đột sẽ được phát biểu trong phần tiếp theo.