Revision of the author's earlier work: Cryptography : an introduction.
Includes bibliographical references and index.
Modular arithmetic, groups, finite fields and probability -- Primality testing and factoring -- Discrete logarithms -- Elliptic curves -- Lattices -- Implementation issues -- Historical ciphers -- The Enigma machine -- Information- theoretic security -- Historical stream ciphers -- Defining security -- Modern stream ciphers -- Block ciphers and modes of operation -- Hash functions, message authentication codes and key derivation functions -- The "naive" RSA algorithm -- Public key encryption and signature algorithms -- Cryptography based on really hard problems -- Certificates, key transport and key agreement -- Secret sharing schemes -- Commitments and oblivious transfer -- Zero-knowledge proofs -- Secure multi-party computation.
0
In this introductory textbook the author explains the key topics in cryptography. He takes a modern approach, where defining what is meant by "secure" is as important as creating something that achieves that goal, and security definitions are central to the discussion throughout. The chapters in Part 1 offer a brief introduction to the mathematical foundations: modular arithmetic, groups, finite fields, and probability; primality testing and factoring; discrete logarithms; elliptic curves; and lattices. Part 2 of the book shows how historical ciphers were broken, thus motivating the design of modern cryptosystems since the 1960s; this part also includes a chapter on information-theoretic security. Part 3 covers the core aspects of modern cryptography: the definition of security; modern stream ciphers; block ciphers and modes of operation; hash functions, message authentication codes, and key derivation functions; the "naive" RSA algorithm; public key encryption and signature algorithms; cryptography based on computational complexity; and certificates, key transport and key agreement. Finally, Part 4 addresses advanced prot ocols, where the parties may have different or even conflicting security goals: secret sharing schemes; commitments and oblivious transfer; zero-knowledge proofs; and secure multi-party computation. The author balances a largely non-rigorous style? many proofs are sketched only? with appropriate formality and depth. For example, he uses the terminology of groups and finite fields so that the reader can understand both the latest academic research and "real-world" documents such as application programming interface descriptions and cryptographic standards. The text employs colour to distinguish between public and private information, and all chapters include summaries and suggestions for further reading. This is a suitable textbook for advanced undergraduate and graduate students in computer science, mathematics and engineering, and for self-study by professionals in information security. While the appendix summarizes most of the basic algebra and notation required, it is assumed that the reader has a basic knowledge of discrete mathematics, probability, and elementary calculus.