COMIC CLASSROOM

AES 到 RTL第 1 / 2 課

AES 漫畫小教室:五張圖看懂現代加密

這篇先把 AES 講成一套固定的加密工法:資料被切成區塊,經過一輪一輪的替換、搬移、混合與加鑰,最後變成外人看不懂的密文。讀完會知道 AES 為什麼仍是保護大量資料的核心工具。

8 分鐘

先把 AES 想成一套固定的加密工法

這篇先不急著背 SubBytes、ShiftRows 或 MixColumns。你可以先把 AES 想成一間規矩很嚴的加密工廠:資料進來後,會被切成固定大小的區塊,照著一輪一輪的工序處理,最後變成外人看不懂的密文。

每張漫畫都在回答一個很實際的問題:資料為什麼要被打散、混合、加上金鑰?為什麼同一套流程能讓加密結果很難被猜出?看懂這條工序,再回頭看演算法名詞會輕鬆很多。

讀的時候先抓住三件事:AES 保護大量資料,金鑰決定誰能解開,PQC 改變的是公開金鑰世界,不是把 AES 這種對稱式加密整個換掉。

AES 是現代資訊安全裡最重要、最常見的對稱式加密演算法之一。手機、瀏覽器、VPN、Wi-Fi、SSD、雲端服務、韌體保護、secure boot 與硬體加速器,都可能在不同層級使用 AES 或 AES-based mode 來保護資料。

這篇小教室不追求一次背完所有公式,而是先建立工程直覺:AES 是一個 block cipher,固定處理 128-bit 的資料區塊;它把 16 bytes 排成 4x4 state,透過多個 round 反覆做替換、移位、混合與金鑰 XOR,最後把 plaintext 變成 ciphertext。想看 RTL 與硬體架構細節,可接著閱讀 AES-128 RTL 初學者圖解

1. 為什麼需要 AES?

加密要解決的第一個問題很直覺:如果資料以 plaintext 形式傳輸或儲存,攻擊者只要攔截或讀取到資料,就能直接理解內容;如果加密太弱,攻擊者可能用分析、暴力嘗試或已知弱點把它打開。好的加密則讓資料即使被攔截,也呈現為沒有正確 key 就無法有效理解的 ciphertext。

AES 是現代對稱式加密的代表。所謂對稱式,是指加密與解密使用同一把 secret key,或至少使用由同一把 secret key 派生出的 key material。這和 RSA、ECC、PQC 這類 public-key cryptography 的使用情境不同:public-key 常用於 key exchange、authentication、digital signature;AES 則非常適合大量資料的高速加密。

AES 是 block cipher,標準 block size 是 128-bit,也就是 16 bytes。AES-128、AES-192、AES-256 的差異在 key length,不在 block size。這點很重要:AES-256 不是一次處理 256-bit block,而是用 256-bit key 來保護 128-bit block。

AES 漫畫小教室第一篇:從 Enigma 到現代 AES,理解為什麼需要強加密
圖 1:AES 的核心角色,是把可讀的 plaintext 透過 secret key 和標準演算法轉成 ciphertext,讓沒有 key 的人無法有效讀取。

圖中提到 Enigma,是為了說明加密在歷史上的重要性,而不是說 Enigma 和 AES 的設計相同。Enigma 是機械式密碼機,AES 則是公開、標準化、可分析、可驗證、可高效實作的現代 block cipher。

對硬體工程師來說,AES 的好處是結構規律。它有固定 state、固定 round、明確 key schedule 與公開 test vector,因此適合做 RTL、formal check、side-channel hardening、FIPS 驗證與 crypto accelerator。

2. AES 如何運作:Key Expansion、SubBytes、ShiftRows

AES 先把 128-bit block 排成 16 bytes 的 state,通常以 4x4 matrix 來理解。初學者最容易在 row/column、byte order、state mapping 上出錯,所以在記公式之前,先把 state 當成真正的資料結構看懂。

Key Expansion 會把原始 key 展開成每個 round 需要的 round key。以 AES-128 為例,會有初始 AddRoundKey,加上 10 個 round 所需的 key material。硬體實作時,可以一次預先展開 round keys,也可以 on-the-fly 產生;前者可能節省 latency,後者可能節省面積,取捨取決於吞吐量、功耗與控制流程。

