Hash

關於 Veracrypt 雜湊函式的一些問題

  • July 23, 2017

Veracrypt 自問世以來一直是我最喜歡的加密工具。但是仍然有一些關於我不明白的工具的事情。

  1. 為什麼有可能使用 sha256sha512 。這一點對我來說毫無意義。據我所知, Veracrypt KDF 的輸出大小將始終具有相同的長度….那麼為什麼要使用更短或更長的雜湊值呢?它有什麼優點嗎?
  2. 為什麼 Veracrypt 使用如此奇怪的雜湊值?sha512、Whirlpool、Streebog 等… Whirlpool(據我所知)甚至不是正式的 KDF。所有這些散列都具有相當的抗衝突性,但沒有一個適合作為加密強散列函式。為什麼不是 Argon2 , scrypt , bcrypt ,..?
  3. 為什麼 Veracrypt GPU 具有抗性?用 GPU 攻擊 VC 雜湊是很慢的。為什麼 ?我沒有看到任何 GPU 攻擊對策。所有雜湊都在 GPU 中很好地實現。他們通過 PIM (我認為)使用相同的算法重新散列最後一個雜湊的輸出。然後他們在某個時候通過 PBKDF2。但即使是 PBKDF2 也相當 GPU 友好。
  1. 這些散列函式也用於密鑰派生函式。在抗碰撞等方面,兩者對於 KDF 的安全性大致相同,但 SHA512 提供了更高的安全性作為自定義硬體攻擊的對策,因為記憶體要求高於 SHA256 和自定義硬體來破解 FPGA 等密碼更貴。所以使用 SHA512 有一個小優勢,即使輸出在最後被截斷。
  2. 雖然我無法解釋 VeraCrypt 對雜湊算法的選擇,但提供各種功能作為針對使用 ASIC 的自定義硬體攻擊的對策並不是一個壞主意,因為必須為每種算法生產這些晶片。這也可能是使用不同 SHA 變體的原因。我同意你的觀點,Argon2、scrypt、bcrypt 會比 PBKDF2 更好,即使在高迭代時,它仍然容易受到自定義硬體攻擊。但是 VeraCrypt 採用了 TrueCrypt 的糟糕設計,其中所有可能的密鑰派生組合都在試錯過程中進行了測試(參見VeraCrypt 加密方案的第 3 章)。這限制了所有密鑰派生函式的時間量(請參閱Bill Cox 的回應)。因此,如果它依次測試 PBKDF2、Argon2 和 scrypt,延遲會急劇增加。
  3. 我不知道 VeraCrypt 是否或為什麼抗 GPU。hashcat支持 GPU 來破解 VeraCrypt 卷,但我對性能一無所知。

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