CS5961/CS6961: Modern Cryptography (Fall 2023)

Instructor: Pratik Soni (psoni at cs.utah.edu)

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

Office Hours: TBD, WEB 2863 (or by appointment)

Class Communications: We will be using Canvas.

Course Description

Modern Cryptography is used at scale to secure information at rest and/or in transit, and recently to also secure our computations. This course is a graduate-level introduction to the foundations of modern cryptography. It is also open to advanced undergraduates. We will cover basic cryptographic tools, discuss their applications and instantiations, and introduce a formal mathematical framework to rigorously argue about security.

In particular, the tools covered will include pseudorandom generators, pseudorandom functions, symmetric-key encryption, message-authentication codes, digital signatures, public-key encryption, and hash functions, along with a small sampling of advanced topics like zero-knowledge proofs and fully-homomorphic encryption. For each of these tools, will learn how to mathematically define security, their use-cases in practice. We will also study their constructions from different computational hardness assumptions like the discrete-log problem, the factoring problem, and the plausible quantum-hard problem of learning-with-errors. We may briefly cover applications of these tools for blockchain settings.

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 undergraduate-level probability, elementary number/group theory, proofs by contradiction, and hardness reductions (in complexity theory) is highly recommended. Please discuss with the instructor in case of any gaps in your background.

Course Materials: The class will be self-contained, but the following is a continually expanding list of good resources for supplementary reading:

Evaluation Components

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

Homework Assignments: The assignment will be posted on Fridays at 11:59pm and will be due within a week. The solutions must be typeset in LATEX and submitted as a pdf. Please see the schedule below for release and due dates for homeworks.

Final project: Students can form groups of two. Each group will be assigned a topic along with suggestions of 1-2 research papers on that topic. The group is expected to submit a 3-5 page report (typeset in LATEX) along with a 30 mins in-class presentation on their findings. The format for the report and presentations will be discussed in class. Students are encouraged to choose a topic from this pre-populated list. Students can propose their own topic but instructor approval is required.

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 1000 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!

Late Submissions: Late submissions are highly discouraged. In case of any emergencies, please immediately consult with the instructor. The decision on accepting late submissions and/or the penalty imposed will lie solely with the instructor.

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 five (+ two bonus) learning outcomes through lectures and other evaluation components:

  1. Recognize the important of having a formal framework for defining and arguing about security.
  2. Define the security for basic cryptographic objects like pseudo-random generators, pseudo-random functions, encryption schemes, and digital signatures.
  3. Understand the factoring assumption, discrete-log assumption, learning-with-error assumption, and their plausibility.
  4. Write security proofs for cryptographic algorithms covered in the class.
  5. Compare different constructions of cryptographic algorithms w.r.t. their (concrete/asymptotic) efficiency (e.g., is the RSA encryption scheme with 80-bit security more ``efficient" than the Elgamal encryption scheme with the same security level?).
  6. [Bonus]: Understand the security definitions for at least one of the following advanced cryptographic objects: zero-knowledge proofs, fully-homomorphic encryption, program obfuscation, CCA encryption.
  7. [Bonus]: Discuss the significance of cryptography in the context of blockchains/crypto-currencies. 


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.

Week Date Lecture Contents
1 8/22/23 Course Organization Learn LATEX, Overleaf
8/24/23 One-time Pad, Computational Security
2 8/29/23 Pseudorandomness 1
8/31/23 Pseudorandomness 2 HW1 open
3 9/5/23 Pseudorandomness 3
9/7/23 Pseudorandomness 4 HW1 due
4 9/12/23 Symmetric-key Encryption 1
8/14/23 Symmetric-key Encryption 2 HW2 open
5 9/19/23 Message Authentication and Hash Functions 1
9/21/23 Message Authentication and Hash Functions 2 HW2 due
6 9/26/23 Digital Signatures 1
9/28/23 Digital Signatures 2
7 10/3/23 Mid-term Preparation
10/5/23 Mid-term Exam
8 10/10/23 Fall break
10/12/23 Fall break
9 10/17/23 Public-Key Encryption 1
10/19/23 Public-Key Encryption 2 HW3 open
10 10/24/23 Zero-Knowledge Proofs 1
10/26/23 Zero-Knowledge Proofs 2 HW3 due
11 10/31/23 Blockchains 1
11/2/23 Blockchains 2 HW4 open
12 11/7/23 Advanced Topics 1 (Fully-homomorphic encryption)
11/9/23 Advanced Topics 2 (Program Obfuscation) HW4 due
13 11/14/23 Student Presentations 1
11/16/23 Student Presentations 2
14 11/21/23 Student Presentations 3
11/23/23 No Class due to Thanksgiving Day
15 11/28/23 Student Presentations 4
11/30/23 Student Presentations 5
16 12/5/23 Student Presentations 6
12/7/23 Student Presentations 7 Final reports due