Veracrypt has always been my favourite encryption tool since it came out . But still there are some things about the tool I don't understand .
- Why is there the possibility to use sha256 or sha512 . This one does not make sense to me at all . As far as I know the output size of the Veracrypt KDF will always have the same length .... so why give the possibility to use a shorter or longer hash ? does it have any advantages ?
- Why does Veracrypt use such strange hashes ? sha512 , Whirlpool , Streebog , etc ... Whirlpool is ( as far as I know ) not even officially a KDF . All thes hashes are rather collison resistant , but not one of them is suited as cryptographic strong hash function . Why not Argon2 , scrypt , bcrypt , ..?
- Why is Veracrypt GPU resistant ? Attacking a VC hash with a GPU is slow . Why ? I don't see any GPU attack countermesures . All the hashes are well implemented in GPU . they pass through PIM which ( I think ) rehashes the output of the last hash with the same algo . And then they pass through PBKDF2 at some point . But even PBKDF2 is rather GPU friendly .