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:

  1. 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.
  2. 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.
  3. 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.
  4. 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%).