SubBytes 是 byte-level substitution。每個 byte 都會經過 S-box lookup,被替換成另一個 byte。它是 AES 的主要非線性來源,負責讓輸入與輸出之間不是簡單線性關係。

ShiftRows 則是把 state 的每一列依不同 offset 往左移。它本身不改變 byte value,而是改變 byte 的位置,讓後面的 MixColumns 能把資料跨欄擴散。可以把 SubBytes 想成「改值」,ShiftRows 想成「換位置」。

AES 漫畫小教室第二篇:Key Expansion、SubBytes 與 ShiftRows
圖 2:AES round 不是一個神祕動作,而是由 key schedule、S-box substitution、row shifting 等規律步驟組成。

如果把這些步驟映射到 RTL,通常會看到 key schedule、S-box、state register、row shifter 與控制 FSM。設計乾淨的 AES core,第一步不是急著寫 code,而是把 state layout、round counter、valid/ready timing 與 round-key timing 定清楚。

3. MixColumns:AES 最容易卡住的一步

MixColumns 常讓初學者覺得難,因為它看起來像矩陣乘法,但又不是一般整數乘法。它一次處理 state 的一個 column,也就是 4 bytes;每個 column 會乘上一個固定 4x4 matrix,輸出新的 4 bytes。

這裡的 02、03、01 不是普通十進位係數,而是 AES finite field GF(2^8) 裡的常數。實作上,這些乘法可以用 XOR、shift 與條件 reduction 完成,不一定需要一般乘法器。這也是 AES 能在硬體裡做得很快、很規律的原因之一。

MixColumns 的目的叫 diffusion。也就是讓一個 byte 的影響擴散到多個 byte。SubBytes 提供 nonlinearity,ShiftRows 把 byte 移到不同位置,MixColumns 再把同一欄的 4 bytes 混合。多個 round 重複後,輸入的一點改變就會擴散到整個 state。

AES 漫畫小教室第三篇:MixColumns 如何用固定矩陣混合每一欄的 4 bytes
圖 3:MixColumns 的閱讀重點是「同一欄 4 bytes」乘上「固定矩陣」,產生新的 4-byte column。

真正理解 MixColumns 時,不需要先背完每個 GF(2^8) 細節。先抓住三件事:它只處理一欄、矩陣固定、目的在擴散。等這三件事穩了,再去看 02 × d4、03 × bf 這類 finite-field 運算,就比較不會被公式嚇到。

4. AddRoundKey 與 AES round 結構

AddRoundKey 是把 state 和 round key 做 XOR。看起來它是最簡單的一步,但它是把 secret key material 注入 state 的關鍵。沒有 AddRoundKey,前面的替換、移位、混合就只是公開的資料變換;有了 round key,整個 transformation 才和 secret key 綁在一起。

AES-128 的高階流程可以簡化成:

Round 0     = AddRoundKey
Round 1~9   = SubBytes + ShiftRows + MixColumns + AddRoundKey
Round 10    = SubBytes + ShiftRows + AddRoundKey

最後一輪沒有 MixColumns,這不是省略或圖畫簡化,而是 AES 標準的一部分。做 RTL 或測試向量對照時,這個 round schedule 一定要非常清楚,否則常會發生最後一輪結果不對。

AES 漫畫小教室第四篇:AddRoundKey 與 AES 加解密 round 結構
圖 4:AddRoundKey 用 XOR 把 round key 加進 state;AES-128 的最後一輪不包含 MixColumns。

解密不是猜 plaintext,而是用對應的 inverse operations 和 round keys,把 ciphertext 依正確順序還原。這也說明 AES 是 keyed permutation:有正確 key 與正確流程時可逆;沒有 key 時,ciphertext 對攻擊者應該像無意義資料。

硬體設計上,AddRoundKey 通常 gate cost 不高,因為主要是 XOR。真正要取捨的是 round key 什麼時候可用、state register 放在哪裡、S-box 如何實作、MixColumns 是否 combinational、以及整個 core 是 iterative、unrolled 還是 pipelined。

