Using Hard Problems to Create Pseudorandom Generators (ACM Doctoral Dissertation Award)