CS 346: Cryptography

University of Texas at Austin – Fall 2024

Description

This course provides an introduction to modern cryptography. Topics include symmetric cryptography, public-key cryptography, digital signatures, key agreement, and zero-knowledge proofs. We will also cover proper usage of cryptographic primitives. The goals of this course are to provide you a basic understanding of basic cryptographic primitives and how to use them properly to construct secure systems.

Meeting Time and Place

Location: GDC 4.302
Time: Monday, Wednesday, 2:00pm-3:30pm

This course will be in person. Recordings of the lectures will be available via Lectures Online. If you are not able to make it to lecture or are feeling unwell, please watch the recordings offline.

Logistics

Canvas: We will use Canvas, which includes links to Ed Discussion (for announcements and class discussions) and Gradescope (for assignment submission and grading).

Ed Discussion: We will use Ed Discussion for class discussions and for sending out course announcements. If you have a question about the course material or course logistics, please post it on Ed Discussion instead of emailing the course staff directly. You should be automatically added to the Ed Discussion site via Canvas once the semester starts.

Lectures Online: Recordings of the lectures will be available via Lectures Online after the lecture (if available). You can also access Lectures Online via Canvas.

Gradescope: Homework submissions will be handled via Gradescope. You should be automatically enrolled in the course via Canvas once the semester starts.

Homework: Please see the Course Organization and Policies page for details on how to format and submit your homeworks as well as the collaboration policy for the course.

Prerequisites

This is primarily a theory course (but with some programming assignments to demonstrate appropriate usage of cryptography) and we will assume that you are comfortable with mathematical proofs. We recommend that you have taken a theory of computation course (e.g., CS 353) and an algorithms course (e.g., CS 331). A basic understanding of probability theory (e.g., MATH 362K) and modular arithmetic will also be helpful.

Reference Material

Throughout the semester, we will post additional reference material here:

Acknowledgments

The structure and material of this course is inspired by Stanford's CS 255 and CS 355 courses.