

Description
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
(secretkey and publickey), message integrity, digital signatures, user
authentication, key management, cryptographic hashing,
Network security protocols (SSL, IPsec), publickey infrastructure,
digital rights management, and a bit of zeroknowledge protocols.
Prerequisites
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
The following books can be used to supplement the lectures:
 Optional: Cryptography Theory and Practice, Third edition by D.
Stinson.
 Optional: Introduction to Modern Cryptography
by J. Katz and Y. Lindell.
 Optional: Handbook of Applied Cryptography by A. Menezes,
P. Van Oorschot, S. Vanstone. Free!
and research papers handed out in class.
Sections
 There will be a number of sections given by the TAs during the
quarter.
 Sections will be held on Fridays in Skilling 191 at
3:15pm4:05pm (Live on E1)
 January 25,
 February 8,
 February 22,
 March 7,
 Attendance at the sections is optional.
Homework Assignments
 There will be three written
homework assignments and two programming projects.
All programming projects will be in Java using the JCE.
 You may collaborate when solving the written
assignments, however when writing up the
solutions you must do so on your own.
 Both programming projects can be done in pairs.
 You must hand in all four homework assignments
and the two programming projects.
 Some of the assignments will contain extra credit
questions. You must solve extra credit questions
on your own.
 Extensions: each student has a total of 72
extension hours throughout the quarter.
This automatic extension can be spent in units of 24 hours on any
of the assignments and projects. Please mark the submission
time for any late assignment. There will be no additional
extensions.
 Homework will be due on Wednesdays in class or at 5pm
under Mike Hamburg's office door (Gates 494).
 It is an honor code violation to consult solutions to
homework problems from previous CS255's.
Exams
There will be an in class final exam during finals week.
No midterm exam.
Students can choose from one of two dates for the in class
final exam. We will announce the date for the alternate final
as soon as we have it.
Grading
Final placement in the class will be determined by the following formula:
0.35 H + 0.35 P + 0.3 F
 H is your average score on the four
written homework assignments.
 P is the weighted average grade on the two programming
projects.
 F is your final exam score.
