SipHash64
SipHash function with 64-bit output.
Recommended parameters are:
- (c_rounds=4, d_rounds=8) for conservative security; regular hash functions such as BLAKE2 or BLAKE3 are usually a better alternative.
- (c_rounds=2, d_rounds=4) standard parameters.
- (c_rounds=1, d_rounds=3) reduced-round function. Faster, no known implications on its practical security level.
- (c_rounds=1, d_rounds=2) fastest option, but the output may be distinguishable from random data with related keys or non-uniform input - not suitable as a PRF.
SipHash is not a traditional hash function. If the input includes untrusted content, a secret key is absolutely necessary. And due to its small output size, collisions in SipHash64 can be found with an exhaustive search.
Fields of this type
Fields
Initialize a state for a SipHash function
Functions
- init
- Initialize a state for a SipHash function
- update
- Add data to the state
- final
- Return an authentication tag for the current state
- create
- Return an authentication tag for a message and a key
- finalInt
- Return an authentication tag for the current state, as an integer
- toInt
- Return an authentication tag for a message and a key, as an integer
Error sets in this namespace
Error Sets
= 16
Values
- key_length
- = 16
- mac_length
- = @sizeOf(T)
- block_length
- = 8
Source
Implementation
pub fn SipHash64(comptime c_rounds: usize, comptime d_rounds: usize) type {
return SipHash(u64, c_rounds, d_rounds);
}