Pseudorandom permutation

A Pseudorandom Permutation (PRP) allows someone to succinctly represent a permutation that is indistinguishable from a uniformly random permutation. A user generates a key and uses it to evaluate the permutation forward and backward at many points; any efficient adversary who sees only these input-output pairs cannot distinguish them from a truly random permutation. PRPs are the formal model behind block ciphers such as AES.

Syntax

A PRP is a triple of efficient algorithms with respect to keyspace and domain :

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

For every key , is a bijection on .

Properties

Correctness

A PRP is correct if for all and ,

Security

\begin{algorithm}
\algname{Game}
\caption{$\Game^{\mathrm{prp}}_{\PRP,\calA}(\secpar)$}
\begin{algorithmic}
\State $k \gets \KeyGen(1^\secpar)$; $b \getsr \bits$
\State $\pi \getsr \Perms(\calD)$
\Comment{Can be sampled lazily}
\State $\calO_0(x) := \Eval(k,x)$
\State $\calO_1(x) := \pi(x)$
\State $b' \gets \calA^{\calO_b}(1^\secpar)$
\Return $[b' = b]$
\end{algorithmic}
\end{algorithm}

A PRP is pseudorandom if for all efficient ,

is negligible.

Strong Security

In the strong PRP (sPRP) security game, the adversary additionally receives an inverse oracle. This is a strictly stronger notion than standard PRP security.

\begin{algorithm}
\algname{Game}
\caption{$\Game^{\mathrm{sprp}}_{\PRP,\calA}(\secpar)$}
\begin{algorithmic}
\State $k \gets \KeyGen(1^\secpar)$; $b \getsr \bits$
\State $\pi \getsr \Perms(\calD)$
\Comment{Can be sampled lazily}
\State $\calO_0(x) := \Eval(k,x)$ ; $\calO_0^{-1}(y) := \Invert(k,y)$
\State $\calO_1(x) := \pi(x)$ ; $\calO_1^{-1}(y) := \pi^{-1}(y)$
\State $b' \gets \calA^{\calO_b,\calO_b^{-1}}(1^\secpar)$
\Return $[b' = b]$
\end{algorithmic}
\end{algorithm}

A PRP is strongly pseudorandom if for all efficient ,

is negligible.

Variations

Small-domain PRPs

Typically, is assumed to grow super-polynomially in , so that a brute-force enumeration of is infeasible. When is instead polynomial in , the primitive is called a small-domain PRP and requires additional care, as some standard constructions and security reductions no longer apply.

Other results

  • PRFs imply the existence of large-domain PRPs — LR88
  • PRPs imply the existence of large-domain PRFs (and infact these are invertible PRFs) — Switching Lemma