Practical Mathematical Cryptography provides a clear and accessible introduction to practical mathematical cryptography.
Cryptography, both as a science and as practice, lies at the intersection of mathematics and the science of computation, and the presentation emphasises the essential mathematical nature of the computations and arguments involved in cryptography.
Cryptography is also a practical science, and the book shows how modern cryptography solves important practical problems in the real world, developing the theory and practice of cryptography from the basics to secure messaging and voting.
The presentation provides a unified and consistent treatment of the most important cryptographic topics, from the initial design and analysis of basic cryptographic schemes towards applications.
- Builds from theory toward practical applications
- Suitable as the main text for a mathematical cryptography course
- Focus on secure messaging and voting systems.
Table of Contents
1. Symmetric Cryptography. 1.1. Definitions. 1.2. Confidentiality against Eavesdroppers. 1.3. Integrity. 1.4. Confidentiality and Integrity. 1.5. The Key Distribution Problem. 2. Key Exchange and Diffie-Hellman. 2.1. The Diffie-Hellman Protocol. 2.2. Discrete Logarithms. 2.3. Primality Testing. 2.4. Finite Fields. 2.5. Elliptic Curves. 2.6. Active Attacks. 3. Public Key Encryption. 3.1. Definitions. 3.2. Schemes Based On Diffie-Hellman. 3.3. RSA. 3.4. Factoring Integers. 3.5. Lattices. 3.6 Lattice-Based Cryptosystems. 3.7. Lattice Algorithms. 3.8. The Public Key Infrastructure Problem. 4. Digital Signatures. 4.1. Definitions. 4.2. Hash Functions. 4.3. RSA Signatures. 4.4. Schnorr Signatures. 4.5. Hash-Based Signatures. 4.6. Securing Diffie-Hellman. 4.7 The Public Key Infrastructure Problem. 5. Factoring Using Quantum Computers. 5.1. Background. 5.2. Quantum Computation. 5.3. Factoring using a Quantum Computer. 6. Computational Problems. 6.1. Definitions. 6.2. Statistical Distance. 6.3. Diffie-Hellman. 6.4 RSA. 6.5. Lattice Problems. 7. Symmetric Cryptography. 7.1. Defining Security. 7.2. Confidentiality and Underlying Primitives. 7.3. Message Authentication Codes. 7.4. Channels. 7.5. Hash Functions. 7.6. Ideal Models. 8. Public Key Encryption. 8.1 Defining. Security. 8.2. Key Encapsulation Mechanisms. 8.3. Homomorphic Encryption. 8.4. Commitment Schemes. 8.5. Cryptographic Voting. 9. Digital Signatures. 9.1. Defining Securiy. 9.2. Hash and Sign Paradigm. 9.3. Identification Schemes. 9.4. Messaging. 10. Key Exchange. 10.1. Key Exchange Protocols. 10.2. Defining Security. 10.3 Key Exchange from Key Encapsulation. 10.4. Single-Message Key Exchange. 10.5. Single-Sided Authentication. 10.6. Continuous Key Exchange. 11. Arguments. 11.1. Arguments. 11.2 Non-Interactive Arguments. 11.3. Using HVZK. 11.4. Further Useful Arguments. 12. Multi-party computation. 12.1. Secret Sharing. 12.2 Multi-Party Computation. 12.3. Distributed Decryption. 13. Messaging Protocols. 13.1 Messaging Protocols. 13.2. Defining Security. 13.3. Invasive Adversaries. 13.4. Somewhat Anonymous Messaging. 14. Cryptographic Voting. 14.1 Definitions. 14.2. How to Use a Voting Scheme. 14.3. Cast as Intended. 14.4. Coercion Resistance. Index.
Kristian Gjosteen is a professor of mathematical cryptography at NTNU – Norwegian University of Science and Technology. Gjosteen has worked on cryptographic voting, electronic identification, privacy, public key encryption and key exchange.