(CS 4501) - Spring 2021

Objectives and Overview

Goals. The goal of this course is to develop skills that allow formally (i.e., mathematically) arguing about security. This involves knowing how to define security in various settings and how to use the right theoretical tools (also known as cryptographic primitives) to design the right solutions (also called protocols) for various tasks. As a result, proofs of security would be a major part of this course.

Pre-reqs. Due to the rather heavy mathematical side of this course, we assume you are comfortable with mathematical proofs. As a result, there are pre-reqs that are enforced as follows. C or higher in CS2102 (Discrete Math) + CS3102 (Theory of computation). However, I am willing to make exceptions if someone believes they are comfortable with mathematical proofs. In that case, please email me, and I will approve the enrollment.

Logistics. We will meet M-W 2-3:15pm online. Office hours are as follows. (The URL is the same as class's URL.)
Mohammad: Fridays 10:30-11:30am.
TA1 (Nima Abtin Afshar) Tuesdays 1-2pm and Thursdays: 3:30-4:30pm.
TA2 (Jacob Blindenbach) Wednesdays: 8-9pm.


Content. The course will have two parts. In the first part we go over the basic goals of privacy and security as well as main theoretical tools in cryptography for reaching these goals. The second part of the course will be focused on more advanced and recent topics that involve research papers as well. Examples include design of consensus mechanisms (related to blockchains) and security/privacy aspects of machine learning algorithms. You can find more details in the syllabus file.

Lecture notes (and videos). As we proceed, you will find specifics posts for each lecture here. For each class, in the link above, you will find suggested readings as well as link to the recorded video of the class (accessible through collab) and the slides.


There will be around five homeworks during the semester. You can find the posted homeworks (and their solutions after the submission date) the course's collab website.


There will be no single text-book that is followed closely in class. The content of the first half of the course will largely be based on the book Introduction to Modern Cryptography by Jonathan Katz and Yehuda Lindell. However, there are also quite a few other great books that you can use. (I will post for each session which related chapters of the books could be used.) Examples include:

Other Resources

Slack. We will have a slack channel which will serve as a place for discussions after the class and announcements. There you can ask any questions you have about the material and other students as well as myself will provide their thoughts on that.

Grading. You can find the details of the grading policy in the in the syllabus file.