Operation Manual

81
Hash Algorithms
In the Volume Creation Wizard, in the password change dialog window, and in the Keyfile
Generator dialog window, you can select a hash algorithm. A user-selected hash algorithm is used
by the VeraCrypt Random Number Generator as a pseudorandom “mixing” function, and by the
header key derivation function (HMAC based on a hash function, as specified in PKCS #5 v2.0) as
a pseudorandom function. When creating a new volume, the Random Number Generator
generates the master key, secondary key (XTS mode), and salt. For more information, please see
the section Random Number Generator and section Header Key Derivation, Salt, and Iteration
Count.
RIPEMD-160
RIPEMD-160, published in 1996, is a hash algorithm designed by Hans Dobbertin, Antoon
Bosselaers, and Bart Preneel in an open academic community. The size of the output of RIPEMD-
160 is 160 bits. RIPEMD-160 is a strengthened version of the RIPEMD hash algorithm that was
developed in the framework of the European Union’s project RIPE (RACE Integrity Primitives
Evaluation), 1988-1992. RIPEMD-160 was adopted by the International Organization for
Standardization (ISO) and the IEC in the ISO/IEC 10118-3:2004 international standard [21].
SHA-256
SHA-512 is a hash algorithm designed by the NSA and published by NIST in FIPS PUB 180-2 [14]
in 2002 (the first draft was published in 2001). The size of the output of this algorithm is 256 bits.
SHA-512
SHA-512 is a hash algorithm designed by the NSA and published by NIST in FIPS PUB 180-2 [14]
in 2002 (the first draft was published in 2001). The size of the output of this algorithm is 512 bits.
Whirlpool
The Whirlpool hash algorithm was designed by Vincent Rijmen (co-designer of the AES encryption
algorithm) and Paulo S. L. M. Barreto. The size of the output of this algorithm is 512 bits. The first
version of Whirlpool, now called Whirlpool-0, was published in November 2000. The second
version, now called Whirlpool-T, was selected for the NESSIE (New European Schemes for
Signatures, Integrity and Encryption) portfolio of cryptographic primitives (a project organized by
the European Union, similar to the AES competition). VeraCrypt uses the third (final) version of
Whirlpool, which was adopted by the International Organization for Standardization (ISO) and the
IEC in the ISO/IEC 10118-3:2004 international standard [21].