CS 255 Course Overview

(Winter 1999)



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), digital signatures, secure authentication, electronic commerce (anonymous cash, micropayments), key management, cryptographic hashing, and a bit of zero-knowledge protocols.


The course requires a basic understanding of probability theory. Some knowledge of modular arithmetic will be helpful but not required. The course is intended for advanced undergraduates and graduate students.

Textbook Information

We will be using two books:

  • Cryptography Theory and Practice by D. Stinson.
  • Network Security by C. Kaufman, R. Perlman and M. Speciner.
  • Optional: Applied cryptography by B. Schneier.

and research papers handed out in class.

Homework Assignments

  • There will be four written homework assignments and one programming project.
  • You may collaborate when solving the written assignments, however when writing up the solutions you must do so on your own. The programming project can be done in pairs.
  • You must hand in all four homework assignments and the programming project.
  • Some of the assignments will contain extra credit questions. You must solve extra credit questions on your own.
  • Homework assignments will be graded on a scale of 0 to 10.
  • Assignments should be handed in on the due date.


There will be a final exam. No midterm exam.


Final placement in the class will be determined by the follwing forumla:

0.5 H + 0.2 P + 0.3 F

  • H is your average score on the four written homework assignments.
  • P is you grade on the programming project.
  • F is your final exam score.

Last update: January 05, 1999 by Dan Boneh