Hash functions

A hash function is function which can have a number of different properties in cryptography. Most often, it is requried that the hash function is one-way or preimage resistant. If such a hash function exists, then many other primitives are known to exist. In other settings, it’s important that the hash function is collision resistant, meaning that it is hard to find two colliding inputs and implies one-wayness.

Syntax

A hash function is a function where is the key space, is the domain, and is the range.

Properties

There are a number of different properties that different cryptographic protocols require of hash functions. Sometimes, even the particular assumptions are insufficient to prove security of a protocol. In this casee, there is sometimes still hope to prove security when modeling a hash function as a random oracle.

Preimage resistance (one-wayness)

One of the most fundamental properties is preimage resistant or one-way. This is important in many computaitonal complexity analyses.

\begin{algorithm}
\algname{Game}
\caption{$\Game^{\mathrm{pr}}_{\hash,\calA}(\secpar)$}
\begin{algorithmic}
\State $k \getsr \calK$ ; $x \getsr \calD$
\State $y \gets \hash(k,x)$
\State $\hat{x} \gets \calA(k,y)$
\Return $[\hash(k,\hat{x}) = y]$
\end{algorithmic}
\end{algorithm}

A hash function is one-way or preimage resistant if for every efficient

is negligible. In this case, is called a one-way function (OWF).

Collision resistance

Often times, protocols require stronger properties than one-wayness alone. Collision resistant hash functions are strictly stronger than preimage resistance.

\begin{algorithm}
\algname{Game}
\caption{$\Game^{\mathrm{cr}}_{\hash,\calA}(\secpar)$}
\begin{algorithmic}
\State $k \getsr \calK$
\State $(\hat{x}_0, \hat{x}_1) \gets \calA(k,y)$
\Return $[\hash(k,\hat{x}_0) = \hash(k,\hat{x}_1)]$
\end{algorithmic}
\end{algorithm}

A hash function is collision resistant if for every efficient

is negligible.

Distributional collision resistance

Related results

Unknown results

  • It’s unkonwn if one-way functions imply collision resistant hash functions.