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

  • OWFs imply PRFs via a two-step construction: OWF → PRG (HILL99) → PRF via the GGM binary-tree construction (GGM86)
    • The GGM tree construction: given a length-doubling PRG , define by starting from and at each bit applying either the left or right half of
  • PRF from DDH: the Naor-Reingold construction maps to and is secure under DDH — NR97
  • PRF implies CPA-secure SKE: CTR-mode encryption
  • PRF implies MAC: is a secure one-time MAC; extending to many messages uses standard domain-extension techniques