Cryptography Reference
In-Depth Information
applications (and especially in cryptography) it is desirable to generate pseudorandom
ensembles using as little true randomness as possible . This leads to the definition of a
pseudorandom generator.
3.3.1. Standard Definition of Pseudorandom Generators
Definition 3.3.1 (Pseudorandom Generator, Standard Definition): A pseudo-
random generator is a deterministic polynomial-time algorithm G satisfying the
following two conditions:
1. Expansion: There exists a function l :
N → N
such that l ( n )
>
n for all n
∈ N
,
|
|=
|
|
∈{
,
} .
and
G ( s )
l (
s
) for all s
0
1
2. Pseudorandomness: The ensemble
{
G ( U n )
} n ∈N is pseudorandom.
The function l is called the expansion factor of G.
The input s to the generator is called its seed . The expansion condition requires that
the algorithm G map n -bit-long seeds into l ( n )-bit-long strings, with l ( n )
> n . The
pseudorandomness condition requires that the output distribution induced by applying
algorithm G to a uniformly chosen seed be polynomial-time-indistinguishable from a
uniform distribution, although it is not statistically close to uniform. Specifically, using
Exercise 5 (for the first equality), we can bound the statistical difference between G ( U n )
and U l ( n ) as follows:
1
2 ·
Pr
U l ( n ) =
x Pr
x ] =
ma S
U l ( n )
S Pr
S ]
[ G ( U n )
=
Pr
[ G ( U n )
x
U l ( n ) ∈{ G ( s ): s ∈{ 0 , 1 }
}
n
Pr
2 l ( n )
2 n ·
2 l ( n )
1
2
where the last inequality uses l ( n ) n + 1. Note that for l ( n ) 2 n , the statistical
difference is at least 1 2 n .
The foregoing definition is quite permissive regarding the expansion factor l : N→N .
It asserts only that l ( n ) n + 1 and l ( n ) poly( n ). (It also follows that l ( n ) is computed
in time polynomial in n ; e.g., by computing
2 ( l ( n ) n )
=
1
| G (1 n )
|
.) Clearly, a pseudorandom generator
with expansion factor l ( n )
1 is of little value in practice, since it offers no
significant saving in coin tosses. Fortunately, as shown in the next subsection, even
pseudorandom generators with such a small expansion factor can be used to construct
pseudorandom generators with any polynomial expansion factor. Hence, for every two
expansion factors l 1 :
= n +
that can be computed in poly( n ) time, there
exists a pseudorandom generator with expansion factor l 1 if and only if there exists a
pseudorandom generator with expansion factor l 2 . This statement is proved by using any
pseudorandom generator with expansion factor l 1 ( n ) def
N→N
and l 2 :
N→N
=
n
+
1 to construct, for every
polynomial p (
·
), a pseudorandom generator with expansion factor p ( n ). Note that a
Search WWH ::




Custom Search