Modern Cryptography, Probalistic Proofs and Pseudorandomness by Oded Goldreich