CS 255: Introduction to Cryptography

Winter 2026

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.

Administrative

Lectures: Mon/Wed   3-4:20pm,   CoDa B60
Section: Friday:   1:30-2:20pm,   Location: McCullough 122
Course syllabus (and readings)
Course overview (grading, coursework, exams)
Questions for CAs: Ed Discussions.
Videos: cs255 online   (for videos and slides covering some of the material in class)

Homeworks and Projects

--
Homework #1:    [html]
Due: Wednesday, Jan. 14, 2026, via Gradescope (code="8DE6NR")
--
Homework #2:    [pdf]
Due: Thursday, Jan. 29, 2026, via Gradescope
--
Project #1: Build a password manager
Assignment:    [instructions]   [starter code]
Due: Wednesday, Feb. 11, 2026, via Gradescope
--
Homework #3:    [pdf]
Due: Thursday, Feb. 19, 2026, via Gradescope
--
Project #2: chat client
Assignment:    Not out yet.
Due: Tuesday, March 3, 2026, via Gradescope
--
Homework #4:    Not out yet.
Due: Wedesnday, March 11, 2026, via Gradescope

Course calendar

Lecture recordings

Video cameras located in the back of the room will capture the instructor presentations in this course. For your convenience, you can access these recordings by logging into the course Canvas site. These recordings might be reused in other Stanford courses, viewed by other Stanford students, faculty, or staff, or used for other education and research purposes. Note that while the cameras are positioned with the intention of recording only the instructor, occasionally a part of your image or voice might be incidentally captured. If you have questions, please contact a member of the teaching team.