Consider this simple idea for constructing a PRNG: seed the state with some key and pick some encryption algorithm such as DES. Then each iteration, encrypt the current state and output a few bits of it. Intuitively, this seems like it should produce random-looking bits.
The Blum-Micali scheme mimics this process, but on a firm theoretical foundation, by using hardcore bits.
Let be a permutation and be a -hardcore bit of . Define as follows:
Pick random seed . For to 1. Output 2.
Theorem [Blum-Micali '81]: If is -hardcore then is a -PRNG.
Proof: First we devise notation to record the reverse of a bit string. Define , that is, if , then .
Then note that if is a -PRNG, then is also a -PRNG.
Now suppose is not a -PRNG. Then there exists a algorithm , and such that
We shall build an algorithm that predicts given .
Let and define . Then
Algorithm acts as follows. Given ,
-
Compute
-
Output .
Note that = . Then we wish to show that
This follows since is a permutation and hence the distribution is identical to the distribution .
This is a contradiction because is -hardcore for .
Examples of BM generators
-
Dlog generator: -bit prime, a generator. Let , . We know is a -hardcore bit of if no -time discrete log algorithm exists. Thus we have a PRNG assuming Dlog is hard.
-
Blum-Blum-Shub (BBS): 1024-bit, . Let . Then is a permutation of . LSB(x) is -hardcore for assuming no factoring algorithm exists.
-
-
Output
-
-
Goto step 1
[BBS not -hardcore implies LSB is not -hardcore (where is the number of output bits), which implies there exists a -time factoring algorithm (where ).]
Example: suppose no -time factoring algorithm exists for 1024-bit numbers, and that . Then we get that BBS is secure for , e.g. BBS is a -PRNG, which is not secure.
-
Speeding up BM
We can output one bit per application of . Can we output more?
For Dlog it turns out that for the msb_i(x) is a hardcore bit. But this is not enough. We need a notion of simultaneous security.
Definition: Let . Then bits are -simultaneously secure if is -indistinguishable from .
The Blum-Micali Theorem remains true for simultaneously secure bits.
Best result for Dlog [Shamir-Schrift]: . Then the bits in the most significant half of are -simultaneously secure for assuming no -time factoring algorithms exist.