What is a cryptographic hash function?
A cryptographic hash function is a mathematical algorithm designed to secure data by transforming inputs into fixed-size strings. Unlike keyless hash algorithms such as SHA, specialized pseudorandom functions like SipHash require a secret key to ensure security against attacks. These functions are foundational building blocks for data verification structures like Merkle trees.
What we know
- General purpose keyless hash functions like SHA are designed so that it is difficult for an attacker to find two different messages that produce the same hash output. [3]
- SipHash is an add-rotate-xor based family of pseudorandom functions created in response to hash flooding denial-of-service attacks. [3]
- SipHash must always be used with a secret key to remain secure, guaranteeing that an attacker cannot deduce the key or predict outputs for unseen messages. [3]
- Merkle trees use cryptographic hashes on data blocks and child nodes to allow efficient and secure verification of large data structures. [4]
Where to go next
- how it workedHow do Merkle trees use cryptographic hashes?
- what caused itWhat caused the creation of SipHash?
- compared withHow do Secure Hash Algorithms compare to SipHash?
- how we knowWhat public attacks exist against hash functions?
- whoWho patented the hash tree concept?
- an unexpected connectionHow did denial-of-service attacks lead to a new pseudorandom function?The threat of late-2011 hash flooding attacks directly motivated the invention of SipHash in 2012 by Jean-Philippe Aumasson and Daniel J. Bernstein.
Sources
- [1]Comparison of cryptographic hash functions · CC BY-SA 4.0
- [2]Hash function security summary · CC BY-SA 4.0
- [3]SipHash · CC BY-SA 4.0
- [4]Merkle tree · CC BY-SA 4.0