AES là gì? Giải thích siêu dễ hiểu kèm demo trực quan (AES Concept Visualization)

AES (Advanced Encryption Standard) là thuật toán mã hóa đối xứng phổ biến nhất thế giới hiện nay. Từ HTTPS, ứng dụng ngân hàng, WiFi WPA2/WPA3, đến mã hóa file trong hệ điều hành – tất cả đều dùng AES.

AES là gì? Giải thích siêu dễ hiểu kèm demo trực quan (AES Concept Visualization)

Bài này KHÔNG đi vào quá sâu toán học, mà tập trung làm rõ ý tưởng cốt lõi của AES và cung cấp một demo mô phỏng 4 bước chính của AES: SubBytes, ShiftRows, MixColumns, AddRoundKey – để bạn tự tay xem dữ liệu được biến đổi ra sao.

AES dùng để làm gì?

  • Mã hóa dữ liệu khi truyền (HTTPS, VPN, SSH…)
  • Mã hóa dữ liệu lưu trữ (BitLocker, FileVault, Android/iOS encryption)
  • Bảo vệ token, session, cookie
  • WiFi WPA2/WPA3

AES mạnh, nhanh, ổn định và được hỗ trợ phần cứng (AES-NI) trên hầu hết CPU.

AES là mã hóa đối xứng

Chỉ có 1 key duy nhất dùng để mã hóa và giải mã.

plaintext + key → ciphertext
ciphertext + key → plaintext

Mục tiêu bài này không phải cài đặt AES thật (quá dài), mà mô phỏng cách AES “biến đổi dữ liệu” qua từng bước.

Các bước chính trong một vòng AES (AES Round)

Với AES-128, tổng cộng có 10 vòng. Mỗi vòng dùng 4 thao tác chính:

  1. SubBytes – thay mỗi byte bằng giá trị từ S-Box.
  2. ShiftRows – xoay hàng trong ma trận 4×4.
  3. MixColumns – kết hợp các cột bằng phép nhân Galois Field.
  4. AddRoundKey – XOR với key của vòng.

Demo dưới đây mô phỏng chính xác 4 bước này với dữ liệu bạn nhập vào (16 byte / 16 ký tự).

Demo: AES Concept Visualization (UIkit + JavaScript)

Nhập 16 ký tự để mô phỏng 1 block AES:

Demo: AES Concept (không phải AES thật!)

Kết quả từng bước

Chưa chạy mô phỏng.

Giải thích 4 bước AES trong demo

1. SubBytes – Thay thế bằng S-Box

Mỗi byte được thay bằng giá trị tương ứng trong bảng S-Box (giống lookup table). Đây là bước tạo tính phi tuyến mạnh.

2. ShiftRows – Xoay hàng

Bảng 4×4 được xoay:

  • Hàng 1 không đổi
  • Hàng 2 xoay trái 1 ô
  • Hàng 3 xoay trái 2 ô
  • Hàng 4 xoay trái 3 ô

3. MixColumns – Trộn cột

Mỗi cột được kết hợp bằng phép toán Galois Field để “lan truyền” thay đổi ra toàn bộ dữ liệu.

4. AddRoundKey – XOR với key

Dữ liệu sau khi biến đổi được XOR trực tiếp với key của vòng hiện tại.

→ Đây là bước quan trọng nhất để mã hóa thật sự.

Code mô phỏng AES Concept

(Rút gọn – chỉ mô phỏng concept, không phải AES thực)

const SBOX = [
  // 256 giá trị S-Box chuẩn (rút gọn bản đầy đủ trong demo thật bên dưới)
  0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5,0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76,
  // ...
];

function subBytes(state) {
  return state.map(row => row.map(byte => SBOX[byte]));
}

function shiftRows(state) {
  return state.map((row, r) => row.slice(r).concat(row.slice(0, r)));
}

function gmultiply(a, b) {
  let p = 0;
  for (let i = 0; i < 8; i++) {
    if (b & 1) p ^= a;
    let hi = a & 0x80;
    a = (a << 1) & 0xFF; if (hi) a ^= 0x1b; b >>= 1;
  }
  return p;
}

function mixColumns(state) {
  const M = [
    [2,3,1,1],
    [1,2,3,1],
    [1,1,2,3],
    [3,1,1,2]
  ];
  let out = [...Array(4)].map(()=>Array(4).fill(0));
  for (let c = 0; c < 4; c++){
    for (let r = 0; r < 4; r++){ out[r][c] = gmultiply(M[r][0], state[0][c]) ^ gmultiply(M[r][1], state[1][c]) ^ gmultiply(M[r][2], state[2][c]) ^ gmultiply(M[r][3], state[3][c]); } } return out; } function addRoundKey(state, key) { return state.map((row,r)=>row.map((byte,c)=>byte ^ key[r][c]));
}

Demo được chạy như thế nào?

Khi nhấn “Chạy mô phỏng”:

  1. Chuyển text & key thành ma trận 4×4 byte
  2. SubBytes
  3. ShiftRows
  4. MixColumns
  5. AddRoundKey

Kết quả từng bước được hiển thị dạng bảng dễ nhìn.

Kết luận

AES là một trong những thuật toán quan trọng nhất trong bảo mật hiện đại. Bài này giúp bạn hiểu 4 bước chính mà AES sử dụng để biến đổi dữ liệu – một vòng trong quá trình mã hóa.

Bạn đã nắm:

  • AES là mã hóa đối xứng
  • Dữ liệu được xử lý theo dạng block 4×4 byte
  • 4 bước quan trọng tạo thành một AES Round
  • Có demo trực quan để “nhìn thấy” AES hoạt động

Sau series này, bạn có thể tiếp tục tìm hiểu sâu hơn như:

  • AES-ECB, AES-CBC, AES-GCM
  • Key expansion
  • Xác thực: HMAC, GCM Tag

Bình luận


  • Không có bình luận.

Init Toolbox

Nhấn Ctrl + \ trên máy tính, hoặc vuốt sang trái ở bất kỳ đâu trên mobile.

Đăng nhập





Đang tải...