Aes

多種加密算法的順序

  • April 17, 2020

在此處輸入圖像描述

如上圖所示,在 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 位。

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