Pseudorandom permutation

A Pseudorandom Permutation (PRP) is a basic primitive which allows someone to succinctly sample and represent a permutation which appears to be uniformly randomly selected. The user, who generates the key, can evaluate the permutation over some domain both forward and backward efficiently. These pseudorandom permutations are also the primitive which represents block ciphers, such as AES.

Definition

An iPRF is a tuple of efficient functions , with respect to a keyspace , domain such that:

  • , is a randomized algorithm that takes a security parameter, and outputs a key
  • , is a deterministic algorithm that takes a key and input , and outputs an element .
  • , is a deterministic algorithm that takes a key and input , and outputs a preimage element

Typically, we assume that is “large,” in the sense that it grows super-polynomially in the security parameter. If instead is bounded by some polynomial in the security parameter, then the primitive is a “small-domain” PRP.

Correctness

A PRP is correct if for all and , .

Security

We define the advantage of a distinguisher as where and is a random permutation over (and is its inverse).

A PRP is secure if for all efficient , there exists a negligible function , such that: .

Other results