# Cryptographic Hash

A cryptographic hash function is a hash function that satisfies the properties of pre-image resistance, second pre-image resistance and collision resistance. Here, a hash function is a mathematical algorithm that maps data of an arbitrary size (or “message”) to a bit array of a fixed size (the “hash value”, “hash”, or “message digest”), that is, a function that takes a string of any size as input and produces a fixed length value.

Pre-image resistance
Given a hash value `h`, it should be difficult to find any message `m` such that

``h = hash(m)``

Second pre-image resistance (weak collision resistance)
Given an input `m1`, it should be difficult to find a different input `m2` such that

``hash(m1) = hash(m2)``

Collision resistance (strong collision resistance)
It should be difficult to find two different messages `m1` and `m2` such that

``hash(m1) = hash(m2)``

A pair of messages that has the same hash value is called a cryptographic hash collision.

Please share if you like this post: