4. Những nội dung nghiên cứu chính
2.2.4 Sử dụng các hàm băm bảo mật
Sử dụng các hàm băm bảo mật (Secure Hash Function) cũng như mã xác thực MAC, hàm băm cũng tạo ra một khối thông tin ngắn có độ dài xác định gọi là mã băm (Hash Code) từ một khối thông tin gốc có độ dài bất kỳ. Tuy nhiên, khác với MAC, hàm băm chỉ dựa vào thông tin gốc để tạo ra mã băm mà không dùng thêm bất kỳ khóa bí mật nào. Do vậy, để có thể sử dụng như một cơ chế xác thực thông tin, hàm băm phải được dùng kèm với một thuật toán mật mã nào đó (đối xứng hoặc bất đối xứng).
Hình sau trình bày một ứng dụng điển hình của hàm băm xác thực thông tin. Theo cơ chế này, mã băm sau khi được tạo ra sẽ được mã hóa bằng một thuật toán mật mã đối xứng với khóa bí mật K chỉ có bên gửi và bên nhận biết. Đoạn mã băm đã được mã hóa và được gửi đi kèm với thông tin gốc và quá trình kiểm tra ở phía nhận cũng được tiến hành theo trình tự ngược lại, tức là giải mã đoạn mã băm bằng khóa bí mật, sau đó tạo ra mã băm mới từ thông tin gốc và so sánh hai đoạn mã băm.
Hình 2.5: Xác thực thông tindùng hàm băm
Sử dụng khóa đối xứng, bất đối xứng để mã hóa tài liệu và trao đổi khóa bí mật K trên kênh an toàn thực hiện trao đổi thông tin
Nơi gửi Nơi nhận
Mã băm đã được mã hóa
M’
M’ M’
Hình 2.6: Xác thực dùng hàm băm và mật mã bất đối xứng • Bên gửi: − Băm: hA = H(M’, K) − Mã hóa: E( hA, K) − Mã hóa: E( M, K) − Mã hóa: E(K, PUB) − Truyền: (M’, E( hA, K), E( M, K), E(K, PUB)) • Bên nhận: − Giải mã: K = D[E(K, PUB),PRB] − Giải mã: hA= D[E( hA, K), K] − Băm: hB = H(M’, K) − So sánh: hA = hB ? − Giải mã: M = D[E( M, K), K]
Có nhiều cách áp dụng các thuật toán mật mã vào hàm băm để xác thực thông tin: Sử dụng kỹ thuật mật mã khóa đối xứng hoặc khóa bất đối xứng. Hoặc chỉ mã hóa giá trị băm hoặc mã hóa cả thông tin gốc và giá trị băm, có thể tổ hợp nhiều cách trên lại với nhau.
Ngoài các ứng dụng xác thực thông tin, các hàm băm còn được sử dụng trong nhiều ứng dụng khác nhau.