You are on page 1of 2

Hàm băm (Hash)

------
Định nghĩa:
Hàm băm (hashing) là quá trình biến một dữ liệu đầu vào có độ dài bất kỳ
thành một chuỗi đầu ra đặc trưng có độ dài cố định. Hashing được thực hiện thông
qua hàm băm (hash function).
Một cách tổng quát hàm băm là bất kỳ hàm nào có thể được sử dụng để ánh
xạ dữ liệu có kích thước tùy ý thành các giá trị kích thước cố định. Các giá trị được
trả về bởi hàm băm được gọi là giá trị băm, mã băm, thông điệp băm, hoặc đơn
giản là “hash”.
Hàm băm mật mã
Hàm băm mật mã là các hàm băm phù hợp để sử dụng trong mật mã. Nó là
một thuật toán toán học ánh xạ dữ liệu có kích thước tùy ý thành một chuỗi bit có
kích thước cố định (gọi là “giá trị băm”, “mã băm” hoặc “thông điệp băm”).
Nó được sử dụng nhiều trong chữ ký số: Mã hóa giá trị băm với khóa riêng
(khóa ký) và xác minh bằng khóa công khai (khóa xác minh - verification); mã xác
thực thông điệp (MAC): Bảo vệ cả tính toàn vẹn cũng như tính xác thực của
thông báo bằng cách kiểm tra (ai là người sở hữu khóa mật) để phát hiện bất kỳ
thay đổi nào trong nội dung của thông báo
Các tính chất:
- Thông điệp có độ dài tùy ý thành bản tóm lược có độ dài cố định
- Với bất kỳ giá trị băm h, không thể tính được m sao cho H(m)=h. Hay H
được gọi là hàm một chiều
- Tính kháng tiền ảnh thứ nhất: Với một giá trị băm h bất kỳ, sẽ khó tìm thấy
bất kỳ thông điệp m nào sao cho h = H(m).
- Tính kháng tiền ảnh thứ hai: Với đầu vào m1, sẽ khó tìm được đầu vào m2
khác sao cho H(m1) = H(m2).
- Tính kháng va chạm. Rất khó để tìm thấy hai thông điệp khác nhau m1 và
m2 sao cho H(m1) = H(m2). Một giá trị như vậy được gọi là va chạm của hàm
băm mật mã.
Phân loại:
Hàm băm
Không khoá Có khoá
Mã phát hiện sửa đổi Các ứng dụng Các ứng dụng Mã xác thực thông
(MDC) khác khác điệp (MAC)
Một chiều Kháng
va chạm
Có nhiều thuật toán băm mật mã; ở đây chúng ta nhắc đến một số thuật toán được
sử dụng thường xuyên.

You might also like