MPCS 56535 Foundations of Cryptography (Winter 2026)

Section 1
Instructor(s) Agarwal, Ishan (ishanagarwal)
Location Crerar 011
Meeting Times Thursday 2pm - 4:50pm
Fulfills Elective

Syllabus

This is a proofs-based theory course where we will study the foundations of various cryptographic primitives and encryption schemes.

Topics will tentatively include (some of): 


1) Formal notions of secrecy: information theoretic, perfect secrecy, computational secrecy, chosen plaintext attack (CPA), chosen ciphertext attack (CCA) etc.

2) One Way Functions, Pseudo Random Generators

3) Symmetric Key Cryptosystems

4) Public Key (Asymmetric) Cryptosystems: Examples. (Primality testing based: RSA, Discrete-log based: Diffe-Hellman protocol)

5) Message Authentication Codes 

6) Digital Signatures (for example, RSA based)

7) Secure Multi-Party Computation

8) Hash Functions: collision resistance, birthday attacks.

9) Hard Core Predicates: Goldreich-Levin Theorem.

10) Differential Privacy: How can we collect aggregate information about a population while maintaining privacy of individual-specific data. Example: we want to compute average salary at an organization without learning much about any individual's salary.

11) Zero knowledge proofs: How to prove you solved a problem without giving away the solution; proof of knowledge/ proof of work, with some interesting applications to blockchains.

12) Lattice Based Cryptography: post-quantum cryptography?


Course Evaluation:

The course evaluation will primarily be based on weekly written assignments. You will get detailed feedback on these assignments and will have the opportunity to resubmit these after the feedback.

Course Prerequisites

Core Programming completed (MPCS 51036, or 51040, or 51042, or 51046, or 51100) or Core Programming Waiver. Non-MPCS Students: Must have completed CMSC 14200, CAPP 30122 or MACS 30122 or MPCS Programming Placement Exam I. MPCS 55001 Algorithms completed or waiver for Algorithms based on CMSC coursework or a pass on the Algorithms placement exam.

This class can count as a Core Theory class for students with a waiver for Algorithms based on CMSC coursework or passing the Algorithms placement exam. This class can also count as a 6th Core class for 12-course students.

Other Prerequisites

The most essential prerequisite is that students must be comfortable reading and writing mathematical proofs.

Good knowledge of discrete math, especially probability and some number theory is also recommended.

This must be evidenced by the prerequisites above or a background in formal proof-based mathematics: such as an undergrad degree in math, or a related field. You should have at least taken 1 proofs-based math class in the past.

No knowledge of cryptography is assumed.

Overlapping Classes

This class is scheduled at a time that conflicts with these other classes:

  • MPCS 56600-1 -- Introduction to Blockchain

Eligible Programs

MS in Computational Analysis in Public Policy (Year 2) Bx/MS in Computer Science (Option 3: Profesionally-oriented - Non-CS Majors) Masters Program in Computer Science