如何評價 BitLocker 引入新的磁碟加密模式 XTS AES?
非計算機或者數學專業,國內高中數學不及格,就噹噹搬運工以及簡單翻譯.
資料來源於 Block cipher mode of operation 以及 Disk encryption theory 等.
XTS 與之前 BitLocker 使用的 CBC 都屬於塊密碼操作模式.根據塊密碼的定義,其只能操作定長數據. 對於長度可變的數據,必須將其切割成數個固定長度的塊才能進行操作. 最簡單的方法是對每個塊進行單獨操作,該模式被稱為電子密碼本或者 ECB. 該模式由於無法抵禦重放攻擊以及很好地隱藏數據特徵從而保證隱匿性而很少被使用.
CBC 是 IBM 於 1976 年發明的方法. 其核心原理是每一個明文塊在被加密前要先與前一個塊的密文進行異或運算. 而對於第一個塊,需要使用一個初始向量(一般由密碼學安全偽隨機數生成器生成)與其明文進行異或運算.
針對 CBC 模式的攻擊,可以從已知初始向量、每一個密文塊必須是定長(比如 POODLE) 等方面進行. 其中可以預計的初始向量將可以使得加密後的磁碟帶上攻擊者通過特殊文件創建的水印,從而泄露更多的資料來協助攻擊者進行密碼分析.
XTS 模式是在更早的 XEX 模式的基礎上演化而來的. XEX 需要每一塊的索引地址參與運算,整個過程包括三次異或運算最終得到密文. 而 XTS 則需要兩把獨立的密鑰分別參與運算,其中一把被用來加密數據本身,而另一把則被用來加密初始向量,增加其不確定性,防止可能的水印攻擊.
XTS 模式的弱點在於其無法保證數據完整性。因此一個沒有外部驗證機制的 XTS 系統可以被攻擊者改寫數據而不表現出異常(可能的選擇密文攻擊). 同時,該模式也對流量分析和重放攻擊敏感.
附上 Stack Exchange 上的一個簡單分析 encryption - Compare Blockmode CBC (with diffuser) against XTS
根據該討論:一直到 Windows 7, BitLocker 在 CBC 之外還有一層額外的 diffuser 混淆以減小攻擊面,但是這在 Windows 8 中被去除了。沒有 diffuser 的 CBC 是弱於 XTS 的,而 XTS 又弱於與 diffuser 聯合使用的 CBC. 現在 Windows 10 的 XTS 模式將強於 Windows 8 的純 CBC 模式但是依然不及 Windows 7 的 CBC + diffuser.
You Don"t Want XTS 中也提到, XTS 本身過於複雜而且其在密碼學上並不會帶來巨大優勢.
綜上所述,雖然 XTS 比起 Windows 8 的純 CBC 有所進步,但是比起 Windows 7 的 CBC + diffuser 依然是安全性略差,而且可能會帶來更大的 CPU 開銷.
關於 XTS 的性能問題,我曾經在一台裝備 i3-380UM 以及 Crucial M550 256G 的筆記本上使用 VeraCrypt Serpent-XTS 進行全盤加密。主要改變是開機變慢(這是是 VeraCrypt 設計所致). 在日常使用中並沒有顯著性能下降.
至於 Win8 為何去掉 diffuser 請各位瀏覽完評論以後自行得出結論,初步估計是多方考慮。推薦閱讀:
※我有350萬的明文和密文對,請問能用機器學習的方法來找出加密演算法嗎?
※"ChaCha20" 加密演算法的名字由來有什麼典故?
TAG:微軟Microsoft | 信息安全 | 加密演算法 | 信息安全和密碼學 | Windows10 |