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, Internet voting
systems, 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.
We will be using two books:
- Cryptography Theory and Practice by D.
- Cryptography and Network Security, Second edition, by
- Optional: Applied cryptography by B. Schneier.
- Optional: Handbook of Applied Cryptography by A. Menezes,
P. Van Oorscho, S. Vanstone. Free!
and research papers handed out in class.
- There will be four sections given by the TA's during the
- Sections will be held at Gates B01 from 4:15 - 5:30 (live on channel
on the following dates:
- January 25th,
- February 8th,
- February 22nd, (5:45pm-7:00pm, Gates B03)
- March 8th.
- Attendance at the sections is optional.
- There will be three written
homework assignments and two programming project.
- 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 three 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.
- 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 following formula:
0.4 H + 0.3 P + 0.3 F
- H is your average score on the three
written homework assignments.
- P is your average grade on the two programming
- F is your final exam score.