This course provides an introduction to cryptographic theory and practice. It covers the application of cryptography to cyber security, beginning with historic review of cryptography from Caesar’s cipher to modern algorithms. We will discuss stream ciphers, block ciphers, and one-way hashing, along with the topic of message integrity. We will explore the differences in symmetric and asymmetric encryption. The course will also cover key exchange techniques, public key protocols, and key and certificate generation and management. We will learn how to assess the strength of cryptographic implementations, and about attacks on cryptographic systems.