Introduction to Cryptography - CMSC 456
This course is an undergraduate introduction to cryptography, whose
aim is to present the theoretical foundations of
cryptosystems used in the real world.
This course complements Computer and Network Security (CMSC 414), which focuses more on "high-level" issues and actual systems; in this class, we will look "under the hood" to get a better understanding of various cryptographic primitives, algorithms, attacks, and protocols.
The textbook for the course is Introduction to Modern Cryptography, by myself and Yehuda Lindell. The course will follow the book closely, and is required.
Note: While it is possible to find (illegal) electronic copies of the book on line, those copies have typos and inconsistencies with the printed version, including in the exercises.
Students are advised to obtain a hardcopy version of the book, and will not be excused if they do an incorrect exercise because they relied on an (illegal) electronic version.
This course has a significant mathematical component.
No advanced mathematics background is assumed, but students are expected to have "mathematical maturity" since many of the concepts will be abstract, rigorous definitions and proofs will be given, and some advanced mathematics (group theory, number theory) will be covered.
Basic background in discrete mathematics (probability, modular arithmetic) and algorithms (big-O notation, reading pseudocode) is assumed.
The course will be similar, though not identical, to my previous offering of this course.
After each lecture, I will post a (brief) summary of what we cover, and provide references to relevant sections of the book, here.
Final Exam Information
The final exam will be given on Friday, December 19 from 8-10AM.
- Homework 2 is out.
- I have registered the course on Piazza. Please ask questions about the lectures/homeworks there, and check frequently for announcements.
- The class meets Monday, Wednesday, and Friday from 12:00 - 12:50 in 1121 CSIC.
- Grading will be based on homeworks assigned throughout the course (30%), a midterm exam (35%), and a final exam (35%). Note than exams constitute a majority of the grade!
- You may collaborate on the homeworks with at most one other student in the class. Each student must independently write up their own solutions/code, and must list the other student (if any) with whom they collaborated.
- You may consult outside references when doing the homework, as long as these sources are properly referenced, you write up the solution yourself, and you understand the answer.
- Check the course homepage frequently for announcements
and to follow the updated syllabus.
- Instructor: Jonathan Katz (jkatz AT cs). Office: 3415 A.V. Williams Building. Office hours: by appointment.
(If you want to meet, send me an email.)
- Teaching Assistant: Leo Fan (xfan AT cs). Office hours: Monday and Wednesday 4-5.