CMSC/Math/ENE 456: Cryptography -- Fall 2025
- Lectures: Tuesday, Thursday 12:30-1:45 PM, CSI 3117
- Instructor: Daniel Gottesman (e-mail: dgottesm@umd.edu, office hours Tuesday 10:00-11:30 AM, Atlantic 3251)
- Teaching Assistant: Kasra Abbaszadeh (e-mail: kasraz@umd.edu, office hours Thursday 2:00-3:00 PM, AV Williams 4160)
- Textbook: Katz and Lindell, Introduction to Modern Cryptography, 3rd ed.
Important Dates
- First lecture: Tuesday, September 2
- Mid-term #1: Tuesday, September 30 (in class). Covers classical cryptography and private-key encryption.
- Fall break: Tuesday, October 14 (no class)
- Mid-term #2: Thursday, November 6 (in class). Covers public-key encryption.
- Thanksgiving: Thursday, November 27 (no class)
- Last lecture: Thursday, December 11
- Final exam: Friday, Dec. 19, 4:00 - 6:00 PM (in class). Covers all topics included in class.
Slides and Homeworks
Problem Sets
(To be turned in on Gradescope)
- Problem Set 1 (pdf, LaTeX): Due Thurs., Sep. 11 at 11:59 PM
Slides
If you are reading these slides before you see the lecture and you see a "Vote" on the slide, stop and think about your answer before proceeding. The point of those votes is to get you to think about the material during the lecture.
- Lecture 1 (Sep. 2, 2025): Introduction to class, substitution cipher
- Lecture 2 (Sep. 4, 2025): Vigenere cipher, one-time pad, introduction to probability
- Lecture 3 (Sep. 9, 2025): Perfect secrecy, big-O notation, polynomial time
- Lecture 4 (Sep. 11, 2025): Pseudorandomness, reductions
Tentative Class Outline
Cryptography is the study of how to protect information in the presence of an adversary who is trying to learn secret information, alter the information, or otherwise interfere. In this class, you will learn about different types of cryptographic protocols and what makes cryptographic protocols secure and insecure.
- Week 1: Classical cryptography (basic concepts, substitution and Vignere ciphers, one-time pad), Textbook: Chapter 1
- Weeks 2-5: Modern private-key cryptography (including pseudorandom generators and functions, security definitions and proofs, stream and block ciphers, DES, AES). Textbook: Chapters 2, 3, sections 7.1.4, 7.2
- Weeks 6-10: Modular arithmetic and public key encryption (including purpose and applications, Diffie-Hellman, RSA). Texbook: Chapters 9, 11, 12
- Weeks 11-14: Authentication (including message authentication codes, digital signatures, hash functions, CCA security, and TLS). Textbook: Chapters 4, 5, 6, 13, sections 7.3.1, 7.3.2
- Additional advanced topics, as time permits (likely possibilities include post-quantum cryptography and quantum key distribution)
Learning Objectives
- Terminology, types, and techniques of cryptographic protocols
- What makes a protocol secure or insecure
- Basic understanding of particular protocols used in real world, such as AES and RSA.
Grades
Your grade will have 4 components:
- Problem sets (5%)
- Mid-term exam #1 (30%)
- Mid-term exam #2 (30%)
- Final exam (35%)
For each of the three components of the grade, 120 points will be available, but the maximum possible score will be 100. There is the possibility of further curving any individual problem set or exam if I decide it was substantially harder than I expected. I will not curve down grades if the assignment is easier than expected.
Additional notes on assignments and exams
- The problem sets will be available on this web page (https://www.cs.umd.edu/class/fall2023/cmsc456-0201/).
- The problem sets will be turned in on Gradescope.
- The problem sets will be a mix of theory-focused problems and programming assignments.
- By default, the scores will not be curved. However, I may curve up the grades for any problem set or exam if I decide it was substantially harder than I expected. I will not curve down grades if the assignment is easier than expected.
- For the problem sets, if you use any external material to solve it (other than the lectures and textbook), cite the source and indicate what you took from it.
- No use of LLMs (such as ChatGPT) at all to solve or write up problem sets.
- You may discuss problem sets with other students, but you must understand and write up your solution or code by yourself. If you do collaborate, indicate who you talked to on your assignment.
- Late problem sets will not be accepted unless an extension is granted by me or one of the TAs before the problem set is due.
- Note that the extension must be granted before the deadline, not requested before the deadline. Be sure to leave enough time to get a response (24 hours should be sufficient).
- Extension requests should specify a valid reason and how long an extension you are requesting. Medical, religious, family emergency are examples of valid reasons (not an exhaustive list). "I have an assignment due in another class" is not a valid reason: Plan ahead!
- Maximum extension is 1 week, so that we can distribute solutions. If you have a valid reason for a longer extension, discuss with me.
- Exams will be in person exams, open book for class materials only. Class materials means the textbook, lecture notes and slides, and problem and solution sets.
- Regrade requests should be submitted within 1 week after both the grades and solution set are available.
General Information
- Lectures will be recorded and available through the course's page on ELMS. However, I strongly recommend that you attend class and not rely on the recordings to follow the class.
- The purpose of the problem sets is to help you learn the material. Even though they are only worth 5% of the grade, doing them should help you do better on the exams.
- There will be a Piazza for asking questions on the class. Unless you have a question that is very specific to you personally, please use the Piazza to ask questions. This includes questions about both the content and administration of the course.
UMD course-related policies
Web Accessibility