CS 255: Introduction to Cryptography

Winter 2023

Stanford University

This course offers an introduction to cryptographic techniques used in computer security, covering encryption, message integrity, digital signatures, key management, and more. It is suitable for advanced undergraduates and masters students with some proof techniques and programming experience.

Course Page

Overview

Cryptography is an indispensable tool for protecting information in computer systems. This course explains the inner workings of cryptographic primitives and how to use them correctly.

This course is an introduction to the basic theory and practice of cryptographic techniques used in computer security. We will cover topics such as encryption (secret-key and public-key), message integrity, digital signatures, user authentication, key management, cryptographic hashing, Network security protocols (SSL, IPsec), public-key infrastructure, digital rights management, and a bit of zero-knowledge protocols.

Optional readings can be found in the textbooks denoted by KL and AC in the syllabus below. The optional AC book, by Boneh and Shoup, is more advanced (and free) and is intended for students wishing to go deeper. The online version of the course is another resource for the material covered in class.

Prerequisites

The course is self contained, however a basic understanding of probability theory and modular arithmetic will be helpful. The course is intended for advanced undergraduates and masters students. Students are expected to have experience with basic proof techniques and some programming experience.

Learning objectives

No data.

Textbooks and other notes

Students can supplement the lectures with an online version of the course (MOOC) that covers some of the material.

The following books can be used to supplement the lectures:

Note that the textbooks do not cover all the material discussed in class.

Other courses in Computer Security and Cryptography

COS 433 - Cryptography

Fall 2020

Princeton University

CS 155 Computer and Network Security

Spring 2022

Stanford University

Courseware availability

Lecture slides available at Course syllabus, videos, and slides

Videos available on Coursera at Course syllabus, videos, and slides

Homwork and project available at Homework

The following is a free textbook for the course. The book goes into more depth, including security proofs, and many exercises.

Covered concepts