← Gabriel Kaptchuk

CMSC656 — “Introduction” to Cryptography

Fall 2026 · University of Maryland

InstructorGabe Kaptchuk · kaptchuk@umd.edu
Office hoursTuesdays after class, IRB 5232
MeetingsTuesdays & Thursdays, 9:30–10:45 a.m., IRB 2207
TermSept 1 – Dec 10, 2026
TAKanav Gupta · kanav@umd.edu · office hours by appointment
Course siteIRB 2207
Credits3
PrerequisitesCMSC451, CMSC452, CMSC456, or equivalent

Course description

This is a graduate course in cryptography. It will assume comfort with the basic building blocks of cryptography taught in undergraduate courses on cryptography/security and privacy: symmetric key encryption, public key encryption, message authentication codes, digital signatures, and hash functions. Students are expected to be comfortable with formal reductions and have some prior exposure to game-based security definitions. These building blocks will be very briefly reviewed at the start of the course, but students lacking this background are encouraged to invest the necessary time to catch up.

This course will be primarily theoretical, in that students will be expected to write definitions, design protocols, formally analyze security, and prove theorems. However, we will be primarily focusing on primitives that support the development of efficient cryptographic protocols, rather than focusing on core connections to computer science theory.

Learning objectives

By the end of the course, students should be able to:

Texts and references

No required textbook; relevant readings will be posted. Students may want to consult the following as supplemental learning material or background:

Another very useful source of reference material is scribe notes for cryptography courses, a good list of which can be found here.

Grading

ComponentWeight
Problem sets35%
Attendance / participation10%
Final project25%
Final exam30%
Total100%

Assignments

Problem sets

There will be 4 problem sets assigned throughout the semester. We ask students to submit their answers in the form of a LaTeX-generated PDF.

Final project

For the course project, you will be doing independent work to understand and explore an area in cryptography. Your deliverable with be a recorded presentation of your findings. Your goal hould be to understand a new concept in crypto by reading original sources, and then to communicate this concept clearly and concisely. You should aim to cover a topic from your own perspective, not just to summarize a single paper. Your target audience should be your fellow students in the course. If you would like to do some original research as part of your project, this is very much encouraged, but not required.

For additional information, see the project page.

Final exam

The final exam will be comprehensive and will take place during the assigned time during finals period. Please consult the finals calendar for the time when it is posted.

Course policies and academic accommodations

We will follow the standard University of Maryland graduate course policies. If you are eligible for and requesting reasonable academic accommodations due to a disability, please provide an electronic letter of accommodation via Accessibility and Disability Service within the first two weeks of the course. If you need additional accommodation, please reach out to me directly.

If you plan to observe any holidays during the semester that are not listed on the university calendar, please provide a list of these dates by the end of the first two weeks of the semester.

Schedule

Meetings are Tuesdays and Thursdays, 9:30–10:45 a.m., Sept 1 through Dec 10. The schedule is subject to change; changes will be announced on the course site.

#DateTopicReadingNotes
1Tue, Sep 1Pre-req crash courseNegligible functions; ElGamal reduction
2Thu, Sep 3PRGs from OWFs and the hybrid lemma
Tue, Sep 8More reductions and hybrid lemmas
3Thu, Sep 10No class — instructor traveling
4Tue, Sep 15KEM/DEM Hybrid Lemma and Random OraclesKem/Dem Hybrid Encryption; Generic transofrm to CCA Security
5Thu, Sep 17The big day of game-based definitionsReview/Introducing the necessary background primatives.
6Tue, Sep 22PRFs from PRGs via GGMSet up for OPRFs; give first ideal/real definition implicitly
7Thu, Sep 24Oblivious pseudorandom functionsOPRFs introduce protocols
8Tue, Sep 29Secure computation and real/idealGeneralizing from the above idea
9Thu, Oct 1Commitment schemes and coin flippingVery basic MPC functionality
10Tue, Oct 6Oblivious transfer & GMW
11Thu, Oct 8Honest majority MPCSpecial purpose MPC: DPFs
12Tue, Oct 13ZK definitions and sigma protocolsOpportunity to talk about extraction
13Thu, Oct 15Semi-honest to malicious compilers via ZK
14Tue, Oct 20OPRFs again
15Thu, Oct 22Writing ideal functionalities
16Tue, Oct 27Equivalence between ideal functionalities and game-based definitions
17Thu, Oct 29Universal composability
18Tue, Nov 3More interesting ideal functionalities
19Thu, Nov 5Garbled circuits (classic edition)
20Tue, Nov 10Garbled circuits (modern edition)
21Thu, Nov 12Special purpose MPC: PSI
22Tue, Nov 17Special purpose MPC: PIR
23Thu, Nov 19Special purpose MPC: PIR lower bounds, multi-server
Thu, Nov 24No class — Thanksgiving is almost here.
Thu, Nov 26No class — Thanksgiving break
24Tue, Dec 1Special purpose MPC: DPFs
25Thu, Dec 3Zero-knowledge from MPC
26Tue, Dec 8Kilian’s protocol
27Thu, Dec 10Modern IOPs (simplified)