3 ms·
All of those mentioned have Hash flooding issues due to invertability or lack of diffusion. I think SipHash is the better choice for non-cryptographic use case
by iou 6y ago
All of those mentioned have Hash flooding issues due to invertability or lack of diffusion.
I think SipHash is the better choice for non-cryptographic use cases (e.g. hash tables) https://131002.net/siphash/ https://131002.net/siphash/
- niftich 6y agoSipHash was specifically designed to be resistant to hash flooding attacks. FWIW, the SMHasher test suite takes the view [1] that defense against hash flooding attacks is a concern for the hash table's collision resolution method, which is a fair point. Nonetheless, SipHash was subsequently adopted by several programming languages' standard libraries for use in hash tables. SipHash is also notable for its clear and concise specification, including security claims, preliminary cryptanalysis, and a discussion on hash flooding [2]. [1] https://github.com/rurban/smhasher#security https://github.com/rurban/smhasher#security [2] https://eprint.iacr.org/2012/351.pdf https://eprint.iacr.org/2012/351.pdf
- dependenttypes 6y agoSipHash is considered acceptable even for cryptographic use cases (MACs)