CS255: Introduction to Cryptography

Introduction to Cryptography

Winter 2012

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


Course syllabus (and readings)
Course overview (grading, textbooks, coursework, exams)
Lectures: Monday, Wednesday, 2:15-3:30pm, Gates B03
Sections: Friday, 2:15-3:05pm, Gates B01.
Questions for CAs: cs255ta@cs.stanford.edu
Videos: cs255 online (for videos and discussion with CAs and other students).

Final Exam

Students may take the final at either one of the following two dates:

  • Option 1: (scheduled)   Friday, 3/23,  12:15-2:15pm, Huang Nvidia Aud.
  • Option 2: (alternate)   Thursday, 3/22,  12:15-2:15pm, Annenberg Auditorium.

For remote SCPD students: Please email cs255ta@cs with your email address, the email address of your SCPD monitor if you have one, and which day you would like to take the exam. We will email a pdf to you which you should print, complete, and fax back to us at 650 725-4671. Also email us when you fax the exam back so we can be on the lookout for it. We will email you with confirmation of receipt so hold on to your exam until you receive confirmation. Note that if you are local to the bay area, you must come to one of two exam slots unless you contact us in advance.


Homework #0: online.
Due: Jan. 18
Homework #1:   [pdf]    solutions: [pdf]
Due: Feb. 1, in class
Homework #2:   [pdf]    solutions: [pdf]
Due: Friday, Feb. 17, 5pm
Homework #3:   [pdf]    solutions: [pdf]
Due: Mar. 12 in class.


Project #1:   Encrypted Facebook groups.   pdf  ,     starter script
milestone #1: due Jan 29, 11:59pm    milestone #2: due Feb 7, 11:59pm
Project #2:   SSL MiTM.   pdf     starter code
Due: Mar. 9, 11:59pm