Getting Started with SageMath20
Chapter 1. Fundamentals26
Chapter 2. Encryption Schemes and Definitions of Security50
Chapter 3. Elementary Number Theory80
Chapter 4. Algebraic Structures92
Chapter 5. Block Ciphers120
Chapter 6. Stream Ciphers134
Chapter 7. Hash Functions156
Chapter 8. Message Authentication Codes170
Chapter 9. Public-Key Encryption and the RSA Cryptosystem182
Chapter 10. Key Establishment204
Chapter 11. Digital Signatures222
Chapter 12. Elliptic Curve Cryptography232
Chapter 13. Quantum Computing248
Chapter 14. Lattice-based Cryptography272
Chapter 15. Code-based Cryptography304
This book provides a compact course in modern cryptography. The mathematical foundations in algebra, number theory and probability are presented with a focus on their cryptographic applications. The text provides rigorous definitions and follows the provable security approach. The most relevant cryptographic schemes are covered, including block ciphers, stream ciphers, hash functions, message authentication codes, public-key encryption, key establishment, digital signatures and elliptic curves. The current developments in post-quantum cryptography are also explored, with separate chapters on quantum computing, lattice-based and code-based cryptosystems.
Many examples, figures and exercises, as well as SageMath (Python) computer code, help the reader to understand the concepts and applications of modern cryptography. A special focus is on algebraic structures, which are used in many cryptographic constructions and also in post-quantum systems. The essential mathematics and the modern approach to cryptography and security prepare the reader for more advanced studies.
The text requires only a first-year course in mathematics (calculus and linear algebra) and is also accessible to computer scientists and engineers. This book is suitable as a textbook for undergraduate and graduate courses in cryptography as well as for self-study.
Heiko Knospe: Technische Hochschule Köln, University of Applied Sciences, Cologne, Germany