Welcome to CS 5830, Cryptography. We will be studying cryptography, both the theory and how it is used in practice. By the end of the course you should understand the basics of cryptography, how cryptographers analyze the security of cryptographic schemes, and how to implement suitable cryptographic algorithms within broader projects.
Classroom: Bloomberg Center 131
Lecture time: 2:45pm-4:00pm Monday/Wednesday
Instructor: Tom Ristenpart (https://rist.tech.cornell.edu)
Office hours: TBA
TAs: Yan Ji ([email protected]), Sanketh Menda ([email protected])
TA Office hours: Tuesday, 9:30-10:30am, Zoom. You may also join the #office-hours channel on Slack for virtual OH and expect TA response in 24h.
You will be invited to a class slack, which we will use for announcements, Q&A, etc. Contact Yan if you are having trouble getting onto it.
Students should have programming experience (we will be focusing on Python), understand basic probability, know binary representations (ASCII), operations on bit strings (XOR), have some background on computer networking, file systems, etc. Equivalent of CS2800 (Discrete Mathematics) and comfort with reasoning about algorithms, such as proving their correctness and analyzing their running times, or permission of instructor.
The class will involve a combination of lectures, in-class group exercises, homeworks, a prelim, and a final. You'll be graded according to the following:
- Participation: 10%
- Homeworks: 60% (each homework will count an equal amount)
- Final: 30%
Late Days. Homeworks are due on the due date by 11:59:59pm EST. You can use in total 3 late days throughout the semester.
There will be several opportunities for extra credit, as well. The current plan is to have four homework assignments spread across the semester. Details and schedule will be released in the first week of class.
The final will be a take-home final exam, with short answer questions.
In prior years there was need to support students signing up for an additional unit of credit, but there was no plan to offer it this year. If you are interested in doing a project for extra credit, let me know.
Those enrolling for an extra unit of credit will conduct a semester-long
project. We will provide example project ideas in the first two weeks of class,
and work with students to refine the projects. Projects could be a deep-dive
into some specific area of cryptography, an implementation project for some
state-of-the-art cryptography, or augmenting some other project of your interest
with cryptographic mechanisms.
The following books should be helpful, but none are required if you don't want to spend the money:
-
Cryptography 101 by Houtven. Free, but not complete. Feel free to send helpful feedback to the author.
-
Cryptography Engineering by Ferguson, Schneier, and Kohno. A gentle introduction to cryptography.
-
Modern Cryptography by Katz and Lindell. A formal treatment of cryptography. We will make reference to, but not go into detail on, topics they treat in more detail.
The lecture schedule is available here. Lectures will be a mixture of remote (Zoom, check Canvas or Slack for the link) and in-person.