AES (Advanced Encryption Standard)
一、AES 是什麼
- 對稱式加密
- 區塊加密
- 加密與解密使用同一把 Key
- AES 本身不是 Hash,也不是 MAC
- AES 本身只提供區塊加密能力,實際應用還需要搭配運作模式
AES 是一種對稱式區塊加密演算法,主要用途是將可以直接閱讀的明文(Plaintext)轉換成無法直接理解的密文(Ciphertext)。持有正確金鑰的一方,才能再將密文解密回原始明文。
二、基本規格
- 主要有以下三種,差異為金鑰長度及計算幾輪
AES 類型 | Key 長度 | Key 大小 | Round 數 |
|---|---|---|---|
AES-128 | 128 bits | 16 bytes | 10 |
AES-192 | 192 bits | 24 bytes | 12 |
AES-256 | 256 bits | 32 bytes | 14 |
- 無論使用 AES-128、AES-192 或 AES-256,AES 的區塊大小(Block Size)都固定為 128 bits,也就是 16 bytes。
- AES-128、AES-192 與 AES-256 中的數字代表的是 Key Size,不是 Block Size。
三、AES 核心輸入與輸出介面
加密 AES_Encrypt(Key, PlaintextBlock) → CiphertextBlock
解密 AES_Decrypt(Key, CiphertextBlock) → PlaintextBlock
PlaintextBlock:16 bytesCiphertextBlock:16 bytesKey:16、24 或 32 bytes
四、為什麼需要運作模式
當資料長度為 100 bytes 時,AES Core 一次只能處理 16 bytes,所以需要規則決定
- 如何分割資料
- Block 之間如何連接
- 是否需要 Padding
- 是否需要 IV 或 Nonce
- 是否驗證資料完整性
五、AES 的五種常見模式
模式 完整性/認證 IV/Nonce/Counter 明文 Padding ECB 否 不需要 通常需要 CBC 否 IV 通常需要 CTR 否 Counter Block 不需要 GCM 是,使用 Tag IV/Nonce 不需要 CCM 是,使用 Tag Nonce 不需要
補充:Counter Block 通常由 Nonce 與遞增的 Counter 組成,詳細結構將於第五篇介紹。
六、AES 的常見用途
- HTTPS/TLS
- VPN
- Wi-Fi
- 硬碟加密
- 加密韌體映像
- 安全韌體更新
- 嵌入式系統
- PSA Crypto
- 金鑰儲存與資料保護
七、小結
AES 是一種對稱式區塊加密演算法,每次固定處理一個 128-bit,也就是 16-byte 的資料區塊。AES 支援 128、192 與 256-bit 三種金鑰長度,分別執行 10、12 與 14 輪核心運算。由於 AES Core 本身一次只能處理一個 Block,因此實際處理多個資料區塊或任意長度資料時,還需要搭配 ECB、CBC、CTR、GCM 或 CCM 等運作模式。下一篇將進一步介紹 AES Core 內部的主要運算流程。


沒有留言:
發佈留言