You can also click for my papers (some online), my C V, or my research overview.

Exponentiation makes the difference between the bit size of this line and the number ($<2^{300}$) of atoms in the known universe. The expulsion of exponential time algorithms from computer theory in the 1960s created a deep gap between deterministic computation and -- formerly its unremarkable tools -- randomness and nondeterminism. These two "freedoms" of computation preserved their reputation as some of the most mysterious phenomena in science and seem to play an ever more noticeable role in computer theory. We have learned little in the past decades about the power of either, but a vague pattern is emerging in their relationships.

A nondeterministic task is to invert an easy computable function. It is widely believed to require, in general, exponential computing time. Great efforts, however, have failed to prove the existence of such one-way (easy to compute, infeasible to invert) functions (owf). Randomness too preserves its mysterious reputation: it seems now, it can be generated deterministically. A simple program can transform a short random "seed" into an unlimited array of random bits. As long as the seed is not disclosed, no computational power that may fit in the whole universe can distinguish this array from truly random ones. This conjecture is proven equivalent to the existence of owf. I will survey a number of papers that have resulted in this theorem.

Although fundamental in many areas of science, randomness is really "native" to computer science. Its computational nature was clarified by Kolmogorov. He and his followers (see survey [Kolmogorov Uspenskii 1987]) built in the 1960s--1970s the first successful theory of random objects, defined roughly as those that cannot be computed from short descriptions. Kolmogorov also suggested in the 1960s that randomness may have an important relationship with nondeterminism; namely, that the task of finding a "non-randomness" witness (i.e. short fast program generating a given string) may be a good candidate to prove that exhaustive search cannot be avoided (in today's terms, P$<$NP).

The next step came from cryptography of the 1980s. Many applications
require only few properties of random strings. So, they do not care about the
fundamental issues of randomness, as long as some laws (e.g., of big numbers)
hold. Cryptographers, in contrast, need to deprive the adversary from taking
advantage of * any * regularities in their random strings, no matter how
peculiar, making "perfect" randomness an important practical concern. [Blum
Micali], [Yao] (see some other details also in [Levin 87]) used the idea of a
* hard core * or * hidden * bit:

Suppose from a length-preserving one-way function $f(x)$ it is hard to
compute not only $x$ but even its one bit $b(x)$ (easily computable from $x$).
Assume that even guessing $b(x)$
with any noticeable correlation is infeasible. If $f$ is bijective (i.e.
one-to-one), $f(x)$ and $b(x)$ are both random and * appear to be *
independent to any feasible test, thus increasing the initial amount $n=|x|$ of
randomness by one bit. Then, a short random seed $x$ can be transformed into an
arbitrary long string $b(f^{(i)}(x)), i=1,2,\ldots$, which passes any feasible
randomness test. [Blum Micali] established such a hard-core $b$ assuming a
particular function (discrete log) to be one way. But if its inversion turns
out to be feasible, all is lost. [Yao] uses a more general one-way candidate.
It is less likely to be technically in P, yet is easy to invert for reasonable
$|x|$ (it breaks input into small pieces and applies an owf to each of them).

[Levin 87] conjectured and [Goldreich Levin] and [Levin 93] proved that a
boolean inner product $b(x,r)=(x_1r_1+...+ x_n r_n\bmod 2)$ provides every owf
$f$ with a hidden bit $b$ of *the same security *. Actually, the (very
efficient) construction used in [Levin 93] is quite simple and can be
understood by non-experts. It yields "perfect" pseudo-random generators from
any one-way bijection.
(A lucid account of technical details can be found in [Knuth].)
The bijection requirement was lifted in [Hastad Impagliazzo Levin Luby]. It
showed that the possibility of deterministic generation of pseudo-randomness is
exactly equivalent to the existence of owf. Thus, Kolmogorov's intuition that
nondeterministic phenomena are intimately related with randomness proved to be
accurate.

- W. Alexi, B. Chor, O. Goldreich and C.P. Schnorr.
RSA and Rabin functions: Certain parts are as hard as the whole.
*SIAM J. Comput.*17:194-209, 1988. - L. Babai, L. Fortnow, L. Levin, and M. Szegedy.
Checking computations in polylogarithmic time.
*Proc., ACM Symp. on Theory of Computing*pp. 21-31, 1991. - M. Blum, S. Micali. How to generate cryptographically strong sequences of
pseudo-random bits.
*SIAM J. Comput.*13:850-864, 1984. - O. Goldreich, S. Goldwasser, S. Micali. How to construct random functions.
*J. ACM*33(4):792-807, 1986. - O.Goldreich, L.Levin. A hard-core predicate for all one-way functions.
*Proc., ACM Symp. on Theory of Computing,*pp. 25-32, 1989. - J. Hastad, R. Impagliazzo, L. Levin, Michael Luby.
Construction of a pseudo-random generator from any one-way function.
*SIAM J. Comput.*28(4):1364-1396, 1999. (Awarded an "Outstanding Paper Prize" of the Society for Industrial and Applied Mathematics in 2003.) - Donald E. Knuth. The Art Of Computer Programming, v.2
*Seminumerical Algorithms,*3-d edition, 1997, Section 3.5.F. This section is new to the 3d edition and so available on the Web in pp. 10, 29-36 of the file of changes https://www-cs-faculty.stanford.edu/~knuth/err2-2e.ps.gz - A.N. Kolmogorov, V.A. Uspenskii. Algorithms and Randomness.
*Theoria Veroyatnostey i ee Primeneniya = Theory of Probability and its Applications*3(32):389-412, 1987 - L. Levin. One-way functions and pseudorandom generators.
*Combinatorica*7(4):357-363, 1987. - L. Levin. Randomness and nondeterminism.
*J. Symb. Logic*58(3):1102-1103, 1993. - U.V. Vazirani. Efficiency Considerations in Using Semi-random Sources.
*Proc., ACM Symp. on Theory of Computing,*pp. 160-168, 1987. - A.C. Yao. Theory and applications of trapdoor functions.
*Proc., IEEE Symp. on Foundations of Computer Sci.*pp. 80-91, 1982.