Random bit generator is usually a physical device. Usually,
2-wise independent bits generation
Pseudorandom generator G
Based on operational meaning of randomness: Better than early definitions, which were based on statistical properties of bit string.
Distinguishers c usually try to learn from string and guess if G generated it. For example of distinguisher, see colt ref.
Notion similar to PFF: If ye pick y, you’ve picked random functions f; if ye pick x, you’ve picked a subset of pseudorandom functions.
Hard function f
f is (a(n), s(n)) hard if
Worst case hardness:
Any pseudorandom generator is also hard. \why
Any hard function is also a pseudorandom generator. \why
Hard core function f
f is (a(n), s(n), M) hard core wrt \
measure M (defining distribution
If f is hard wrt distribution D which is uniform over set S, it is (a(n), s(n), S) hard core. Then S is a (a(n), s(n), f) hard core set. If (a(n), s(n), M) hard, then (a(n), s(n), S) hard for S of a certain size.
(Impagliazzo): If f is (a(n), s(n), U) hard, it is
BBS pseudorandom generator
(Blum, Blum, Shub). Input: N=pq: p, q are primes
If factoring is hard, you cannot distinguish between a truly random m bit string and an m bit string obtained by choosing
Pseudo random function family (PFF)
Function family F
Set of polynomial sized boolean circuits with input length n, of size
Distinguisher D
Any Poly time alg; inputs function f: black box access to it; outputs 1 if it thinks f is random.
Indistinguishability
Let f be truly random function. F is PFF if for every D,
Existance
Goldwasser, Goldreich, Micali (GGM): If one way functions exist (if factoring is hard), then PFF’s exist.
\tbc