Using Hard Problems To Create Pseudorandom Generators by Noam Nisan