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: 4:20pm-5:35pm Monday/Wednesday
Instructor: Tom Ristenpart (https://rist.tech.cornell.edu)
Office hours: TBA
TAs: Andres Fabrega ([email protected]), Dhrumilkumar Patel ([email protected]), Sanketh Menda ([email protected])
TA Office hours: TBA. You may also join the #office-hours channel on Slack for virtual OH and expect TA response in a day or two.
You will be invited to a class slack, which we will use for announcements, Q&A, etc. Contact the TAs 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 lectures and a number of homework assignments, which will be a combination of implementation and short written answers. You'll be graded according to the following:
- Participation: 10%
- Homeworks: 90% (each homework will count an equal amount)
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 on homeworks, as well. The current plan is to have five homework assignments spread across the semester. Details and schedule will be released in the first week of class.
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 mostly in person, though possibly with some remotely delivered (Zoom, check Canvas or Slack for the link). Students are encouraged to attend in-person when lecture is in-person, but the lectures should be available remotely.