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

Block Cipher (Mật mã khối) trong An ninh Thông tin

Block Cipher là họ mật mã đối xứng mã hóa dữ liệu theo các khối kích thước cố định (block size), ví dụ 64-bit (DES, 3DES) hoặc 128-bit (AES, Twofish). Mỗi khối plaintext được biến đổi thành khối ciphertext cùng kích thước bằng khóa đối xứng K.

Đặc điểm cốt lõi

  • Deterministic: Cùng (K, P) luôn cho cùng C.
  • Permutation giả ngẫu nhiên (PRP): Với khóa cố định, khối mã hóa là hoán vị trên không gian {0,1}ⁿ không thể phân biệt với hoán vị ngẫu nhiên thực.
  • Có nghịch đảo: Giải mã D(K, C) = P duy nhất (non-singular).

Padding (Đệm)

Plaintext không chia hết block size phải được đệm. Chuẩn phổ biến: PKCS#7 (thêm byte giá trị = số byte đệm). Ví dụ: block 128-bit, plaintext 160-bit → 2 khối: 1 khối đầy, 1 khối 32-bit dữ liệu + 96-bit padding.

Chế độ vận hành (Modes of Operation)

Block cipher gốc (ECB) mã hóa từng khối độc lập → không an toàn (cùng plaintext → cùng ciphertext, lộ pattern). Cần chế độ thêm IV (Initialization Vector) và chaining:

Chế độIVSong song hóaĐặc điểm
CBCNgẫu nhiênMã hóa: không; Giải mã: cóCᵢ = E(K, Pᵢ ⊕ Cᵢ₋₁). Phổ biến cũ.
CTRNonce + CounterCả haiBiến block cipher thành stream cipher. Hiện đại, nhanh.
GCM / CCMNonceCả haiAEAD: mã hóa + xác thực (integrity) cùng lúc. Khuyên dùng.
OFB / CFBNgẫu nhiênMã hóa: khôngChuyển thành stream cipher. Ít dùng hiện nay.
ECBKhôngCả haiKhông bao giờ dùng cho dữ liệu > 1 khối.

Block Cipher phổ biến

  • AES-128/192/256 (FIPS 197): Tiêu chuẩn vàng, 10/12/14 vòng, phần cứng hỗ trợ (AES-NI).
  • ChaCha20 (stream cipher nhưng thường nhóm với block cipher): Nhanh phần mềm, chống side-channel tốt.
  • Twofish, Serpent, Camellia: Lựa chọn thay thế, an toàn.
  • 3DES (Triple DES): 112-bit security, chậm, đã deprecated (NIST SP 800-131A).

Yêu cầu an toàn khi dùng

  1. Không bao giờ dùng ECB.
  2. IV/Nonce duy nhất cho mỗi khóa (key, nonce) pair — lặp lại = thảm họa (CTR/GCM).
  3. Dùng AEAD (GCM, CCM, ChaCha20-Poly1305) thay vì CBC+HMAC.
  4. Bảo vệ khóa: HSM, KMS, key rotation.