This course provides an introduction to modern cryptography and communication security. It focuses on how cryptographic algorithms and protocols work and how to use them. The course covers the concepts of block ciphers and message authentication codes, public key encryption, digital signatures, and key establishment, as well as common examples and uses of such schemes, including the AES, RSA-OAEP, and the Digital Signature Algorithm. Basic cryptanalytic techniques and examples of practical security solutions are explored to understand how to design and evaluate modern security solutions. The course is suited for students interested in cryptography or other security related fields such as trusted computing, network and OS security, or general IT security.
Experience in expressing algorithms in a modern programming language (e.g., ECE 2049 or CS 2301). ECE 2049 (Embedded Computing in Engineering Design) or CS 2301 (Systems Programming for Non-Majors) or equivalent.
Discrete mathematics (CS 2022/MA 2201 or equivalent)