I want to have an encrypted partition on my SSD.
Benchmarks (a 100 samples of 100MiB each):
Average read speeds: 418 MB/s
Average write speeds: 386 MB/s
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1 484554 iterations per second for 256-bit key
PBKDF2-sha256 666185 iterations per second for 256-bit key
PBKDF2-sha512 459096 iterations per second for 256-bit key
PBKDF2-ripemd160 297552 iterations per second for 256-bit key
PBKDF2-whirlpool 204161 iterations per second for 256-bit key
# Algorithm | Key | Encryption | Decryption
aes-cbc 128b 535.0 MiB/s 1903.7 MiB/s
serpent-cbc 128b 75.2 MiB/s 264.3 MiB/s
twofish-cbc 128b 165.7 MiB/s 311.6 MiB/s
aes-cbc 256b 392.5 MiB/s 1433.2 MiB/s
serpent-cbc 256b 75.2 MiB/s 265.2 MiB/s
twofish-cbc 256b 165.4 MiB/s 312.8 MiB/s
aes-xts 256b 1592.4 MiB/s 1583.7 MiB/s
serpent-xts 256b 271.9 MiB/s 260.4 MiB/s
twofish-xts 256b 306.6 MiB/s 307.5 MiB/s
aes-xts 512b 1218.7 MiB/s 1241.1 MiB/s
serpent-xts 512b 272.0 MiB/s 258.8 MiB/s
twofish-xts 512b 306.1 MiB/s 306.4 MiB/s
I don't really know how to interpret this. I see that an obvious choice is AES-XTS, but which one? i.e. how is it possible that AES-XTS can read and write faster than my actual read/write speeds?! Does it matter at this point if I choose AES-XTS 512 VS 256? Or can they both give me the maximum read/write speeds of my drive?
What about hashing? Why is PBKDF2-SHA1 slower than PBKDF2-SHA2? And how many iterations should I choose if I chose PBKDF2-SHA512? (I don't mind waiting for up to 3-5 seconds.