Hash function and library comparisons

By steve, 24 May, 2017

I have been considering some improvements to ddumbfs which will make the on-disk format incompatible with the current code. As a result, I have also been considering other hashing functions and libraries to use. Below are a set of tables to show different hash functions, libraries and the speed that I was getting when running them on a Xeon E5-2609 CPU:

One thing that I discovered is that the mhash implementation of the TIGER has algorithm does not generate the correct hash value for a blank string (as shown on Wikipedia

4kb Block size:

Library SHA1 TIGER128 TIGER192 SHA256 SHA512/256 SHA3-256
mhash 180 MB/s 277 MB/s 277 MB/s 99 MB/s
libssl 420 MB/s 140 MB/s 218 MB/s
rhash 408 MB/s 298 MB/s 139 MB/s 77 MB/s
sodium 102 MB/s

8kb Block size:

Library SHA1 TIGER128 TIGER192 SHA256 SHA512/256 SHA3-256
mhash 184 MB/s 284 MB/s 285 MB/s 99 MB/s
libssl 425 MB/s 141 MB/s 220 MB/s
rhash 420 MB/s 304 MB/s 140 MB/s 78 MB/s
sodium 103 MB/s

16kb Block size:

Library SHA1 TIGER128 TIGER192 SHA256 SHA512/256 SHA3-256
mhash 185 MB/s 288 MB/s 288 MB/s 101 MB/s
libssl 430 MB/s 142 MB/s 222 MB/s
rhash 426 MB/s 305 MB/s 142 MB/s 79 MB/s
sodium 103 MB/s

Comments