Aes
多種加密算法的順序
如上圖所示,在 VeraCrypt 中,您可以選擇
Serpent -> Twofish -> AES
或者
AES -> Twofish -> Serpent
這些排列有什麼意義?如果我使用有什麼區別嗎
A -> B -> C
或者
C -> B -> A
加密算法的組合?
是的,在 VeraCrypt 的情況下存在差異,但在實踐中可以忽略不計。
首先,我們需要考慮 VeraCrypt 如何實際執行加密算法的級聯,即(字面意思)塊級連結。例如:
$$ C=E_{XTS}^{1}(E_{XTS}^{2}(E_{XTS}^{3}(M))) $$
其中每個 $ E $ 是在 XTS 模式下執行的分組密碼,並且都在相同位置使用相同的 XTS 參數。當然,每個分組密碼的密鑰仍然是獨立的,因此產生了 1536 位的密鑰材料( $ =6\times 256 $ , XTS 自己使用 2 256 位密鑰,每個 XTS 實例都有自己的密鑰)。
現在,當我們特別考慮以下結果時,順序差異開始發揮作用:
$$ … $$級聯至少與第一個組件密碼一樣難以破解。
摘自:Maurer 和 Massey 的*“級聯密碼:成為第一的重要性”*的摘要(PDF)
所以很明顯你想要你最信任的密碼在第一個位置,這就是你在這裡選擇順序的全部原因。
但是請注意:
實際上使用三重加密是一種資源浪費,因為當使用獨立密鑰時,還沒有一個可用的密碼(特別是)被破解,並且任何攻擊者都無法使用暴力破解,即使密鑰長度是“僅”256 位。