# COMP 590/790: Introduction to Cryptography

__Fall 2022__

Instructor: Saba Eskandarian

Contact: saba@cs.unc.edu or anonymous feedback form

TAs: Houlton McGuinn and Max Christman

Lectures: Mon/Wed 11:15am-12:30pm, SN 0011

Instructor Office Hours: Mon/Wed 10-11am, 2-3pm (Brooks 346), additional OH by appointment

TA Office Hours:

Thurs 11am-12pm, location TBD (Max)

Thurs 12:30-1:30pm, location TBD (Houlton)

Fri 12-1pm, location TBD (Houlton)

Fri 3-4pm, location TBD (Max)

Links:

Syllabus

Course Schedule

Anonymous Feedback

## Course Description

Cryptography is an indispensable tool for protecting information in computer systems. Our web browsers use it almost every time we connect to a website; it protects our private messages from prying eyes; it enables the modern world of online commerce; and it guards the freedoms of journalists, dissidents, and oppressed groups throughout the world.

At the same time, cryptography has deep connections to the theory of computation, number theory, algebra, and computational complexity theory. Major open questions in cryptography have immediate ramifications for whether P=NP, and cryptography research has given rise to several of the most beautiful ideas in computer science. These ideas (which we will cover) have been recognized by several Turing awards.

This course will introduce you to both sides of cryptography. Our main focus will be on the inner workings of cryptographic primitives and how to use them correctly. We will begin with standard cryptographic tools such as encryption, message authentication, key exchange, and digital signatures before moving on to more advanced topics like elliptic curves, post-quantum cryptography, and zero-knowledge. See the course schedule page for a more detailed list of topics. Throughout the course we will also explore the techniques used in modern cryptography to reason about the security of cryptographic schemes.

## Assignments

- Problem set 1 (source, preamble): due Monday, August 29
- Problem set 2 (source, preamble): due Monday, September 12
- Programming assignment 1 (starter code): due Wednesday, September 21
- Problem set 3 (source, preamble): due Monday, October 3
- Problem set 4 (source, preamble): due Monday, October 31
- Programming assignment 2 (starter code): due Wednesday, November 9
- Problem set 5 (source, preamble): due Monday, November 21

## Resources

The following resources may be helpful as reference throughout the course.- A Graduate Course in Applied Cryptography, textbook by Dan Boneh and Victor Shoup
- Introduction to Modern Cryptography, textbook by Jonathan Katz and Yehuda Lindell
- Attacks and Reductions in Cryptography, a short tutorial by David Wu
- Arithmetic Modulo Primes, a cheat sheet by Dan Boneh
- Arithmetic Modulo Composites, a cheat sheet by Dan Boneh
- Glossary of Crypto Definition Acronyms