Gcm

XTS 總是比 GCM 更好嗎?

  • September 26, 2020

XTS 適用於磁碟加密,而 GCM 則不適用。兩者都需要相同數量的塊加密呼叫。兩者在加密和解密方面是並行的。XTS 實際上在 openssl 實現中更快(openssl speed -evp aes-256-xts/gcm),不知道為什麼。

為什麼還要費心使用 GCM 而不是 XTS?

您正在嘗試將經過身份驗證的加密與磁碟加密進行比較。GCM 用於一次解決 2 個安全問題:加密和身份驗證。GCM 的設計使得只有知道密鑰的人才能修改密文而不會發出警報。這需要額外的數據用作身份驗證標籤。

另一方面,XTS 僅部分持有此屬性。然而,XTS 的好處是您不需要為身份驗證標籤儲存額外的數據。XTS 還具有(一些)對篡改的抵抗力,因為對密文所做的任何更改都會產生隨機且無意義的明文。但是,這對於身份驗證來說是不夠的,因為攻擊者仍然可以在沒有註意到更改的情況下進行更改。這在攻擊者可能攔截加密通信(例如網路協議)的任何情況下都是不可取的。

對於全盤加密 (FDE),經過身份驗證的加密變得不切實際,因為您需要儲存大量額外數據來驗證完整性(使用 GCM 等模式)。除非您有這麼多磁碟空間,您不介意失去一半,否則這不是一個合理的選擇。您也可以儲存一個單獨的雜湊 (HMAC),但這仍然需要讀取磁碟的全部內容來驗證(這需要很長時間),並且可能會由於驅動器的正常磨損而導致雜湊不匹配。 .. 有效打造俄羅斯輪盤遊戲;除了被槍殺,你會失去數據。

因此,未經身份驗證的加密成為加密整個驅動器的唯一合理方式。由於攻擊者無法控制 XTS 中更改的結果,因此它比 CBC(攻擊者只需通過相當聰明就可以將驅動器重寫為他們想要的任何內容)或 CTR(聰明甚至不是篡改數據的先決條件)之類的模式要好),並且 XTS 不容易受到 ECB 等統計分析的影響。因此,對於無法合理執行身份驗證的情況,這是一個不荒謬的權衡。

引用自:https://crypto.stackexchange.com/questions/84188