CS 6222: Introduction to Cryptography

University of Virginia – Spring 2020

Description

This course will provide an introduction to modern cryptography and its applications to computer security. This course will cover the fundamentals of symmetric cryptography (i.e., encryption and message authentication) and public-key cryptography (i.e., key-exchange and signatures) as well as cryptographic protocols like zero-knowledge proof systems. More details are available in the course syllabus.

Meeting Time and Place

Location: Rice 340
Time: Monday, Tuesday, 11:00am - 12:15pm

Logistics

Piazza: We will use Piazza for sending out course announcements. Please sign up for the course Piazza using this link.

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 a theory-based course and we will assume that you are comfortable with mathematical proofs. We recommend that you have taken a discrete math course (e.g., CS 2102), an introductory theory of computation course (e.g., CS 3102), and an introductory algorithms course (e.g., CS 4102). A basic understanding of probability theory and modular arithmetic will also be helpful. This course is intended for advanced undergraduates and graduate students.

Reference Material

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

Acknowledgments

The structure of this course is inspired by Stanford's CS 255 course.