Book Description
Cryptography is an indispensable tool used to protect information in computing systems. It is used everywhere and by billions of people worldwide on a daily basis. It is used to protect data at rest and data in motion. Cryptographic systems are an integral part of standard protocols, most notably the Transport Layer Security (TLS) protocol, making it relatively easy to incorporate strong encryption into a wide range of applications.
While extremely useful, cryptography is also highly brittle. The most secure cryptographic system can be rendered completely insecure by a single specification or programming error. No amount of unit testing will uncover a security vulnerability in a cryptosystem.
Instead, to argue that a cryptosystem is secure, we rely on mathematical modeling and proofs to show that a particular system satisfies the security properties attributed to it. We often need to introduce certain plausible assumptions to push our security arguments through.
This book is about exactly that: constructing practical cryptosystems for which we can argue security under plausible assumptions. The book covers many constructions for different tasks in cryptography. For each task we define a precise security goal that we aim to achieve and then present constructions that achieve the required goal. To analyze the constructions, we develop a unified framework for doing cryptographic proofs. A reader who masters this framework will be capable of applying it to new constructions that may not be covered in the book.
This open book is out of copyright. You can download A Graduate Course in Applied Cryptography ebook for free in PDF format (9.5 MB).
Table of Contents
Part I
Secret key cryptography
Chapter 1
Introduction
Chapter 2
Encryption
Chapter 3
Stream ciphers
Chapter 4
Block ciphers
Chapter 5
Chosen plaintext attacks
Chapter 6
Message integrity
Chapter 7
Message integrity from universal hashing
Chapter 8
Message integrity from collision resistant hashing
Chapter 9
Authenticated encryption
Part II
Public key cryptography
Chapter 10
Public key tools
Chapter 11
Public key encryption
Chapter 12
Chosen ciphertext secure public-key encryption
Chapter 13
Digital signatures
Chapter 14
Fast signatures from one-way functions
Chapter 15
Elliptic curve cryptography and pairings
Chapter 16
Post-quantum cryptography: lattices and isogenies
Chapter 17
Analysis of number theoretic assumptions
Part III
Protocols
Chapter 18
Protocols for identification and login
Chapter 19
Identification and signatures from sigma protocols
Chapter 20
Proving properties in zero-knowledge
Chapter 21
Modern proof systems
Chapter 22
Authenticated key exchange
Chapter 23
Two-party and multi-party secure computation
Appendix A
Basic number theory
Appendix B
Basic probability theory
Appendix C
Basic complexity theory
Appendix D
Probabilistic algorithms