CS 341: Cryptography
Course Information
Textbook
Cryptography Engineering, by Niels Ferguson, Bruce Schneier, and Tadayoshi Kohno.
The Plan
This course will be organized around a sequence of questions
chosen to give you experience with a collection of core
cryptographic ideas and techniques. Our interaction with each problem will
go roughly like this:
- First, we will choose a real-life system that uses cryptography in some way.
We will make our choice based on the interests of the people in the class
as well as the need to get experience with a collection of core
cryptography concepts. For example, our first topic will be "how
do automatic teller machines work?", partly because it's just an interesting
question, and partly because it will get us started looking at
secret-key cryptography and attacks against secret-key systems.
- Each team of two people will research the topic and produce a 1-2 page
preliminary report, which will include (among
other things) a list of recommended study topics.
- Via lectures, labs, readings, demos, programming
exercises, and problem sets, we will study the
cryptographic algorithms and protocols needed to understand the system under
investigation. Depending on the complexity of the topic, this phase will
take between a few days and a few weeks. (For example, for the ATM topic,
we'll study PIN validation techniques and the DES and Triple DES algorithms
at minimum, which will take a while.) During this phase, if appropriate,
I may ask specific groups to do short reports for the rest of the class
on specific sub-topics.
- Each team will produce a 3-8 page final report on the topic. The structure
of this report will be similar to that of the preliminary report, but will
be include more detail. (We'll discuss the structure of this report in class
before you do your first one.)
Exams
There will be one in-class exam after the first two topics to make sure
you understand the basic workings of secret- and public-key cryptographic algorithms
and protocols. Late in the term, there may be a take-home exam.
Final project
Each of you (individually or with a partner of your choosing) will research
and prepare a presentation on a cryptographic topic of your choice. Depending on
your topic and your inclinations, your project may involve writing and demonstrating
software, writing a more or less conventional research paper, developing a
powerpoint-like presentation, creating a small web site to illuminate your topic,
etc. In any case, you will make a presentation to the class as a whole either
during the final week of classes or during the final exam period.
Grading
Your grade will be based on your performance on the two exams (15% each), your
final project (15%), and your reports and other homework (55%).