CSCI 3907-82/6907-82 - Advanced CryptographyWednesdays, 12:45-3:15
350 James Monroe Hall
Instructor InformationName: Arkady Yerukhimovich
Office hours: TBD
Office hours will be held via Zoom. (Link to be provided)
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 InstructionThe 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.Homework:
All homework will be posted, collected, and graded via Blackboard.Office Hours:
Office hours will be held via Zoom.
|Participation in class discussions||20%|
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:
- Students must choose a paper to present at least 2 weeks before their presentation date. To choose a paper put your name in the "Claimed by" column.
- Approximately 1 week before their presentation, presenters must schedule a meeting with me to go over their presentation to make sure material is at appropriate depth.
- By Friday before a paper presentation (and preferably earlier), each non-presenting student must ask at least 2 questions in Slack about each of the papers to be presented that week.
- Presenters should try to answer the posted questions in Slack and/or in their presentations as appropriate. Be prepared to discuss.
Some resources for finding papers include:
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 scheduleThis is a tentative schedule for the class. The updated schedule will be on Blackboard.
|Jan. 12||Introductions, MPC definitions and applications, MPC from multiplication triples|
|Jan. 19||Proving security of MPC (real-ideal paradigm), malicious security|
|Jan. 26||Shamir secret-sharing, Efficient MPC for honest majority|
|Feb. 2||Computationally-secure MPC, SPDZ protocol|
|Feb. 9||Garbled circuits and optimizations|
|Feb. 16||Homomorphic encryption|
|Feb 23 - Apr. 6||Student presentations|
|Apr. 13||Advanced topics in MPC|
|Apr. 20||Final Project Presentations|