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

Hashing (Hàm băm) trong An ninh Thông tin là gì?

Hashing (Hàm băm) là hàm xác định ánh xạ dữ liệu đầu vào tùy ý độ dài thành chuỗi độ dài cố định (hash value / digest / fingerprint). Đặc tính cốt lõi: một chiều (one-way) — dễ tính hash, khó khôi phục input; deterministic — cùng input luôn cho cùng output.

Cấu trúc phổ biến

ConstructionĐại diệnĐặc điểm
Merkle-DamgårdMD5, SHA-1, SHA-2, RIPEMD, BLAKE2Compression function lặp, padding + length encoding. Dễ length extension attack (trừ BLAKE2, SHA-512/256).
Sponge (Keccak)SHA-3, SHAKE, KangarooTwelveAbsorb (XOR rate) → Permutation → Squeeze. Chống length extension tự nhiên, XOF.
Tree / ParallelBLAKE3, ParallelHashChia nhánh, song song hóa, SIMD. Cực nhanh trên đa nhân.
ARX-basedBLAKE2/3, SipHash, ChaskeyChỉ ADD/ROTATE/XOR, constant-time tự nhiên, không table lookup.

Đặc tính bảo mật (Security Properties)

  1. Preimage Resistance (Kháng nguyên ảnh): Cho h, không thể tìm M: H(M)=h. Độ khó ~2ⁿ (n = output bits).
  2. Second Preimage Resistance (Kháng nguyên ảnh thứ 2): Cho M, không thể tìm M'≠M: H(M')=H(M). Độ khó ~2ⁿ.
  3. Collision Resistance (Kháng va chạm): Không thể tìm M₁≠M₂: H(M₁)=H(M₂). Độ khó ~2ⁿ/² (Birthday bound).
  4. Avalanche Effect: Thay đổi 1 bit input → ~50% bit output thay đổi.
  5. Pseudorandomness: Output không thể phân biệt với random (dùng cho KDF, PRF).

Ứng dụng theo mục đích

Mục đíchThuật toán khuyên dùngLưu ý
Chữ ký số / Certificate / TLSSHA-256, SHA-384, SHA-512, SHA3-256Collision resistance bắt buộc
MAC / HMACHMAC-SHA256, HMAC-SHA512, KMAC (SHA-3)Keyed hash, cần khóa bí mật
Lưu trữ mật khẩuArgon2id, bcrypt, scrypt, PBKDF2-HMAC-SHA256KHÔNG dùng SHA/MD5 trực tiếp — cần salt + cost factor
KDF (Key Derivation)HKDF-SHA256, HKDF-SHA512, SHAKE256Extract-then-Expand pattern
Kiểm tra tệp (Checksum)SHA-256, BLAKE3, xxHash (non-crypto)Non-crypto: xxHash cho tốc độ
Blockchain / Merkle TreeSHA-256d (Bitcoin), Keccak-256 (Ethereum), BLAKE3Collision resistance critical
Hash table / Bloom filter / DeduplicationxxHash, MurmurHash, SipHash (keyed), FNVNon-crypto, tốc độ ưu tiên

Thuật toán tiêu chuẩn 2024

  • Mặc định chung: SHA-256 (phổ biến, hardware accel, an toàn).
  • Hiệu năng cao / XOF / Domain separation: BLAKE3 (song song, SIMD, 1-2 cpb), SHAKE256 (NIST standard XOF).
  • Password hashing: Argon2id (memory-hard, time-hard, parallelism).
  • Chống HashDoS (hash table): SipHash (keyed, fast).

Cấm dùng cho bảo mật mới

  • MD5 (collision broken 2004), SHA-1 (collision broken 2017).
  • Hash nhanh (SHA-256, BLAKE3) trực tiếp cho password — phải dùng KDF chậm.
  • CRC32, checksum non-crypto cho integrity bảo mật.