Pseudorandom function
From CRYPTUTOR
A pseudorandom function (PRF) is a function whose input-output functionality, when accessed as an oracle, appears like that of a random function, to any polynomial-time computations.
Contents |
Definition
Let m and
be polynomials, let k be a security parameter, and let
be the set of all functions from
.
Let
be a set of functions indexed by seeds s (
). Then
is a pseudorandom function family if it has the following properties:
- Efficiency:
is computable in deterministic polynomial time, given the seed s and x.
- Pseudorandomness: For all non-uniform oracle PPT adversaries A, the following difference is negligible in k:
Note that the adversary A gets access only
as an oracle, and that the seed s is not given to the adversary.
We often abuse notation and simply call the function F (or
for a randomly chosen s) a PRF.
Relationship to pseudorandom generators
The definition of pseudorandomness does not apply to exponentially long input strings, but the PRF definition can be viewed as an extention of pseudorandomness for exponentially long strings. Since we cannot give an exponentially long string as input to a polynomial-time adversary, we instead provide a mechanism for random access into the string. Under this interpretation, a PRF
implicitly represents the exponentially long pseudorandom string:
-
.
Existence
A PRF can be constructed from any pseudorandom generator using the GGM construction.

