Encryption
XTS 模式下的 AES 對數據流加密是否不安全?
誰能向我解釋為什麼 XTS 模式下的 AES 對於數據流加密來說是不安全的?我一直無法為此找到明確的解釋。
來自 Ptaeck 的網站(這裡)(你連結了這個)
It’s complicated. It’s a wide-block tweakable mode built out of a narrow-block tweakable mode, it uses two keys unnecessarily, and it uses ciphertext stealing to handle variable-length inputs. Another way to say “complicated” is “hard to prove correct”.
這本質上意味著它很容易被錯誤地實現,並且可能不像最初想像的那樣安全。
It’s unclear what XTS’s goals are. It’s ECB-like. It can’t do a perfect job of providing privacy. It’s not authenticated. Attackers can rewrite plaintexts. It’s hard for a cryptographer to know what they’d be trying to prove. “behavesLikeXTS”? OK, and?
當不用於磁碟加密時,缺乏身份驗證是一個大問題:如果攻擊者可以在傳輸過程中修改接收者無法檢測到的密文。典型的例子是重寫交易的接收者或金額以使攻擊者獲得資金。
The wide-block-of-narrow-blocks property weakens XTS unnecessarily. As the disk rewrites a given sector, attackers can collect fine-grained (16 byte) ciphertexts. They get to manipulate ciphertexts surgically. It would have been possible to define a “native” wide-block tweakable cipher without that property, but that wouldn’t have been as performant.
關於類似 ECB 的一點意味著在密文中可以檢測到特定規模的明文數據中的模式。這很糟糕,在某些情況下,它可以讓攻擊者確定明文的內容。
由於缺乏身份驗證,這也是一個問題。攻擊者可以觀察到密文狀態的變化,並響應他們對密文的變化。這使得攻擊更容易。不一定實用,但如果可能的話,不是你想做的事情。
一個理想的密碼應該是計算上不可行的,攻擊者在沒有檢測到的情況下修改(經過身份驗證,保持完整性),除了明文的大小(機密)之外,不應該透露任何關於明文的資訊,並且唯一地綁定到給定的來源(身份驗證)。XTS 不提供身份驗證,不保持完整性,並且在其機密性方面存在一些弱點。這是我們在沒有專門文件系統的情況下進行磁碟加密的最佳選擇,但對於沒有通用文件系統上的全磁碟加密限制的任何事情來說,這是一個糟糕的選擇。