🔐 AES là gì?
AES (Advanced Encryption Standard) là một thuật toán mã hóa đối xứng hiện đại, được dùng rất phổ biến để bảo mật dữ liệu.
Do Viện Tiêu chuẩn và Công nghệ Hoa Kỳ (NIST) chọn năm 2001.
AES thay thế thuật toán cũ DES (Data Encryption Standard) vì DES quá yếu với máy tính hiện đại.
Đặc điểm quan trọng: Cùng một khóa được dùng để mã hóa và giải mã.
📦 Đặc điểm chính của AES
| Tính chất | Mô tả |
| ---------------- | ---------------------------------------------------------------------------- |
| Loại mã hóa | Đối xứng |
| Kích thước khối | 128 bit (16 byte) mỗi lần xử lý |
| Kích thước khóa | 128, 192 hoặc 256 bit |
| Số vòng (rounds) | - 10 vòng với khóa 128 bit<br>- 12 vòng với 192 bit<br>- 14 vòng với 256 bit |
| Cấu trúc | Gọi là Substitution-Permutation Network (SPN) |
⚙️ Quy trình hoạt động của AES (với khóa 128-bit)
AES xử lý dữ liệu theo từng khối 128 bit (16 byte). Dưới đây là các bước chính:
- Khởi tạo (AddRoundKey):
XOR (phép toán "hoặc loại trừ") dữ liệu với khóa ban đầu (round key 0).
- Lặp lại 10 vòng (Rounds):
Trong 9 vòng đầu:
SubBytes: Thay thế mỗi byte bằng một byte khác từ bảng S-box (tạo tính phi tuyến).
ShiftRows: Xoay hàng trong ma trận dữ liệu để làm dữ liệu rối hơn.
MixColumns: Kết hợp các cột với nhau bằng toán học tuyến tính để tăng khuếch tán.
AddRoundKey: XOR dữ liệu với khóa của vòng hiện tại.
Vòng thứ 10: Bỏ MixColumns (để tránh làm hỏng dữ liệu do rối quá nhiều).
🔄 Giải mã AES
Giải mã dùng cùng khóa, nhưng áp dụng các bước ngược lại:
InvShiftRows
InvSubBytes
InvMixColumns
AddRoundKey
🧠 Ví dụ dễ hiểu (mô hình hóa)
Giả sử:
Dữ liệu gốc: HELLO1234567890
Khóa AES: MYSECRETKEY12345
Quá trình mã hóa:
Biến đổi HELLO1234567890 bằng nhiều vòng (round) phức tạp → tạo ra: x91fA3... (không đọc được)
Gửi ciphertext này đi.
Giải mã (nếu có khóa đúng):
Dùng đúng khóa MYSECRETKEY12345
Áp dụng ngược lại quá trình → lấy lại HELLO1234567890
Nếu không có đúng khóa, rất khó hoặc không thể giải mã được.
🔐 Tại sao AES an toàn?
Không thể "đoán khóa" dễ dàng do không gian khóa rất lớn (2128 trở lên).
ng trong nhiều hệ thống lớn: SSL/TLS, VPN, Wi-Fi (WPA2), ngân hàng, ứng dụng di động, v.v.
Hiện chưa có cách tấn công thực tế nào có thể phá AES trong thời gian hợp lý.