This course is about the fundamentals of cryptography and its applications. Details of classical and contemporary cryptographic algorithms are first examined along with techniques to break them. Next, the various applications of cryptography are explored including web, email, network authentication and digital currencies. Students will use both software tools (GUI and/or command-line) for testing ciphers and use crypto API in a programming language to design programs as well.
Corequisites or Prerequisites