1. A computer-implemented method for generating a pseudorandom number, comprising: using a computer to perform steps comprising: determining a seed number; determining an iteration input based on an iteration input portion of the seed number; applying a hardcore predicate to the iteration input to generate a pseudorandom bit; applying a cryptographic collision-resistant hash function to the iteration input to generate a hash result; assigning the hash result as the iteration input for a next iteration; constructing a pseudorandom number based on the pseudorandom bit; and outputting the pseudorandom number.