HighwayHash

HighwayHash is a family of fast pseudorandom functions developed by Jyrki Alakuijala and Jan Wassenberg. The stated design goals are high-throughput mixing and low-cost finalization. An open-source (Apache 2 license) reference implementation was published in March 2016.

Overview

HighwayHash computes 64-bit (or up to 256 bit) digests from a 256-bit secret key and a variable-length input. It processes 32 bytes at a time using AVX-2 SIMD instructions. For 1 KiB blocks, the reported[1] throughput is 11.3 GB/s (single-core), or 0.3 cycles per byte. This is about 10 times as fast as existing secure hashes in the ECRYPT hash benchmark.[2]

The mixing multiplies 32-bit halves of the input with internal state, yielding a 64-bit result which is permuted and added to the state. The finalization involves four mixing rounds.

Applications

Suggested applications include hash tables immune to hash-flooding attacks, and pseudorandom number generation.

Naming

The name HighwayHash is similar to other hashes developed within Google: CityHash and FarmHash.

See also

References

This article is issued from Wikipedia - version of the 5/26/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.