Cryptography Reference
In-Depth Information
1.
Efficient indexing:
There exists a probabilistic polynomial-time algorithm I and
a mapping from strings to functions,
(
I
(1
n
))
and F
n
are identically
φ
, such that
φ
distributed.
We denote by f
i
the function assigned to the string i (i.e., f
i
def
=
φ
(
i
)
).
2.
Efficient evaluation:
There exists a polynomial-time algorithm V
such that
,
=
f
i
(
x
)
for every i in the range of I
(1
n
)
and x
∈{
,
}
(
n
)
.
V
(
i
x
)
0
1
In particular, functions in an efficiently computable function ensemble have relatively
succinct representations (i.e., of polynomial (in
n
) rather than exponential (in
n
) length).
It follows that efficiently computable function ensembles can have only exponentially
many functions (out of the double-exponentially many possible functions, assuming
(
n
)
=
n
).
Another point worth stressing is that efficiently computable pseudorandom functions
can be efficiently evaluated at given points
provided that the function description is given
as well
. However, if the function (or its description) is
not
known, then the value of the
function at a given point cannot be approximated, even in a very liberal sense and even
if the values of the function at other points are given.
Terminology.
In the rest of this topic we consider only efficiently computable pseudo-
random function ensembles. Hence, whenever we talk of pseudorandom functions, we
actually mean functions chosen at random from an efficiently computable pseudoran-
dom function ensemble.
Observe that, without loss of generality, the sequence of coin tosses used by the in-
dexing algorithm in Definition 3.6.3 can serve as the function's description. Combining
this observation with Definition 3.6.2, we obtain the following alternative definition of
efficiently computable pseudorandom functions:
Definition 3.6.4 (Efficiently Computable Pseudorandom Function Ensem-
bles, Alternative Formulation):
An
efficiently computable pseudorandom
function ensemble
(pseudorandom function)
is a set of finite functions
f
s
:
{
0
,
1
}
(
|
s
|
)
→{
0
,
1
}
(
|
s
|
)
s
∈{
0
,
1
}
∗
where
:
N → N
and the following two conditions hold:
1.
Efficient evaluation:
There exists a polynomial-time algorithm that on input s and
x
}
(
|
s
|
)
returns f
s
(
x
)
.
2.
Pseudorandomness:
The function ensemble F
∈{
0
,
1
={
F
n
}
n
∈N
, defined so that F
n
is
uniformly distributed over the multi-set
{
f
s
}
s
∈{
0
,
1
}
n
, is pseudorandom.
We comment that more general notions of pseudorandom functions can be defined and
constructed analogously; see Section 3.6.4.
3.6.2. Construction
Using any pseudorandom generator, we can construct a pseudorandom function en-
semble (for
(
n
)
=
n
) that is efficiently computable.
150