返回题库

PUMaC 2016 · 加试 · 第 8 题

PUMaC 2016 — Power Round — Problem 8

专题
Discrete Math / 离散数学
难度
L3
来源
PUMaC

题目详情

Problem 8.1. (15 points) Let f be a one-way permutation and b be a hard-core bit for f . Let H ( x ) = f ( x ) ◦ b ( x ). Prove that H ( x ) is a pseudorandom generator. Explain why this means that if one-way permutations exist, then pseudorandom generators exist. (Note: you may not use Theorem 8.1.1 to solve this problem. Also, for the second part, it is sufficient to explain why, if one-way functions exist then pseudorandom generators with (reasonable) input-length limitations exist — that is, functions that are pseudorandom generators modulo the same caveat about g not quite being a one-way function (see text below Theorem 7.3.2).) 8.3 Extending the Stretch of a PRG The construction in the previous section has a limitation: it creates a PRG with a length extension function ` ( n ) = n + 1, and by the construction in Section 6.2, a secure encryption scheme whose key length is only one bit shorter than the message length. This isn’t much better than the one-time pad! Let’s see if we can make a pseudorandom generator with a more impressive length extension function (larger “stretch”). What if we take our pseudorandom generator that takes an input x of length n and outputs a bit string of length n + 1, but instead of applying H just once, we apply it, take the output and apply H again, and so on, arbitrarily many times? It turns out that this natural idea in fact works!

解析

Problem 8.2. Define the following distributions (perhaps it makes sense to call them random ′ variables) of ( n )-bit strings. (These are called “hybrids” for reasons that will become apparent.) ′ ′ ( n ) − n A = H ( U ) = H ( U ) 0 n n ′ ( n ) − n − 1 A = H ( U ) 1 n +1 ′ ( n ) − n − 2 A = H ( U ) 2 n +2 . . . A ′ = U ′ ` ( n ) − n ` ( n ) ′ Suppose for contradiction that H is not a pseudorandom generator. Then there is an ′ algorithm D that ( n )-distinguishes between A and A for ( n ) non-negligible, meaning 0 ( n ) − n that ∣ [ ]∣ ∣ ∣ ′ Pr [ D ( A ) = 1] − Pr D ( A ) = 1 ≥ ( n ) . 0 ( n ) − n ′ (This follows from the definition of a pseudorandom generator and the way A and A 0 ( n ) − n ′ are defined.) Then clearly (for each n ) there must exist 0 ≤ i < ( n ) such that ( n ) | Pr [ D ( A ) = 1] − Pr [ D ( A ) = 1] | ≥ i i +1 ′ ( n ) − n ( n ) (by the triangle inequality). Define δ ( n ) = , and note that δ ( n ) is non-negligible, since ′ ( n ) − n ′ ( n ) − n is polynomial in n . ′ n +1 We use D to distinguish between U and H ( U ). Define D ( y ) for y ∈ { 0 , 1 } as n + i +1 n + i ′ ′ ( n ) − n − ( i +1) follows: D computes z = H ( y ) (which it can do because H is polynomial-time ′ ′ ′ and ( n ) − n − ( i + 1) is polynomial in n ). Then D outputs D ( z ). Note that if D is given ′ a uniform ( n + i + 1)-bit string as input, then z has the distribution of A , while if D i +1 ′ is given H ( U ) as input, then z has the distribution of A . Thus, D δ ( n )-distinguishes n + i i between U and H ( U ). n + i +1 n + i 14 We are almost, but not quite, done, since we need to construct a non-negligible function ′ ′ ( n ) such that we can ( n )-distinguish between H ( U ) and U (non-negligibly distinguish- n n +1 ing between U and H ( U ) isn’t quite what we want because we don’t know anything n + i +1 n + i about i in terms of n ). For each n , let r ( n ) be the smallest positive integer greater than or equal to n such that we can δ ( n )-distinguish between U and H ( U ) (we have proven that r ( n ) is well- r ( n )+1 r ( n ) defined for each n ). Since δ ( n ) is non-negligible, there exists a positive integer k and an 1 ′ infinite sequence of integers n , n , . . . such that δ ( n ) > for each j , and n > ( n ) for 1 2 j k j +1 j n j ′ each j . The latter condition makes sure that r ( n ) is distinct for each j . Define ( n ) to be j 0 if there is no n such that r ( n ) = n , and if for some (unique by construction) j we have j j ′ r ( n ) = n , define ( n ) = δ ( n ). j j ′ ′ Clearly for all n , we can ( n )-distinguish between H ( U ) and U : if ( n ) = 0 then n n +1 ′ this is clear, and otherwise we know we can ( n )-distinguish between H ( U ) and U by n n +1 ′ the way we defined (we can δ ( n )-distinguish between H ( U ) and U ). All that remains j n n +1 ′ to show is that is a non-negligible function of n . 1 ′ ′ Suppose for contradiction that is a negligible function of n . Then for all c , ( n ) < c n for n large enough. Let c = k . For n large enough, we have j 1 1 ′ δ ( n ) = ( r ( n )) < ≤ , j j k k ( r ( n )) n j j