Let be a permutation. A -hardcore bit is a function (predicate) such that for any -time algorithm we have
(" is hard to compute from .")
Examples:
-
Hardcore bit of discrete log [Blum-Micali '81]: Let be an -bit prime, . Define as
Theorem: is a -hardcore bit of assuming there is no -time discrete log algorithm in (that succeeds with constant probability).
-
Hardcore bit of RSA [ACGS '84]: Let be an -bit RSA modulus and . Define (.)
Theorem: is a -hardcore bit of assuming there is no -time th root algorithm for .
The Blum-Micali generator is a PRNG that is constructed from hardcore bits.
Hardcore bits for general one-way permutations
It is possible to find a hardcore bit of any given one-way permutation:
-
Yao's XOR Lemma ['82]
-
Goldreich-Levin ['87]
-
Naslund ['96]
Yao's Method
Let be -one-way.
First we note that there exists such that for all -time algorithms ,
(If not, then for all there exists an algorithm with , which would imply by the union bound, a contradiction.
Yao's XOR Lemma
Theorem: Suppose is a predicate such that for all -time algorithms , . Define . Then if , then for all -time , we have
(where ).
This implies that for , is a -hardcore bit of .
Goldreich-Levin Method
Given , define .
Let be a -one-way permutation. Define by . Define by .
Theorem: Let be a -one-way permutation. Then is -hardcore for where , where GL is the Goldreich-Levin algorithm.
Proof: Suppose is not hardcore for . Then there exists a -time algorithm such that
Define the set by
In other words, all 's that the algorithm works with good probability.
By a counting argument, . We shall construct an algorithm such that for all , with .
For a fixed , define . Then .
The Goldreich-Levin Algorithm: given an oracle for , the algorithm outputs all such that with running time .
It turns out there are at most such .
Then works by scanning the output of the algorithm to find .
The Rackoff method for the GL algorithm corrects the predictor probability for from to . This corrected predictor can be used to find .
-
Every one-way permutation has an efficient hardcore bit.
-
The proof is based on a noisy predictor for the inner product.
-
The GL algorithm is found in learning theory.
Naslund Method
Let be a one-to-one function for some -bit prime. Define where . Then for , define . Note we ignore the most significant bits because they are biased.
Theorem: If is -one-way, then for all , is -hardcore for where and for some constant .
Proof: Suppose there exists such that
Define by
We shall build an algorithm such that for all , and the running time of is . Naslund's algorithm finds all such in time .
Corollary: Let be prime, and suppose is -bits. Let be an element of order . Let . Then for all , is -hardcore for assuming no -time discrete logarithm algorithm exists.
Proof: Suppose there exists such that
and runs in time . Then we shall construct a discrete log algorithm that outputs when given . Define .
Then and
Naslund's algorithm will find all 's that satisfy the above, and one of them is the discrete log of .
Subset Sum Generator [IN '88]
Let where is an -bit prime, and let . Set . The subset sum problem is to find given . The problem is believed to be hard for on random instances.
Take , for, say, .
Define a generator as follows
On every iteration, produces bits from bits.
Theorem [IN]: is a -PRNG assuming no -time subset sum algorithm exists.
Proof: Suppose there exists that -distinguishes between
and
Then we shall construct an algorithm that takes as input and whose goal is to find .
To do this, we build a predictor such that
and then use the Goldreich-Levin algorithm to find . is given , and works as follows:
-
Pick random ,
-
Define if , otherwise if
-
Run algorithm on input .
-
If fails, output , otherwise output .