Course Syllabus
Syllabus
Class Time and Location: Tues/Thurs 3:40pm - 5pm, WEB 1248
Instructor: Pratik Soni
- Email: psoni at cs dot utah dot edu
- Web: https://users.cs.utah.edu/~psoni/
- Office Hours: Tues/Thurs 2pm-3pm in WEB 2863
Course Description
Modern Cryptography is rapidly developing a strong suite of privacy-enhancing technologies like zero-knowledge proofs, homomorphic encryption, digital signatures, public-key encryption, accumulators and many more! This course is a graduate-level introductory course on the foundations of these emerging technologies with an emphasis on their real-world applications across a variety of CS disciplines, including but not limited to blockchains, digital-media provenance (and preventing deepfakes), verifiable delegation of computations, memory integrity checking, and game theory.
By the end of this course, you will understand how these technologies are built, develop the necessary formalism to argue about their security, see their use cases in practice, and through the final project, learn to identify opportunities to apply these technologies to new frontiers. The course will be divided into two parts:
- The first part is a 7 week crash course on modern cryptography and covers basic tools like block ciphers, private-key encryption schemes, hash functions, digital signatures, secret-sharing, key exchange, and public-key encryption; with case studies of real world systems that use these tools.
- The second part of the course exclusively focuses on the nuts-and-bolts of advanced concepts like zero-knowledge proofs, advanced digital signatures, homomorphic encryption; and discusses their applications to decentralized finance, fighting misinformation, private machine-learning inference, memory integrity checking, and many more!
Pre-requisites: There are no formal pre-requisites and the course will not assume any prior background in cryptography. However, basic mathematical maturity is expected; exposure to discrete mathematics (e.g., CS 2100) and undergraduate algorithms (e.g., CS 4150) is strongly recommended.
Course Materials: The class will be self-contained, but the following is a continually growing list of good resources for supplementary reading:
- A Graduate Course in Applied Cryptography by Dan Boneh and Victor Shoup.
- The Joy of Cryptography by Mike Rosulek.
- Proofs, Arguments, and Zero-Knowledge by Justin Thaler.
- A Course in Cryptography by Rafael Pass and abhi shelat.
- Introduction to Modern Cryptography by Jonathan Katz and Yehuda Lindell.
Evaluation
Credits breakdown: The credits (100%) are broken down as follows:
- Homework assignments (40%),
- Implementation assignment (20%),
- Group project (30%),
- Class participation (10%).
There will opportunities to earn 15% extra-credit through homework assignment (5%), a mid-term quiz (5%), and group project (5%).
Homework Assignments: There will be five assignments; each will have a mix of 3-5 theoretical questions and programming tasks. Each assignment will be of 50 points and carry a weight of 10% towards your final grade. The lowest score will be dropped.
They will be posted on Thursdays (after class) and will be due Sunday of the next week. The homework sheet will have a space to write the solution. Typeset or print submissions are strongly recommended, handwritten solutions are accepted but you are solely responsible for legibility. Submissions to be done through Canvas. Please see the schedule below for due dates.
Implementation Assignment: There will be one implementation assignment that carries 20% of your final grade. Several tasks will be posted, you only need to solve one task for full credit. Each student needs to pick a unique task, e.g., must not overlap with any other student's choice. The focus of this task will be to self learn a new Web3-related crypto technology (e.g., Solidity, ArkWorks, HElib, CirC) and undertake an appropriately scoped programming task.
Group Project: Students should form groups of two. The project should be relevant to the materials discussed in the class, be unique (i.e., two groups may not choose the same project), and require significant research or programming effort from each of the team members. Some example project ideas will be discussed in the class, but you are encouraged to be creative and bold!
The credit for the final project is split as follows:
- A 5-minute Pitch (5%) - in class on Oct 3/5 Oct 15 (updated on Sep 12).
- Progress Discussion (5%) - 1:1 office hour meeting by Nov 7.
- 30-minute Final Presentation (10%) - in class between Nov 19 - Dec 5
- Final Report (10%) - due by Dec 6.
The schedule is tentative and may change depending on the class size.
Class participation: To encourage class participation, each student is required to provide reviews on three student presentations. Once the schedule for the presentations is out, students can sign up for presentations they want to review. Each review must be about 500 words (less is acceptable), and must demonstrate your understanding of the presentation's content, highlight positive aspects about the presentation, and suggest improvements that can be undertaken by the group. The reviews will be made available to the presenters in anonymized form at the end of the semester. Please be positive and constructive in your reviews!
How to get extra credits? You can make up 15% via the following extra credit opportunities:
- Homework Assignment: Should you submit all five homework assignments, the lowest assignment score will be counted towards a 5% extra credit. E.g., if your fifth lowest assignment score is 40/50 (i.e., 80%), then 4% will be added directly to your final grade.
- Project Video: If you upload a 5-minute video summarizing your project work on a instructor-specified platform (e.g., Canvas or a youtube channel), then an extra 5% will be added to your final grade. The goal of this effort is to create a directory/playlist of example projects which future students can use as a reference.
- Quiz: To provide more opportunity to earn extra credit, we will have a short in-class quiz. Advance notification will be given about the quiz date (tentatively before Fall break). This in-class quiz will have 10 short questions to help you evaluate your understanding of the lecture contents. This quiz will count 5% towards extra credit. To be held in class on Oct 3 (updated Sep 12).
(Suggested) Grading Scale:
A | 100%-94% |
A- | 93.9%-90% |
B+ | 89.9%–87% |
B | 86.9%–84% |
B- | 83.9% - 80% |
C+ | 79.9%–77% |
C | 76.9%–74% |
C- | 73.9% - 70% |
D+ | 69.9%–67% |
D | 66.9%–64% |
D- | 63.9% - 60% |
E | 59.9%–0% |
Late Submissions: Late submissions are not allowed. In case of any emergencies, prior permission from the instructor is needed.
Academic Integrity: For homework assignments, students are encouraged to discuss homework problems (in groups of at most two) but are expected to write solutions independently. The name of the collaborator must be indicated. Additionally, the students are expected to adhere to KSoC's academic code of conduct outlined here. Please also look at the semester guidelines by CoE and KSoC as outlined here and here.
Learning Outcomes
Throughout the course, we will make progress towards achieving the following learning outcomes through lectures and other evaluation components:
- Become familiar with basic cryptographic objects like pseudo-random generators, pseudo-random functions, encryption schemes, and digital signatures.
- Understand the plausibly hard problems that underpin the security of cryptographic algorithms.
- Write security proofs for cryptographic algorithms covered in the class.
- Compare the efficiency of cryptographic algorithms (e.g., is the RSA encryption scheme with 80-bit security more ``efficient" than the Elgamal encryption scheme with the same security level?).
- Understand the state of research and deployment of ZKPs, homomorphic encryption, digital signatures, encryption.
- Gain experience with implementation at least one of above technologies.
- Identify opportunities to apply these concepts to other areas of computing.
Class Communications
We will be using Canvas for all class-related activities including uploading homework assignments, final project report, and release of grades. To get in touch with the instructor, students should send an email by including "[CS6961]" in the subject. Additionally, students may use our Piazza account for discussions including posting questions (anonymously).
Schedule
Following is a tentative schedule for the semester. It is meant to give you an idea of the topics, but note that some of the topics may be altered depending on the pace and comfort of the class. Please visit the Modules page for exact schedule and content.
Week | Topics | Deadlines |
---|---|---|
1 | Introduction to Modern Cryptography | |
2 | Pseudorandom Generators | |
3 | Block-ciphers, Private-key Encryption | HW1 due |
4 | Message Integrity via Message-Authentication Codes and Merkle Trees | HW2 due |
5 | Secret Sharing; Key-Exchange | HW3 due |
6 | Public-key Encryption | HW4 due |
7 | Digital Signatures | Extra-credit Quiz |
8 | Fall Break | |
9 | Zero-knowledge Proofs (ZKP) | Project Pitch |
10 | SNARKs | HW5 due |
11 | ZKP applications | IA1 due |
12 | Cryptography for Blockchains | |
13 | Fully Homomorphic Encryption; Private Inference | |
14 | Student Presentations | |
15 | Student Presentations | |
16 | Student Presentations | Report due |
University Policies
Americans with Disabilities Act (ADA)
The University of Utah seeks to provide equal access to its programs, services, and activities for people with disabilities.
All written information in this course can be made available in an alternative format with prior notification to the Center for Disability & Access (CDA). CDA will work with you and the instructor to make arrangements for accommodations. Prior notice is appreciated. To read the full accommodations policy for the University of Utah, please see Section Q of the Instruction & Evaluation regulations.
In compliance with ADA requirements, some students may need to record course content. Any recordings of course content are for personal use only, should not be shared, and should never be made publicly available. In addition, recordings must be destroyed at the conclusion of the course.
If you will need accommodations in this class, or for more information about what support they provide, contact:
Center for Disability & Access
801-581-5020
disability.utah.eduLinks to an external site.
162 Union Building
200 S. Central Campus Dr.
Salt Lake City, UT 84112
Safety at the U
The University of Utah values the safety of all campus community members. You will receive important emergency alerts and safety messages regarding campus safety via text message. For more safety information and to view available training resources, including helpful videos, visit safeu.utah.edu.
To report suspicious activity or to request a courtesy escort, contact:
Campus Police & Department of Public Safety
801-585-COPS (801-585-2677)
dps.utah.edu
1735 E. S. Campus Dr.
Salt Lake City, UT 84112
Addressing Sexual Misconduct
Title IX makes it clear that violence and harassment based on sex and gender (which includes sexual orientation and gender identity/expression) is a civil rights offense subject to the same kinds of accountability and the same kinds of support applied to offenses against other protected categories such as race, national origin, color, religion, age, status as a person with a disability, veteran’s status, or genetic information.
If you or someone you know has been harassed or assaulted, you are encouraged to report it to university officials:
Title IX Coordinator & Office of Equal Opportunity and Affirmative Action
801-581-8365
oeo.utah.edu
135 Park Building
201 Presidents' Cir.
Salt Lake City, UT 84112
Office of the Dean of Students
801-581-7066
deanofstudents.utah.edu
270 Union Building
200 S. Central Campus Dr.
Salt Lake City, UT 84112
To file a police report, contact:
Campus Police & Department of Public Safety
801-585-COPS (801-585-2677)
dps.utah.edu
1735 E. S. Campus Dr.
Salt Lake City, UT 84112
If you do not feel comfortable reporting to authorities, the U's Victim-Survivor Advocates provide free, confidential, and trauma-informed support services to students, faculty, and staff who have experienced interpersonal violence.
To privately explore options and resources available to you with an advocate, contact:
Center for Student Wellness
801-581-7776
wellness.utah.edu
328 Student Services Building
201 S. 1460 E.
Salt Lake City, UT 84112
Academic Misconduct
It is expected that students comply with University of Utah policies regarding academic honesty, including but not limited to refraining from cheating, plagiarizing, misrepresenting one’s work, and/or inappropriately collaborating. This includes the use of generative artificial intelligence (AI) tools without citation, documentation, or authorization. Students are expected to adhere to the prescribed professional and ethical standards of the profession/discipline for which they are preparing. Any student who engages in academic dishonesty or who violates the professional and ethical standards for their profession/discipline may be subject to academic sanctions as per the University of Utah’s Student Code: Policy 6-410: Student Academic Performance, Academic Conduct, and Professional and Ethical Conduct.
Plagiarism and cheating are serious offenses and may be punished by failure on an individual assignment, and/or failure in the course. Academic misconduct, according to the University of Utah Student Code:
“...Includes, but is not limited to, cheating, misrepresenting one’s work, inappropriately collaborating, plagiarism, and fabrication or falsification of information…It also includes facilitating academic misconduct by intentionally helping or attempting to help another to commit an act of academic misconduct.”
For details on plagiarism and other important course conduct issues, see the U's Code of Student Rights and Responsibilities.
The syllabus page shows a table-oriented view of the course schedule, and the basics of course grading. You can add any other comments, notes, or thoughts you have about the course structure, course policies or anything else.
To add some comments, click the "Edit" link at the top.