Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình

Khác biệt giữa MAC và Hash Function trong An ninh Thông tin

MAC (Message Authentication Code)

MAC là thẻ xác thực thông điệp, được tạo bởi hàm băm có khóa (keyed hash) trên thông điệp và khóa bí mật K. MAC cung cấp:

  • Tính toàn vẹn: Phát hiện thay đổi thông điệp.
  • Xác thực nguồn gốc: Chỉ người nắm khóa K mới tạo được MAC hợp lệ.

Đặc điểm: Cần khóa đối xứng (cùng khóa cho tạo và kiểm tra). Các loại phổ biến: HMAC (dùng SHA-256/512), KMAC (SHA-3), CMAC (AES), Poly1305 (ChaCha20).

Hash Function (Hàm băm mật mã)

Hàm băm một chiều (one-way) chuyển đầu vào tùy ý thành chuỗi độ dài cố định (ví dụ SHA-256: 256-bit). Không dùng khóa. Đặc tính cốt lõi:

  • Preimage resistance: Khó tìm M từ h = H(M).
  • Second-preimage resistance: Khó tìm M' ≠ M với H(M') = H(M).
  • Collision resistance: Khó tìm M₁ ≠ M₂ với H(M₁) = H(M₂).

Hash đơn lẻ không cung cấp xác thực vì ai cũng tính được H(M). Để xác thực, phải kết hợp với chữ ký số (ký hash bằng khóa riêng) hoặc MAC.

Bảng so sánh

Tiêu chíMACHash Function
KhóaCần khóa bí mật đối xứngKhông dùng khóa
Mục đíchToàn vẹn + Xác thực nguồnToàn vẹn (chỉ khi hash được tin cậy)
Tạo/Xác thựcChỉ bên nắm khóaAi cũng tính được
Non-repudiationKhông (khóa đối xứng)Không (trừ khi ký số)
Ví dụHMAC-SHA256, CMAC-AES, Poly1305SHA-256, SHA-3, BLAKE2

Khi nào dùng gì?

  • MAC: Kênh bảo mật hai chiều có khóa chung (TLS record layer, IPsec, JWT HS256).
  • Hash + Chữ ký số: Xác thực công khai, non-repudiation (certificate, firmware signing).
  • Hash đơn: Kiểm tra tải tệp, Merkle tree, blockchain, commit git — nơi nguồn hash được tin cậy qua kênh khác.