Introduction to Cryptography - MATH/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), whose coverage of cryptography focuses more on its applications; in this class, we will look "under the hood" to get a better understanding of various cryptographic primitives, algorithms, attacks, and protocols.
The course will be similar, though not identical, to my previous offering of this course.
The required textbook for this course is Introduction to Modern Cryptography, 2nd edition, by myself and Yehuda Lindell, and the course will follow the book closely.
Note: The second edition has a number of topics not included in the first edition, plus additional exercises.
The second edition of the book is required.
Exams in this class will be "open book" but electronics will not be allowed; therefore, students are advised not to use a Kindle edition or
illegal copies of the book that can be found online. Note also that illegal copies of the book available online often do not match the printed edition (especially when it comes to the exercices); the instructor will not be responsible for any deviations in content.
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 analysis of algorithms (big-O notation, reading pseudocode) is assumed.
Moreover, some of the homeworks will require programming.
The choice of language is flexible, however some homeworks will have a networking component with the networking code provided for you in a particular language. It is assumed you can pick up what is needed in order to complete the assignments.
This course will follow all applicable UMD policies and procedures.
After each lecture, I will post a (brief) summary of what we cover, and provide references to relevant sections of the book, here.
- My course on Coursera provides a useful resource for learning about much of the material presented in class.
- I have registered the course on Piazza. Please ask questions about the lectures/homeworks there, and check frequently for announcements.
- Instructor: Professor 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 Assistants:
- Huijing Gong (firstname.lastname@example.org). Office hours: Friday 3-5 in 4101/4103 A.V. Williams Building.
- John Mangino (email@example.com). Office hours: Monday and Wednesday 3-4 in 4101/4103 A.V. Williams Building.
- The class meets Monday, Wednesday, and Friday from 10:00 - 10:50 in 2117 CSIC.
- This course will enforce a no-laptop policy. You will also be asked to put away any cellphones or other electronic devices during class.
- For excused absences or to reschedule an exam, please email the instructor.
- Grading will be based on homeworks assigned throughout the course (25%), two midterm exams (20% each), and a final exam (35%). Note than exams constitute a majority of the grade! The plus/minus grading system will be used. Class participation will not be taken into account when determining the final grade.
- Please note that the final course grade is not curved. What this means is that there is no predetermined percentage of students who will get As, Bs, Cs, etc. Instead, every student's final grade is determined by how well he or she is able to demonstrate his/her understanding of the material.
This also means that students in the class are not competing with each other.
- 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.
- No extensions will be granted without a valid excuse (e.g., religious/medical considerations), which should be discussed with the instructor in advance whenever possible.
- Check the course homepage frequently for announcements
and to follow the updated syllabus.