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

Giải mã (Decryption) trong An ninh Thông tin

Giải mã (Decryption) là quá trình ngược của mã hóa: chuyển ciphertext (dữ liệu xáo trộn) về plaintext (dữ liệu gốc đọc được) bằng thuật toán giải mã và khóa phù hợp.

Cơ chế theo loại mật mã

LoạiKhóa giải mãThuật toán
Đối xứngCùng khóa K dùng mã hóaD(K, C) = P. Ví dụ: AES-GCM-Decrypt, ChaCha20-Poly1305-Decrypt
Bất đối xứngKhóa riêng (Private key) SKD(SK, C) = P. Ví dụ: RSA-OAEP-Decrypt, ECIES-Decrypt, Kyber-Decapsulate
Hybrid (KEM+DEM)SK giải nạp K_sym, rồi K_sym giải mã dữ liệuHPKE-Decrypt, TLS 1.3 record decryption

Quy trình AEAD Decrypt (AES-GCM / ChaCha20-Poly1305)

Input: Key K, Nonce N, Ciphertext C, Tag T, AAD (optional)
Output: Plaintext P hoặc FAIL

1. Tính lại tag' = MAC(K, N, C, AAD)
2. So sánh tag' với T (constant-time comparison)
3. Nếu khớp: P = StreamDecrypt(K, N, C) → return P
4. Nếu khác: return FAIL (không tiết lộ plaintext)

Yêu cầu an toàn khi giải mã

  • Constant-time: So sánh tag, branch không rò rỉ thông tin qua timing.
  • Xác thực trước khi xử lý plaintext: Không bao giờ dùng plaintext trước khi verify tag (chống padding oracle, chosen-ciphertext attack).
  • Nonce không lặp: Lặp nonce trong AEAD = phá vỡ bảo mật hoàn toàn (keystream reuse).
  • Bảo vệ khóa trong bộ nhớ: Zeroize sau dùng, không log key/plaintext.
  • Xử lý lỗi an toàn: Trả về lỗi chung (FAIL), không chi tiết (invalid tag vs invalid padding vs...).

Tấn công vào giải mã

  • Padding Oracle (CBC mode): Kẻ thay đổi ciphertext, quan sát lỗi padding → giải mã byte-by-byte. Khắc phục: dùng AEAD, không CBC.
  • Chosen-Ciphertext Attack (CCA): Kẻ có quyền giải mã ciphertext tùy chọn → suy ra khóa/plaintext. Khắc phục: CCA-secure schemes (OAEP, AEAD).
  • Side-channel (timing, power, cache): Trên thiết bị giải mã. Khắc phục: constant-time, masking, HSM.
  • Fault Injection: Gây lỗi khi giải mã → suy ra khóa. Khắc phục: duplicate computation, sensor.

Quản lý khóa giải mã

Khóa giải mã là mục tiêu giá trị cao nhất. Yêu cầu:

  • Lưu trữ HSM/KMS (FIPS 140-2 Level 3+, Common Criteria EAL4+).
  • Access control: RBAC, principle of least privilege, MFA.
  • Audit log mọi thao tác decrypt/unwrap.
  • Key rotation, revocation, destruction an toàn.

Tóm lại: Giải mã không chỉ "chạy ngược thuật toán" — là quá trình xác thực, kiểm soát, bảo vệ khóa, và chống side-channel. Triển khai sai giải mã là nguyên nhân hàng đầu rò rỉ dữ liệu trong các hệ thống "đã mã hóa".