Summary: Cryptography is concerned with the construction of computing systems that withstand any abuse: Such a system is constructed so as to maintain a desired functionality, even under malicious attempts aimed at making it deviate from this functionality.
This appendix is aimed at presenting the foundations of cryptography, which are the paradigms, approaches, and techniques used to conceptualize, define, and provide solutions to natural security concerns. It presents some of these conceptual tools as well as some of the fundamental results obtained using them. The emphasis is on the clarification of fundamental concepts, and on demonstrating the feasibility of solving several central cryptographic problems. The presentation assumes basic knowledge of algorithms, probability theory, and complexity theory, but nothing beyond this.
The appendix augments the treatment of one-way functions, pseudorandom generators, and zero-knowledge proofs, given in Sections 7.1, 8.2, and 9.2, respectively. Using these basic primitives, the appendix provides a treatment of basic cryptographic applications such as encryption, signatures, and general cryptographic protocols.
The rigorous treatment and vast expansion of cryptography is one of the major achievements of theoretical computer science. In particular, classical notions such as secure encryption and unforgeable signatures were placed on sound grounds, and new (unexpected) directions and connections were uncovered.