加密引擎(cryptography engine)
每次你透過 HTTPS 載入網頁,你的裝置都在加密與解密一股資料洪流——把它打亂,讓竊聽者只看到亂碼,再為你還原。這背後的數學(AES 這類密碼、SHA-256 這類雜湊)是固定、定義明確的,而且幾乎在每個穿越網路或寫入磁碟的位元組上都會跑。加密引擎就是為做這個數學而打造的硬體區塊——加密、解密、雜湊——比通用 CPU 快得多、有效率得多。
具體來說,加密引擎是一個小型固定功能的加速器,接好線以直接在邏輯中計算某個標準演算法。以 AES 加密為例:在軟體裡每個區塊要花許多 CPU 指令(替換、位移、混合,重複數個「回合」);硬體 AES 引擎在單一專用電路中完成一整個回合,所以它在少數幾個週期內就加密一個區塊。CPU 只是把一把金鑰與一塊資料交給引擎,再收回密文。因為演算法永不改變,沒有理由把它留在緩慢的通用形式裡——這引擎正是把穩定、高量運算固定進矽的教科書案例。現代 CPU 甚至把簡單的加密折進專用指令(如 x86 上的 AES-NI 指令)。
為何它的意義超越速度:硬體加密引擎更快、能耗大幅更低(當每個封包與每次磁碟寫入都預設加密時,這很重要),且能做得更安全——因為金鑰可以住在引擎內部、永不暴露給通用軟體,而一個謹慎的硬體實作能抵抗一個天真軟體版本會洩漏的時序側通道攻擊。誠實的提醒是:「用硬體」並不自動等於「安全」:設計不良的引擎仍可能透過功耗或時序側通道洩漏祕密,而一個固定的引擎在演算法本身日後被破解時無法修補。
全磁碟加密把寫入儲存的每個區塊都加密。有了硬體 AES 引擎,手機能透明地完成這件事,電池代價微乎其微;用軟體做同樣的 AES,會在每一次讀寫上明顯多耗 CPU 與電力——這正是為什麼專用加密硬體是現代 SoC 的標配。
加密引擎把穩定、高量的演算法固定進矽:更快、能耗遠低,且能守護金鑰。
用硬體做加密並不自動安全——粗心的引擎仍可能透過功耗或時序側通道洩漏金鑰,且硬接線的演算法在日後被破解時無法更新。