CSCI 3907-82/6907-82 - Advanced Cryptography

Wednesdays, 12:45-3:15
350 James Monroe Hall

Instructor Information

Name: Arkady Yerukhimovich
Office hours: TBD
Office hours will be held via Zoom. (Link to be provided)

Course description

This course will introduce students to the topic of secure multi-party computation (MPC). MPC allows parties to perform joint computation on their private inputs without disclosing those inputs to each other or using a trusted party. The course will cover the definitions and classical constructions of MPC, and then will introduce students to modern research in this topic.

As part of this course, students will learn how to read, understand, and evaluate recent research papers on MPC, and will be expected to present and lead discussion of these papers in class. Additionally, there will be a half-semester long research project that will give students hands-on experience with MPC application development using an existing MPC library.

See syllabus for additional details.

Technology for Online Instruction

The class will have both in-person and asynchronous (online) components. Specifically, we will have in-person weekly lectures with additional online discussion of material via Slack. For online interactions, students must abide by the Online Social Contract to ensure civil, and productive discourse. The course material will be accessible as follows:


Lectures will be held in-person on Wednesdays, 12:45-3:15 PM in TBD. Students are expected to attend all lectures and participate in discussion. If students need to miss a class, they should talk to me beforehand.

Slack discussions:

To enable asynchronous discussion for the course, we will use Slack (instructions for access will be provided in Blackboard). The goal is to supplement discussion during the lectures and to ask questions about any of the presented material, further reading, or any topics students wish to discuss.


All homework will be posted, collected, and graded via Blackboard.

Office Hours:

Office hours will be held via Zoom.


Participation in class discussions20%
Paper presentation30%
Research project30%

Homework policy:

During the first half of the course, homework will be assigned approximately every two weeks. Homework is due before class (by 12:45PM) on the due date. They must be submitted via Blackboard by this time to receive credit. Homeworks can be typed using your favorite tool (I am happy to help anybody interested in learning LaTex) or handwritten and scanned. But, make sure that what you submit is legible as it is what will be graded. No late homeworks will be accepted!

Students are welcome to work together on homeworks, however each student must write up and submit their own solutions. If you work on the homework with someone else, you MUST acknowledge them on your submitted homework.

Additionally, you may use outside resources (e.g., web search, other text books, lecture notes) to help with the homework. However, if you use any such resource, you MUST cite them appropriately. Moreover, the solutions you submit MUST be your own. Make sure to write-up your own answers and that you understand them, copying and pasting solutions is not acceptable. Submitted homeworks violating these guidelines will be considered in breach of the academic integrity code and will be prosecuted accordingly.

Class Participation:

As this is a seminar-style class, student participation plays a big part of the grade. The expectation is that students will actively participate in the in-person lectures -- student to student discussion is encouraged. Additionally, student will use Slack to ask and answer questions about the week’s lectures, ask about related reading, and/or further topics that they find interesting. I am looking for this to be a discussion among students, so interaction is encouraged. Invitation and further instructions for using Slack will be provided in Blackboard.

Paper Presentations:

A big part of this course will involve students reading and presenting to the class papers on MPC protocols and applications. A list of papers to choose from for presentations is available here.
Students are welcome to add to this list if they find a paper that they find interesting, even if they do not want to present it.

Reading List Instructions:

Some resources for finding papers include:

  • ePrint - many recent crypto papers
  • arXiv crypto - paper repository, use search to find relevant papers
  • Recent conferences in security, crypto, ML, etc.
  • Research Project:

    The course will include a research project in which students will get experience with hands-on development of an MPC application. Students can choose the exact application they would like to investigate, develop an MPC implementation, and perform experiments to evaluate correctness and performance. Students will present their findings to the class at the end of the semester. Additionally, students will produce a report describing their findings.

    You may work alone or in groups of at most two students.

    Tentative schedule

    This is a tentative schedule for the class. The updated schedule will be on Blackboard.

    Date(s)Lecture Topic(s)
    Jan. 12Introductions, MPC definitions and applications, MPC from multiplication triples
    Jan. 19Proving security of MPC (real-ideal paradigm), malicious security
    Jan. 26Shamir secret-sharing, Efficient MPC for honest majority
    Feb. 2Computationally-secure MPC, SPDZ protocol
    Feb. 9Garbled circuits and optimizations
    Feb. 16Homomorphic encryption
    Feb 23 - Apr. 6Student presentations
    Apr. 13 Advanced topics in MPC
    Apr. 20Final Project Presentations