A cryptographic hash function H ∶ {0, 1} ∗ → {0, 1} n is a function that computes for any arbitrarily long message M a fixed-length hash value of n bits. It is a versatile cryptographic primitive used in many applications including digital signature schemes, message authentication codes, password hashing and content-addressable storage.

https://shattered.io/static/shattered.pdf