5. PQC 時代,AES 還重要嗎?

答案是:重要,而且會繼續重要。PQC 主要解決的是 public-key cryptography 在量子電腦威脅下的問題,例如 key encapsulation、key exchange、digital signature。AES 屬於 symmetric encryption,主要任務是保護大量資料。

實際系統裡,常見分工是:public-key 或 PQC 機制用來建立 session key、驗證身份、保護金鑰交換;AES 則用 session key 高速加密大量資料。TLS、VPN、儲存加密、韌體保護與安全通訊都常見這種分層。

量子電腦對對稱式密碼的影響,和對 RSA/ECC 這類 public-key 演算法不同。一般會用更保守的 key length,例如在高安全需求場景使用 AES-256。這也是為什麼 PQC 不是「取代 AES」,而是和 AES 搭配,補上 public-key 那一側的抗量子安全。

AES 漫畫小教室第五篇:AES 的用途,以及為什麼在 PQC 時代仍然重要
圖 5:PQC 負責 key exchange、authentication、digital signature 等 public-key 任務;AES 仍負責大量資料加密。

對 IC、firmware 與安全產品團隊來說,AES 仍然是必修基本功。它會出現在 secure boot、storage encryption、authenticated encryption mode、key wrapping、crypto accelerator、FIPS 140-3 module、測試向量與安全認證文件裡。

重點整理

AES 不是一個黑盒子,而是一個標準化、可分析、可實作的 block cipher。理解 AES 時,可以先抓住這條主線:

  • AES 固定處理 128-bit block,也就是 16 bytes。
  • 16 bytes 會排成 4x4 state。
  • Key Expansion 把原始 key 展開成 round keys。
  • SubBytes 提供非線性替換。
  • ShiftRows 改變 byte 位置。
  • MixColumns 在每一欄內做 diffusion。
  • AddRoundKey 用 XOR 把 round key 注入 state。
  • PQC 不會取代 AES;PQC 多半處理 public-key 任務,AES 繼續處理大量資料加密。

明天的安全系統不會在「AES 或 PQC」之間二選一,而是用 PQC 保護 key establishment 與 signature,用 AES 高效率保護大量資料。

References

  • NIST FIPS 197: Advanced Encryption Standard:AES 的官方標準文件。NIST 在 2023 年更新文件格式與說明,但沒有改變 AES 演算法本身。這份文件適合用來確認 block size、key length、round transformation、S-box、MixColumns 與 test vector 等細節。
  • NIST SP 800-38A: Block Cipher Modes of Operation:說明 block cipher 常見 confidentiality modes,例如 ECB、CBC、CFB、OFB、CTR。AES 本身只定義 block cipher;實際系統要安全使用 AES,通常還需要正確的 mode、IV/nonce 管理與 authentication 設計。
  • NIST Post-Quantum Cryptography FIPS approval:NIST 於 2024 年核准 FIPS 203、FIPS 204、FIPS 205 的官方公告。這個 reference 可用來理解 PQC 主要影響 public-key key establishment 與 digital signature,而不是把 AES 這類對稱式加密淘汰掉。
  • NIST PQC Standardization Process:NIST 對 post-quantum cryptography 標準化流程的整理頁。適合用來追蹤 PQC 標準、遷移時程與演算法定位,並對照本文所說的「PQC + AES」系統分工。

學習指南

AES 到 RTL

0 / 2

先備知識

  • 二進位資料與 XOR

我學會了什麼

  • 辨識 AES State 與 Round 結構
  • 說明替代、排列、混合與加鑰
  • 理解 AES 與 PQC 的不同角色

本課術語

查看術語字典 →

延伸閱讀

課後小測驗

1. AES 的區塊大小是?
2. AES 最後一輪省略哪一步?
3. PQC 會取代 AES 嗎?

讀到這裡,辛苦了。

把概念帶走,比把術語背走更重要。

#AES#AES-128#FIPS 197#Block Cipher#Encryption#Cryptography#密碼學#硬體安全#PQC#Post-Quantum Cryptography#Crypto Accelerator#漫畫小教室