CS 499 / CS 587: Cryptography, Fall 2020

Course Overview

Course Description

The course will provide an introduction to modern cryptography. We will cover many practical topics, such as how to correctly use block ciphers and hash functions for the most common tasks: encryption and message authentication, the differences between public key cryptography and symmetric key cryptography, and a few ways to build public key encryption and signatures. We will learn about how to properly define security, and how to prove that our constructions are secure. In addition, with what time we remains, we will cover several recent topics in cryptography, such as the use of block chains for crypto currencies, and securely computing on private data.

The main objectives are to convey the importance of provable security, to teach students how to use cryptographic tools in a way that is provably secure, to provide students with the ability to decide whether a protocol is secure, and to demonstrate the range of what can be achieved with provable security.

Course Outcomes
Students taking this class will: (a) be able to understand the security properties achieved by common cryptographic mechanisms such as encryption or digital signatures, (b) be familiar with a number of cryptographic primitives available to solve a variety of problems, (c) gain some experience with how these cryptographic tools can be used to secure modern systems.

There are no formal prerequisites for this course, and I intend for everything to be self-contained. However, students should have some level of mathematical maturity. Accordingly, a course such as CS330 would be a good course to take prior to this one. Students should be comfortable writing proofs, and should have comfort with basic probability theory.


The course will meet virtually, using Zoom. You will need to register one time before you can attend any of the meetings. You can find the meeting link through Blackboard: click on Tools, then Zoom. The password for every meeting will be the same, and will be posted on the course piazza board. If we ever have problems with Zoom, we will move to Blackboard Collaborate Ultra. Office hours will be held the same way as class meetings. I do not intend to be in my office this semester.

I will not insist on the use of cameras during class time, but I strongly encourage it. The more people that use them, the more engaging the experience will be for us all. Cameras are turned on by default as you join the meetings.

Lecture Videos
Students are expected to watch videos each week, prior to the class meeting time. In the meeting, I will review questions about those videos, and we will work through related problems. Links to the videos can be found in the class schedule.

Class Announcements and Discussion
All class announcements will be made through piazza. Please make sure you are registered for this course in piazza before the first day of class. Students are also encouraged to post questions about homework, course videos there, and logistics there.


Course Requirements


There will be 10 homework assignments. Homework will be due at class time on Wednesdays. Students are welcome to work in groups, but every student must write their solutions independently. Homework that appear overly similar will be considered to violate the honor code.

I encourage students to type their answers, both because they will be easier to read, and also because I believe it helps you clarify your own thinking. You can use this LaTex template file, if it is helpful to you. Please post on piazza if you have trouble.


There will be one midterm and one final exam. Students will have 1 class period to finish the midterm exam (see schedule below), but then can repeatedly resubmit the midterm to improve their grade. Midterms must be submitted by 7:10 pm on 10/9. Midterm re-submissions are due 3 weeks after the original, graded submissions are returned to the students. Students are strongly encouraged to use Overleaf for midterm re-submissions, as this will make it easier to provide feedback. The final exam will be cumulative, and students will have 1 week to complete the exam. The final cannot be re-submitted for feedback.


Quizzes are short: 1-2 questions, multiple choice or fill-in-the-blank. They will be administered through Blackboard / Gradescope. Each single quiz is worth < 1% of your grade. They will be given at the start of class (don't be late!), and will cover the videos that were intended to be watched at home over the previous week. They mainly serve to help me gauge what the students have understood, and what needs further explanation.

CS 587

Students in CS 587 will be be given extra homework problems on most homeworks, and an extra problem on each of the exams. They will also have to read Chapter 7 independently.


Quizzes -- 10%. The lowest two quiz grades will be dropped.
Homeworks -- 30%. The lowest two homework grades will be dropped.
Midterm Exam -- 35%.
Final Exam -- 25%.

Intended Schedule

Click here for the intended class schedule, which will be updated throughout the semester.