In this part we survey three basic tools used in modern cryptography.
The most basic tool is computational di culty, which in turn is cap-
tured by the notion of one-way functions. Next, we survey the notion
of computational indistinguishability, which underlies the theory of
pseudorandomness as well as much of the rest of cryptography. In par-
ticular, pseudorandom generators and functions are important tools
that will be used in later sections. Finally, we survey zero-knowledge
proofs, and their use in the design of cryptographic protocols. For more
details regarding the contents of the current part, see our textbook (65).