Cryptography is concerned with the conceptualization, definition and construction of computing systems that address security concerns. The design of cryptographic systems must be based on firm foundations. This book presents a rigorous and systematic treatment of the foundational issues: defining cryptographic tasks and solving new cryptographic problems using existing tools. It focuses on the basic mathematical tools: computational difficulty (one-way functions), pseudorandomness and zero-knowledge proofs. The emphasis is on the clarification of fundamental concepts and on demonstrating the feasibility of solving cryptographic problems, rather than on describing ad-hoc approaches. The book is suitable for use in a graduate course on cryptography and as a reference book for experts. The author assumes basic familiarity with the design and analysis of algorithms; some knowledge of complexity theory and probability is also useful.

• Systematic and rigorous approach that is focused on concepts • Each chapter has exercises and guidelines for solution

### Contents

List of figures; Preface; 1. Introduction; 2. Computational difficulty; 3. Pseudorandom generators; 4. Zero-knowledge proof systems; Appendix A: background in computational number theory; Appendix B: brief outline of volume 2; Bibliography; Index.

### Review

'The written style is excellent and natural, making the text rather comfortable to read even on quite advanced topics. The book is suitable for students in a graduate course on cryptography, and is also a useful reference text for experts.' The Mathematical Gazette