PRG
what do you mean by pseudorandomness?
Let’s consider the distribution of strings of l-bit length. Now, distribution is pseudorandom if choosing any string from the distribution is indistinguishable from choosing a uniform l-bit string, i.e. any polynomial time algorithm can’t distinguish between string from the distribution and uniform l-bit string.
- thus, pseudorandomness is property of a distribution and similar to how semantic security is computational relaxation of perfect secrecy, pseudorandomness is to true randomness.
Pseudorandom generator (PRG): Informally, PRG is a efficiently computable function that takes as input bit strings and output bit string where , and let be distribution of bit strings which are the outputs of , by choosing uniformly, then is PRG iff is pseudorandom, i.e. any polynomial-time observer can’t distinguish between and uniformly chosen l(n)-bit string.
- define properties of PRG as:
- expansion: PRG outputs l(n)-bit string, where
- pseudorandomness:
- existence of PRG , depend on how computationally feasible it is to for a polynomial time distinguisher to distinguish between a uniform string and the one output by , because if were modelled as exponential time distinguisher then the probability of brute force attack become large.
Pseudorandom functions
- A function is not pseudorandom, but chosen from a distribution.
- Keyed function where
- defining and fixing key creates a function
- This induces a distribution of function in , where is distribution of all function that maps n-bit input to n-bit output strings.
- How large is ? each function can be viewed as lookup table of n-bit length string rows, with output of function in the row. Thus, each function can be represented as bit string. Total functions are .
- So, any function is called pseudorandom if polynomial-time Distinguisher cannot differentiate between or uniformly chosen function from .
- Note that distinguisher doesn’t get full description of the function since it’s exponential length and is polynomial time. So, D is given access to oracle that can evaluate in polynomial time and can interact with oracle polynomial times.
- PRG can be made from PRF by concatenating evaluations of , i.e. to get bit pseudorandom string.
- in other direction, creating a PRF from PRG requires which is then viewed as lookup table with rows and n-bit outputs. But this is only possible for short input lengths, i.e.
Note, however, that F is efficient only if .
don’t understand why this?
- Pseudorandom permutations: is the set of all bijection on . Total size of Perm distribution is .
- keyed permutation defined as function for which and for key , is one-to-one and should be efficiently computable and invertible.
- Proposition: If is a PRP, then it is also a PRF. Prove this.
- Strong PRP: when distinguisher is given oracle access to and and need to distinguish between and uniform function , then it is called Pseudorandom permutation.