

Các hàm băm đóng vai trò cơ bản trong mật mã học hiện đại. Hàm băm h là một hàm biến đổi toán học chuyển đổi các xâu bit có độ dài hữu hạn tùy ý thành các xâu bit có độ dài n cố định. Đầu ra này được gọi là mã băm (kết quả băm, giá trị băm, vết, hay tóm lược thông báo). Để thống nhất và cụ thể hóa các thuộc tính của hàm băm thì bộ tiêu chuẩn TCVN 11816 ra đời.
Các định nghĩa, yêu cầu tổng quan, mô hình tổng quát của hàm băm, các phương pháp đệm, hàm vòng… được quy định trong bộ tiêu chuẩn TCVN 11816.
Bộ tiêu chuẩn này do Cục Quản lý mật mã dân sự và Kiểm định sản phẩm mật mã biên soạn, Ban Cơ yếu Chính phủ đề nghị, Tổng cục Tiêu chuẩn Đo lường Chất lượng thẩm định, Bộ Khoa học và Công nghệ công bố.
Bộ tiêu chuẩn TCVN 11816 quy định các hàm băm mật mã thuộc 3 dạng hàm băm khác nhau:
Thứ nhất, hàm băm sử dụng mã khối n-bit, các hàm băm này thích hợp ứng dụng trong các hệ thống đã được cài đặt. Một mã được sử dụng như là trung tâm của hàm băm.
Thứ hai, hàm băm chuyên dụng, các hàm băm này được thiết kế đặc chuyên biệt dành riêng cho hàm băm. Cơ sở của các hàm băm dạng này dựa trên việc sử dụng lặp lại của một hàm vòng. Các hàm vòng khác nhau đem đến sự khác biệt cho mỗi hàm băm chuyên dụng.
Cuối cùng là các hàm băm sử dụng số học đồng dư. Những hàm này, được cho là kháng va chạm, nén thông điệp có độ dài bất kì, nhưng giới hạn độ dài mã băm, độ dài đó được xác định bởi độ dài của số nguyên tố được sử dụng trong hàm rút gọn. Các hàm băm này phù hợp riêng cho các môi trường thực hiện số học đồng dư với đủ các chiều dài.
Các khái niệm an toàn cơ bản của hàm băm xoay quanh tính kháng tiền ảnh, tính kháng tiền ảnh thứ hai và tính kháng va chạm.
1. Tính kháng tiền ảnh – Với tất cả các đầu ra cho trước, không thể tính toán để tìm được đầu vào bất kỳ mà khi băm cho ra đầu ra đó, tức là cho trước một giá trị băm y bất kỳ, không thể tìm ra được một tiền ảnh x’ thỏa mãn h(x’) = y.
2. Tính kháng tiền ảnh thứ 2 – Không thể tính toán để tìm được đầu vào thứ hai bất kỳ mà có cùng đầu ra với đầu vào cho trước, tức là cho trước x không thể tìm được tiền ảnh thứ hai thỏa mãn h(x’) = h(x).
3. Tính kháng va chạm – Không thể tính toán để tìm được hai đầu vào khác nhau x và x’ bất kỳ mà có cùng đầu ra, tức là thỏa mãn h(x) = h(x’).
Từ những đặc tính an toàn này, mục đích của các tấn công lên hàm băm là phá vỡ một trong ba đặc tính an toàn trên. Ngoài ra, tấn mở rộng độ dài lên hàm băm, Tấn công này mục đích đưa ra xâu bit h(x) cho một vài xâu dữ liệu không rỗng x, tấn công mục tiêu là tìm ra bất kỳ xâu dữ liệu x’ nào và giá trị của h(x ║x’). Chi tiết tại phụ lục C – tiêu chuẩn TCVN 11816 -1.
Ứng dụng của hàm băm mật mã
Hàm băm mật mã được đánh giá là một thuật toán linh hoạt nhất. Nó được sử dụng trong nhiều ứng dụng an toàn và các giao thức Internet. Một vài ứng dụng của hàm băm có thể được kể đến như: đảm bảo tính toàn vẹn và xác thực của thông báo, nâng cao hiệu suất chữ ký số, lưu trữ mật khẩu, tạo bộ sinh số ngẫu nhiên, xây dựng mã khối…
Hướng dẫn lựa chọn hàm băm an toàn
Lựa chọn hàm băm được thực hiện theo các khía cạnh sau.
a) An toàn hàm băm, tức là thuật toán được lựa chọn phải chống lại được các tấn công phân tích mã.
b) Hiệu suất của hàm băm trên các nền tảng điển hình. Nó không những bao gồm các vấn đề về thời gian, không gian, mà còn có hay không có các đặc điểm vượt qua các kỹ thuật tiên tiến khác.
c) Bản chất của bất kỳ vấn đề bản quyền nào ảnh hưởng tới hàm băm.
TS. Hồ Văn Hương, Cục QLMMDS & KĐSPMM