YALE UNIVERSITY
DEPARTMENT OF COMPUTER SCIENCE
| CPSC 461b: Foundations of Cryptography | Notes 13 (rev. 1) | |
| Professor M. J. Fischer | February 24, 2009 | |
Lecture Notes 13
Lecture 12 covered several technical proofs fairly quickly. In this lecture, we reviewed the three theorems from last time and focused on the key ideas that made the proofs work. (The complete proofs are contained in the written notes for Lecture 12.)
for some polynomial p(⋅). If the input is α = U2n, then the distinguisher will
output 0 whenever U2n is not in the range of G(s) (as s ranges over length-n strings). The
size of the range is 2n but the number of choices for α is 22n, so the probability of giving
output 1 in this case is at most 2n∕22n = 1∕2n. Hence, the difference in probabilities is at
least
-
>
, contradicting the assumption that G is pseudorandom.
The construction of a pseudorandom generator from an arbitrary strongly one-way function is complicated and not included in the textbook. However, if strongly one-way permutations exist, then it is straightforward to construct a pseudorandom generator.
Theorem 1 Let f be a length-preserving 1-1 strongly one-way function and b a hard core for f. Then

is a pseudorandom generator.
Proof: Assume G is not pseudorandom. Then there exists a bit predictor A with significant advantage. Let α = G(s), where s = Un. Because f is 1-1, f(Un) is uniformly distributed on length-n strings, so A can’t predict any of the first n bits of α with any advantage. Since A does have an advantage overall, then it must have an advantage at predicting bit n+1. But this means that A is able to get an advantage at predicting b(s) after having read f(s), contradicting the assumption that b(s) is a hard core for f. __
Theorem 1 gives an easy and efficient method for constructing a polynomial-expansion pseudorandom number generator given a strongly one-way permutation f with a hard core predicate b. Namely, on initial seed s, do the following:
| 1. | s0 = s |
| 2. | n = |s| |
| 3. | for j = 1 to p(n) { |
| 4. | σj = b(sj-1) |
| 5. | sj = f(sj-1) |
| 6. | } |
| 7. | Output σ1…σp(n). |
An ℓ-bit function ensemble is a sequence F = {Fn}n
ℕ of random variables such that Fn assumes values
in the set of functions mapping ℓ(n)-bit-long strings to ℓ(n)-bit-long strings. The uniform ℓ-bit function
ensemble, H = {Hn}n
ℕ, has Hn uniformly distributed over the set of all functions mapping
{0,1}ℓ(n) →{0,1}ℓ(n).
Definition: An ℓ-bit function ensemble F is pseudorandom if, for every probabilistic polynomial-time oracle machine M, every positive polynomial p(⋅), and all sufficiently large n,
![Fn n Hn n -1--
|P r[M (1 ) = 1]- P r[M (1 ) = 1]| < p(n).](ln135x.png)
Definition: An ℓ-bit function ensemble F is efficiently computable iff there exist polynomial-time algorithms I, V such that
{0,1}ℓ(n), where fi = ϕ(i) is the
function described by i.In the next lecture, we will show how to construct an efficiently computable ℓ-bit pseudorandom function ensemble, starting from a pseudorandom generator G with expansion factor 2n.