A course in cryptography 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. Fundamentals Encryption schemes and denitions of security Elementary number theory Algebraic structures Block ciphers Stream ciphers Hash functions Message authentication codes Public key encryption and the rsa cryptosystem Key establishment Digital signatures Elliptic curve cryptography Quantum computing Lattice based cryptography Code based cryptography.