Computer >> Hướng Dẫn Máy Tính >  >> Kết Nối Mạng >> An Ninh Mạng

Hashing trong bảo mật mạng là gì?

Khái niệm Hashing

Hashing là quá trình chuyển đổi dữ liệu đầu vào (bất kỳ độ dài nào) thành một chuỗi ký tự có độ dài cố định (giá trị hash/hàm băm) bằng một thuật toán toán học. Giá trị hash thường được biểu diễn dưới dạng thập lục phân (hex) hoặc nhị phân.

Ví dụ minh họa

Giả sử bạn có danh sách 20.000 số và cần tìm một số cụ thể. Thay vì quét tuyến tính, hashing cho phép ánh xạ giá trị đó đến một chỉ mục trong bảng băm (hash table) để truy xuất tức thì.

Hàm băm (Hash Function) trong bảo mật

  • Chuyển đổi dữ liệu thô thành giá trị băm duy nhất, không thể đảo ngược.
  • Dùng để kiểm tra tính toàn vẹn dữ liệu, lưu trữ mật khẩu an toàn, chữ ký số.
  • Thuật toán phổ biến: MD5 (128-bit), SHA-1, SHA-2 (SHA-256, SHA-512), NTLM, LANMAN.

Hashing so với Mã hóa (Encryption)

Đặc điểmHashingMã hóa
ChiềuMột chiều (không giải mã được)Hai chiều (có thể giải mã với khóa)
Mục đíchXác thực, kiểm tra toàn vẹnBảo mật dữ liệu khi truyền/lưu trữ
Đầu raĐộ dài cố địnhĐộ dài tùy thuộc dữ liệu đầu vào

Ứng dụng hashing trong bảo mật

  • Lưu trữ mật khẩu: Hệ thống băm mật khẩu người dùng, so sánh giá trị băm khi đăng nhập (không lưu mật khẩu gốc).
  • Kiểm tra toàn vẹn file: So sánh hash trước/sau truyền tải.
  • Chữ ký số & chứng chỉ: Băm nội dung rồi ký với khóa riêng.
  • Blockchain: Liên kết các khối bằng hash.

Đặc tính an toàn của hàm băm

Theo FIPS 180-4, thuật toán băm an toàn (SHA-256, SHA-3...) phải đáp ứng: không thể tìm đầu vào cho một hash cho trước (pre-image resistance), không thể tìm hai đầu vào cho cùng hash (collision resistance).

Các ý chính về hashing

  • Phân bố đều giá trị trên mảng (bảng băm).
  • Khóa (key) được chuyển thành chỉ mục bằng hàm băm.
  • Truy cập phần tử trong một lần (O(1) trung bình).
  • Xử lý va chạm (collision) bằng chaining hoặc open addressing.