Course Syllabus

Syllabus

Class Time and Location: Tues/Thurs 3:40pm - 5pm, WEB 1248 

Instructor: Pratik Soni

 

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:

  1. A Graduate Course in Applied Cryptography by Dan Boneh and Victor Shoup.
  2. The Joy of Cryptography by Mike Rosulek.
  3. Proofs, Arguments, and Zero-Knowledge by Justin Thaler.
  4. A Course in Cryptography by Rafael Pass and abhi shelat.
  5. Introduction to Modern Cryptography by Jonathan Katz and Yehuda Lindell.

 

Evaluation

Credits breakdown: The credits (100%) are broken down as follows: 

  1. Homework assignments (40%),
  2. Implementation assignment (20%),
  3. Group project (30%),
  4. 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:

  1. Become familiar with basic cryptographic objects like pseudo-random generators, pseudo-random functions, encryption schemes, and digital signatures.
  2. Understand the plausibly hard problems that underpin the security of cryptographic algorithms.
  3. Write security proofs for cryptographic algorithms covered in the class.
  4. 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?).
  5. Understand the state of research and deployment of ZKPs, homomorphic encryption, digital signatures, encryption. 
  6. Gain experience with implementation at least one of above technologies. 
  7. 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.