Pseudorandom function

A Pseudorandom Function (PRF) allows someone to succinctly represent a function that is indistinguishable from a uniformly random function. A user generates a key and uses it to evaluate a function at many points; any efficient adversary who sees only these input-output pairs cannot distinguish them from a truly random function.

Syntax

A PRF is a pair of efficient algorithms with respect to keyspace , domain , and range :

  • is a randomized function that samples a key
  • is a deterministic function that takes a key and an input , outputting

Properties

Security

\begin{algorithm}
\algname{Game}
\caption{$\Game^{\mathrm{prf}}_{\PRF,\calA}(\secpar)$}
\begin{algorithmic}
\State $k \gets \KeyGen(1^\secpar)$; $b \getsr \{0,1\}$
\State $R \getsr \Funcs(\calD,\calR)$
\Comment{Can be sampled lazily for efficiency}
\State $\calO_0(x) := \Eval(k,x)$
\State $\calO_1(x) := R(x)$
\State $b' \gets \calA^{\calO_b}(1^\secpar)$
\Return $[b' = b]$
\end{algorithmic}
\end{algorithm}

A PRF is pseudorandom if for all efficient ,

is negligible.

Variations

Invertible PRFs

An invertible PRF (iPRF) extends the PRF with an inversion algorithm, allowing recovery of all inputs that map to a given output. An adds:

  • is a deterministic function that returns the preimage set

Note that for domains much larger than the range, may return exponentially many preimages, so efficiency is only meaningful when is reasonable relative to .

Correctness

With an inversion function, it also makes sense to restrict an iPRF to be correct. Meaning if for all for all where the probability is taken over

Security

Invertible PRFs can either achieve the traditional security game or can satisfy the stronger security game where is additionally given access to an inversion oracle that returns the pre-image of a given output .

\begin{algorithm}
\algname{Game}
\caption{$\Game^{\mathrm{iprf}}_{\mathsf{iPRF},\calA}(\secpar)$}
\begin{algorithmic}
\State $k \gets \KeyGen(1^\secpar)$; $b \getsr \{0,1\}$
\State $R \getsr \Funcs(\calD,\calR)$
\Comment{Can be sampled lazily for efficiency}
\State $\calO_0(x) := \Eval(k,x)$ ; $\calO_0^{-1}(y) := \Invert(k,y)$
\State $\calO_1(x) := R(x)$ ; $ \calO_1^{-1}(y) := R^{-1}(y)$
\State $b' \gets \calA^{\calO_b,\calO_b^{-1}}(1^\secpar)$
\Return $[b' = b]$
\end{algorithmic}
\end{algorithm}

An iPRF is strongly pseudorandom if for all efficient ,

is negligible.

Pseudorandom Injective Functions

TODO: define these and say how they relate to PRPs

Puncturable PRFs

Other results

  • OWF implies the existence of PRFs - TODO