AES-256 加密詳解:對您的資料意味著什麼
密碼如何運作、256 位元金鑰為何重要、GCM 模式增加了什麼,以及如何評估應用程式的加密聲明。
AES-256 是進階加密標準(Advanced Encryption Standard),使用 256 位元金鑰,由 NIST 於 2001 年以 FIPS 197 標準化。它是美國政府用於機密資訊、銀行用於金融交易,以及注重安全的應用程式用於保護靜態和傳輸中資料的對稱加密演算法。AES-256 有 2^256 個可能的金鑰,這個數字大於可觀測宇宙中原子的估計數量。沒有已知攻擊可以將此金鑰空間縮減至計算可行的搜尋範圍。
本指南說明 AES-256 實際上做什麼、金鑰大小為何重要、不同模式的含義(ECB、CBC、GCM),以及當應用程式聲稱使用 AES-256 加密時應查核什麼。
AES 實際上做什麼
AES 是對稱塊狀密碼。「對稱」表示相同的金鑰加密和解密。「塊狀密碼」表示它以 128 位元(16 位元組)的固定大小塊處理資料。
演算法取得您的資料(明文),將其與金鑰組合,並透過一系列數學轉換產生加擾輸出(密文)。這些轉換(替換、移位、混合和金鑰加法)重複固定輪次。AES-256 使用 14 輪。
每輪套用四種操作:
- SubBytes:每個位元組使用固定替換表(S-box)替換,引入非線性。
- ShiftRows:每行中的位元組按不同偏移量移位,將資料分散到不同位置。
- MixColumns:透過有限域中的矩陣乘法混合各欄,將變化擴散到各位元組。
- AddRoundKey:輪金鑰(由主金鑰衍生)與資料進行 XOR 運算。
經過 14 輪後,明文已被徹底加擾。使用正確的金鑰逆轉這些操作可以恢復原始資料。沒有金鑰,密文與隨機雜訊無法區分。
256 位元為何重要
AES-256 中的「256」指的是金鑰長度:256 位元。這決定了攻擊者必須嘗試多少個可能的金鑰才能透過暴力破解加密。
| 金鑰大小 | 可能的金鑰數 | 暴力破解時間(每秒 1 兆次猜測) |
|---|---|---|
| 56 位元(DES) | 7.2 x 10^16 | 約 20 小時 |
| 128 位元(AES-128) | 3.4 x 10^38 | 10^13 年(10 兆年) |
| 256 位元(AES-256) | 1.16 x 10^77 | 10^51 年 |
作為參考:宇宙年齡約為 1.38 x 10^10 年。即使每秒猜測 1 兆次,暴力破解 AES-256 所需的時間也比宇宙年齡長約 10^41 倍。
AES-128 在計算上已無法暴力破解。AES-256 為未來計算進展(包括量子計算)提供額外餘裕。Grover 量子演算法將有效金鑰長度減半,使 AES-256 等同於對抗量子攻擊的 AES-128,這仍然不可行。AES-128 將被縮減至 64 位元有效安全性,這可能存在漏洞。這就是為什麼安全關鍵應用程式偏好 AES-256。
AES 模式:為何重要
AES 本身一次只加密一個 128 位元塊。對於真實資料(照片、文件、影片),您需要一個能處理超過 16 位元組資料的「操作模式」。模式決定如何將塊鏈接在一起,並具有重要的安全意義。
ECB(電子密碼本):不要使用
每個塊使用相同的金鑰獨立加密。相同的明文塊產生相同的密文塊。這洩露了資料中的模式。經典示範:用 ECB 加密點陣圖影像會在密文中保留影像的結構,使內容可識別。ECB 包含在標準中,但不應用於具有結構或重複模式的資料(這幾乎包括所有真實世界的資料)。
CBC(密碼塊鏈接):舊式
每個塊在加密前與前一個密文塊進行 XOR 運算。這消除了 ECB 的模式洩露。CBC 是幾十年來的標準模式,但對大多數應用程式已被 GCM 取代。CBC 需要隨機初始化向量(IV),且不提供內建認證(您無法偵測密文是否被竄改)。
GCM(Galois/Counter 模式):當前標準
GCM 將計數器模式加密與 Galois 域認證結合。它提供認證加密:它加密資料並產生可偵測任何修改的認證標記。如果單個位元被更改,解密將失敗而非產生損壞的明文。
NIST 在 SP 800-38D(2007)中標準化了 GCM。這是新實作的推薦模式。
AES-256-GCM 是以 Galois/Counter 模式使用 256 位元金鑰的 AES。這是安全關鍵應用程式應使用的,也是 Vaultaire 用於加密照片和檔案內容的方式。
| 模式 | 模式洩露 | 認證 | 當前建議 |
|---|---|---|---|
| ECB | 是(嚴重) | 否 | 不要使用 |
| CBC | 否 | 否(需要獨立 MAC) | 舊式;搭配 HMAC 可接受 |
| GCM | 否 | 是(內建) | 推薦用於新實作 |
AES-256 對照片儲存意味著什麼
當照片保險庫應用程式聲稱「AES-256 加密」時,三件事應該為真:
檔案內容以 AES-256 加密。原始照片資料(像素、中繼資料、縮圖)使用 256 位元金鑰轉換為密文。
每個檔案使用唯一的初始化向量(IV)。如果兩張相同的照片以相同的金鑰加密,密文應該不同。這需要每個檔案有唯一的 IV。沒有它,統計分析可以揭示模式。
模式提供認證(GCM 或等效)。沒有認證,攻擊者可以在不被偵測的情況下修改密文。解密結果將是損壞的資料而非錯誤。
行銷頁面上的「AES-256」沒有告訴您什麼
AES-256 是必要的,但並不充分。幾個關鍵因素決定加密是否真正保護您的資料:
金鑰衍生很重要。256 位元金鑰如何產生?如果它從 4 位數 PIN 使用弱 KDF 衍生,有效安全性是 4 位數(10,000 種組合),而非 256 位元。強實作使用高迭代次數的 PBKDF2 或具有適當記憶體/時間參數的 Argon2。Vaultaire 使用 PBKDF2 與 HMAC-SHA512,從 5x5 網格上的圖案衍生金鑰,有數十億個可能的輸入。
金鑰儲存很重要。金鑰存在哪裡?如果金鑰以明文儲存在應用程式的沙盒中,任何具有檔案存取權限的惡意軟體都可以讀取它。適當的金鑰儲存使用硬體支援的機制,如 Apple 的安全飛地,金鑰存在具有自己加密記憶體的專用協同處理器中。
加密什麼很重要。一些應用程式加密檔案內容,但保留未加密的檔案名稱、縮圖和中繼資料。鑑識人員可能看不到您的照片,但他們可以在檔案列表中看到「vacation-beach-2025.jpg」。全面加密應單獨覆蓋中繼資料。
金鑰生命週期很重要。應用程式關閉時金鑰是否從記憶體中清除?如果金鑰持久保存在記憶體中,記憶體傾印可能提取它。Vaultaire 在每次應用程式關閉時從記憶體中清除金鑰,並在每次啟動時需要重新輸入圖案。
AES-256 的實際應用:誰在使用它
| 機構 | 使用情境 | 模式 |
|---|---|---|
| 美國政府(NSA) | 機密資訊 | GCM(或帶獨立認證的 CTR) |
| Apple(iCloud ADP) | iCloud 端對端加密 | GCM |
| Signal | 訊息加密 | CBC(帶 HMAC 認證) |
| 銀行 | 金融交易加密 | GCM |
| 1Password | 密碼保險庫 | GCM |
| Vaultaire | 照片和檔案保險庫 | GCM |
| VeraCrypt | 磁碟加密 | XTS(針對磁碟塊優化) |
常見誤解
「軍事級加密」沒有具體意義。行銷頁面使用這個詞是因為聽起來令人印象深刻。AES-256 被軍方使用。AES-128 也是。這個詞不告訴您模式、金鑰衍生、金鑰儲存,或實際加密了什麼資料。
「256 位元加密」可能不代表 AES-256。其他密碼也使用 256 位元金鑰(ChaCha20、Twofish、Serpent)。查核指定了哪種演算法。AES-256-GCM 是當前標準。
AES-256 不能保護弱密碼。如果您的密碼是「1234」且金鑰衍生很弱,無論密碼強度如何,加密實際上都是 4 位數安全性。鏈條在最薄弱的環節斷裂。
AES-256 不能保護使用中的資料。當您查看照片時,它必須在記憶體中解密。那一刻,它以明文形式存在於 RAM 中。適當的實作會最小化這個時間窗口並及時清除解密的資料。
常見問題
AES-256 可以被破解嗎?
沒有已知攻擊可以透過縮減完整金鑰空間來破解 AES-256。已知的攻擊(Bogdanov、Khovratovich 和 Rechberger 於 2011 年提出的雙剋攻擊)將 AES-256 從 2^256 次操作縮減至 2^254.4,這是一個在實際上毫無意義的理論改進。AES-256 至今未被破解。
AES-256 能抵抗量子計算攻擊嗎?
基本上可以。Grover 量子演算法將有效金鑰長度減半:AES-256 等同於對抗量子攻擊的 128 位元安全性。AES-128 將被縮減至 64 位元有效安全性,這可能存在漏洞。NIST 建議使用 AES-256 以應對量子計算進展的長期安全性。
AES-128 和 AES-256 有什麼差異?
AES-128 使用 128 位元金鑰(10 輪)。AES-256 使用 256 位元金鑰(14 輪)。兩者對當前攻擊都被認為是安全的。AES-256 對未來的進展(特別是量子計算)提供更大的安全餘裕。由於額外的輪次,AES-256 比 AES-128 慢約 40%,但硬體加速使現代設備上的差異可以忽略不計。
AES-256 加密會讓我的手機變慢嗎?
感覺不到。現代 iPhone 在安全飛地和處理器中包含專用的 AES 硬體加速。加密或解密一張照片需要幾毫秒。AES 專為硬體實作效率而設計。
我如何知道應用程式是否真的使用 AES-256?
查核應用程式的安全文件,而非僅看其行銷頁面。尋找:具體演算法和模式(AES-256-GCM,而非僅「AES」或「256 位元」)、金鑰衍生方法(PBKDF2、Argon2)、金鑰儲存機制(安全飛地、硬體支援),以及中繼資料是否也被加密。開源應用程式允許獨立驗證。
結論
AES-256 是對稱加密的黃金標準,由 NIST 標準化,被政府和金融機構使用,並能抵抗包括量子計算在內的所有已知攻擊。評估聲稱使用 AES-256 加密的應用程式時,不要只看密碼:查核模式(GCM)、金鑰衍生(高迭代次數的 PBKDF2/Argon2)、金鑰儲存(硬體支援),以及實際加密了什麼資料(內容加中繼資料)。
Vaultaire 使用 AES-256-GCM 進行檔案加密、PBKDF2 與 HMAC-SHA512 進行金鑰衍生、ChaCha20 進行中繼資料加密,以及 Apple 安全飛地進行金鑰管理。這不是行銷語言,而是數學。