This is a maintenance fork of a C implementation of the SipHash algorithm
 
 
Go to file
JP Aumasson e678534ed2 no $ 2014-03-24 08:46:57 +01:00
.gitignore Initial commit 2014-03-23 02:51:00 -07:00
LICENSE Initial commit 2014-03-23 02:51:00 -07:00
README.md no $ 2014-03-24 08:46:57 +01:00
main.c test tweaks 2014-03-23 18:03:51 +01:00
makefile make dist 2014-03-23 13:41:25 +01:00
siphash24.c code formatting 2014-03-23 12:22:30 +01:00

README.md

SipHash

Reference implementation of SipHash, a family of pseudorandom functions optimized for speed on short messages.

SipHash was designed as a mitigation to hash-flooding DoS attacks. It is now used in the hash tables implementation of Python, Ruby, Perl 5, etc.

SipHash was designed by Jean-Philippe Aumasson and Daniel J. Bernstein.

Usage

Running

  make

will build sanity checks (test vectors) for SipHash-2-4, the default version of SipHash:

  ./siphash24_test

verifies 64 test vectors, and

  ./siphash24_test_debug

does the same and prints intermediate values.

The code can be adapted to implement SipHash-c-d, the version of SipHash with c compression rounds and d finalization rounds, by tweaking the lines

#define cROUNDS 2
#define dROUNDS 4

License

The SipHash reference code is released under CC0 license, a public domain-like licence.

References

The SipHash page includes

  • a list of third-party implementations and modules
  • a list of projects using SipHash
  • references to cryptanalysis results