Strongly universal string hashing is fast
arXiv:1202.4961 · doi:10.1093/comjnl/bxt070
Abstract
We present fast strongly universal string hashing families: they can process data at a rate of 0.2 CPU cycle per byte. Maybe surprisingly, we find that these families---though they require a large buffer of random numbers---are often faster than popular hash functions with weaker theoretical guarantees. Moreover, conventional wisdom is that hash functions with fewer multiplications are faster. Yet we find that they may fail to be faster due to operation pipelining. We present experimental results on several processors including low-powered processors. Our tests include hash functions designed for processors with the Carry-Less Multiplication (CLMUL) instruction set. We also prove, using accessible proofs, the strong universality of our families.
Software is available at http://code.google.com/p/variablelengthstringhashing/ and https://github.com/lemire/StronglyUniversalStringHashing
Cited by in corpus (6)
- Lightweight authentication for quantum key distribution
- Faster 64-bit universal hashing using carry-less multiplications
- Fast Memory-efficient Anomaly Detection in Streaming Heterogeneous Graphs
- Private Randomness Agreement and its Application in Quantum Key Distribution Networks
- Regular and almost universal hashing: an efficient implementation
- The Power of Hashing with Mersenne Primes