Sử dụng cho các nguyên thủy mật mã khác

Một phần của tài liệu chữ kí điện tữ mã hóa md5 (Trang 32)

Các hàm băm có thể được dùng để xây dựng nguyên thủy mật mã khác. Tuy nhiên, để những nguyên thủy mật mã này được an toàn, thì cần phải chú ý xây dựng chúng theo đúng nguyên lý.

Mã xác thực thông điêp (MACs) thường được xây dựng từ hàm băm. HMAC cũng dựa vào MAC.

Cũng như thuật toán mã khối có thể được dùng để xây dựng hàm băm, hàm băm có thể được sử dụng để xây dựng các thuật toán mã khối. Cấu trúc Luby-Rackoff sử dụng các hàm băm xây dựng mã khối có thể chứng minh được an toàn nếu hàm băm mà nó dựa vào là an toàn. Ngoài ra, có nhiều hàm băm (bao gồm cả các hàm băm SHA) được xây dựng bằng cách sử dụng một thuật toán mã khối mục đích đặc biệt theo cấu trúc Davies-Meyer hoặc cấu trúc khác mã khối đó cũng có thể được sử dụng trong một chế độ hoạt động thông thường, mà không có sự đảm bảo an toàn tương tự

Bộ sinh số giả ngẫu nhiên (PRNGs) có thể được xây dựng dựa vào hàm băm. Điều này được thực hiện bằng cách kết hợp một mầm ngẫu nhiên (bí mật) với một bộ đếm và lấy giá trị băm của nó.

Thuật toán mã dòng (tream cipher) có thể được xây dựng dựa vào các hàm băm. Thường điều này được thực hiện bằng cách: đầu tiên, xây dựng một Bộ sinh số số giả ngẫu nhiên an toàn mật mã sau đó, sử dụng dòng các byte ngẫu nhiên như là dòng khóa (keystream). SEAL là một thuật toán mã dòng sử dụng SHA-1 để tạo ra

các bảng bên trong, mà sau đó được sử dụng trong một bộ sinh dòng khóa nhiều hay ít không liên quan đến các thuật toán băm SEAL không được đảm bảo tính mạnh (hay yếu) như SHA-1.

Một phần của tài liệu chữ kí điện tữ mã hóa md5 (Trang 32)