theo thứ tự:
- không xác định, nó có thể là bất kỳ mật mã khối nào (với kích thước khóa và khối đầu ra mong muốn);
- không xác định, nó có thể là bất kỳ hằng số nào có kích thước khối phù hợp;
- không được chỉ định, nó có thể là bất kỳ loại đệm nào phù hợp với kích thước khóa.
Davies-Meyer là một xây dựng đối với chức năng nén, không phải là thuật toán thực tế có thể được sử dụng ngay lập tức. Thông thường, các tham số này sẽ được mô tả cho một thuật toán cụ thể sử dụng cấu trúc Davies-Meyer.
Về nguyên tắc, chúng cũng có thể được để lại dưới dạng tham số cấu hình (tương tự như HMAC trong đó hàm băm là tham số cấu hình, ví dụ: HMAC-SHA-256). Tuy nhiên, đối với các hàm băm, điều này không phổ biến.
Một trong những công dụng của loại trừu tượng là có thể tạo bằng chứng cho chúng, không phụ thuộc vào mật mã khối được sử dụng - tất nhiên bạn phải giả định rằng mật mã khối không bị hỏng đối với trường hợp sử dụng cụ thể.
Đây là phần có liên quan của Bài viết trên Wikipedia về chức năng một chiều:
Hàm băm chỉ có thể được coi là an toàn nếu ít nhất
các điều kiện sau đây được đáp ứng:
- Mật mã khối không có thuộc tính đặc biệt để phân biệt nó với mật mã lý tưởng, chẳng hạn như khóa yếu hoặc khóa dẫn đến mã giống hệt hoặc
mã hóa liên quan (điểm cố định hoặc va chạm khóa).
- Kích thước băm kết quả là đủ lớn. Theo cuộc tấn công sinh nhật, mức độ bảo mật là 280 (thường được cho là không khả thi đối với
tính toán hôm nay)[cần dẫn nguồn] là mong muốn, do đó kích thước băm nên
ít nhất là 160 bit.
- Khối cuối cùng được đệm theo chiều dài phù hợp trước khi băm. (Xem cấu trúc MerkleâDamgÃ¥rd.) Việc đệm theo chiều dài thường được triển khai
và được xử lý nội bộ trong các hàm băm chuyên dụng như SHA-1, v.v.
Các công trình được trình bày dưới đây: Davies–Meyer,
MatyasâMeyerâOseas, MiyaguchiâPreneel và Hirose đã được chứng minh là
an toàn dưới [sự] phân tích hộp đen.
Để triển khai hàm băm cụ thể sử dụng Davies-Meyer, bạn có thể xem qua Họ hàm băm SHA-2. Lưu ý rằng SHA-2 không sử dụng đặt tên khóa mật mã; nó sử dụng một mật mã chuyên dụng dành riêng cho SHA-2. Chế độ đệm là đệm bit, nhưng nó có chỉ báo độ dài. IV được chỉ định riêng cho từng hàm băm, không thể bỏ sót chúng.