Hàm băm là gì? Tính chất quan trọng của hàm băm
1. Hàm băm là gì?
-
Hàm băm (hash function) là một thuật toán toán học chuyển đổi dữ liệu đầu vào có độ dài bất kỳ (văn bản, file, mật khẩu, giao dịch,…) thành một chuỗi đầu ra cố định (gọi là “giá trị băm” hay hash value).
-
Ví dụ:
-
Dữ liệu đầu vào:
"ChatGPT"
-
Hàm băm SHA-256 →
73e0b4c7...
(chuỗi 64 ký tự hex).
-
Điểm đặc trưng: cùng một dữ liệu đầu vào luôn cho ra cùng một giá trị băm.
2. Tính chất quan trọng của hàm băm
Một hàm băm mạnh và an toàn phải có các tính chất sau:
-
Xác định (Deterministic)
-
Cùng một input → luôn ra cùng một output.
-
-
Tốc độ tính toán nhanh
-
Phù hợp xử lý dữ liệu lớn, real-time.
-
-
Không thể đảo ngược (One-way)
-
Không thể từ giá trị băm suy ngược lại dữ liệu gốc.
-
-
Không đụng hàng (Collision resistance)
-
Rất khó để tìm hai input khác nhau cho cùng một output.
-
-
Hiệu ứng tuyết lở (Avalanche effect)
-
Chỉ cần thay đổi một ký tự nhỏ trong input → hash output thay đổi hoàn toàn.
-
3. Tại sao hàm băm quan trọng?
Hàm băm là nền tảng của bảo mật và blockchain vì nó giúp:
-
Bảo mật dữ liệu & mật khẩu
-
Khi lưu mật khẩu, hệ thống chỉ lưu giá trị băm → hacker lấy được cơ sở dữ liệu cũng không biết mật khẩu gốc.
-
-
Xác thực dữ liệu (Data integrity)
-
Khi tải file (ISO, phần mềm), thường có kèm “checksum hash” → để kiểm tra file có bị chỉnh sửa không.
-
-
Chữ ký số & chứng thực
-
Hàm băm + mật mã khóa công khai tạo ra chữ ký số, giúp xác thực danh tính và nội dung.
-
-
Blockchain & tiền mã hóa
-
Hash được dùng trong:
-
Kết nối các khối (block) với nhau → tạo ra tính bất biến.
-
Cơ chế Proof of Work (Bitcoin) → miners phải tìm hash hợp lệ.
-
Tạo địa chỉ ví, xác thực giao dịch.
-
-
-
Cấu trúc dữ liệu (Merkle Tree)
-
Trong blockchain, Merkle Tree sử dụng hash để kiểm tra hàng triệu giao dịch một cách nhanh chóng và gọn nhẹ.
-
👉 Nói ngắn gọn: Hàm băm chính là “xương sống” của bảo mật hiện đại và công nghệ blockchain. Nếu không có hàm băm, không thể có Bitcoin, Ethereum, hay bất kỳ hệ thống an toàn nào trên Internet.