COMP 790: Introduction to CryptographyFall 2021
Instructor: Saba Eskandarian
Lectures: Mon/Wed 9:05-10:20am, SN 0115
Contact: Piazza or email@example.com
Office Hours: Time TBD, Brooks 346
Gradescope (Entry Code JB263K)
Organization and Policies
Cryptography is an indispensable tool for protecting information in computer systems. Our web browsers use it almost every time we connect to a website; it protects our private messages from prying eyes; it enables the modern world of online commerce; and it guards the freedoms of journalists, dissidents, and oppressed groups throughout the world.
At the same time, cryptography has deep connections to the theory of computation, number theory, algebra, and computational complexity theory. Major open questions in cryptography have immediate ramifications for whether P=NP, and cryptography research has given rise to several of the most beautiful ideas in computer science. These ideas (which we will cover) have been recognized by several Turing awards.
This course will introduce you to both sides of cryptography. Our main focus will be on the inner workings of cryptographic primitives and how to use them correctly. We will begin with standard cryptographic tools such as encryption, message authentication, key exchange, and digital signatures before moving on to more advanced topics like zero-knowledge and multiparty computation. See the course schedule page for a more detailed list of topics. Throughout the course we will also explore the techniques used in modern cryptography to reason about the security of cryptographic schemes.
Note: undergraduate students who have satisfied the prerequisites (see organization and policies page) are welcome to participate in this class if they're interested. I would especially encourage anyone interested in getting involved in cryptography research to enroll. Please don't hesitate to reach out if you have questions about the class!
- Problem set 1: due Monday, September 20 (out: Sep 1)
- Programming assignment 1: Monday, September 27 (out: Sep 7)
- Problem set 2: due Monday, October 25 (out: Oct 5)
- Programming assignment 2: Monday, November 1 (out: Oct 12)
- Problem set 3: due Monday, November 15 (out: Oct 26)
- Problem set 4: due Monday, December 8 (out: Nov 16)