CS255: Introduction to Cryptography

Introduction to Cryptography

Winter 2021

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

Course syllabus (and readings)
Course overview (grading, textbooks, coursework, exams)
Lectures: Monday, Wednesday, 2:30-3:50pm, online
Sections: Friday, 4:30-5:20pm, online
Questions for CAs: cs255ta@cs.stanford.edu or use Ed Discussion
Videos: cs255 online   (for video lectures and slides covering the material in class)

Homework

All homework submission is to be done via Gradescope. Please use course code V88N2K to sign up. Note that Gradescope requires that the solution to every problem start on a new page.

--
Homework #0:   [html]
Due: Jan. 20
--
Homework #1:   [pdf]
Due: Feb. 1
--
Homework #2:   Not out yet.
Due: Feb. 22
--
Homework #3:   Not out yet.
Due: Mar. 15

Projects

--
Project #1 (password manager):   Not out yet.
Due: Mon., Feb. 8, 11:59pm
--
Project #2 (chat client):   Not out yet.
Due: Mon., March 2, 11:59pm

Calendar

Handouts

  • Basic number theory fact sheet I, primes:   [pdf]
  • Basic number theory fact sheet II, composites:   [pdf]
  • A Primer on number theory for computer scientists: [pdf]