Cryptology in Computing: Computer Science 431
Tuesday and Thursday, 4-5:15pm (3 credits),TAPY 218
Kevin McCurley

About the instructor

I have worked in cryptology for approximately twelve years, first at the University of Southern California, and later at IBM Research and Sandia National Laboratories. I have approximately twelve years of teaching experience in Mathematics and Computer Science, and I taught this course last fall. I am currently the president of the International Association for Cryptologic Research. You can reach me with the email address "mccurley at digicrime.com" (ask me why I have this screwball way of writing my email address). You can also visit my personal home page.

Office hours

3-4:10 Tuesday and Thursday, or by appointment.

Prerequisites

The official pre-requisite is CS 251 and a good familiarity with modular arithmetic. In addition, a basic understanding of probability is useful. Cryptology can be a highly mathematical subject, particularly when you want to understand the strength of systems against an adversary. The emphasis in this course will be on understanding cryptographic mechanisms and their applications, and as a result every effort will be made to minimize the mathematical pre-requisistes.

A small amount of material will be covered on complexity theory and information theory, to assist in understanding design principles. Mathematics will be covered as needed to understand the nuts and bolts of systems and analysis of systems. If you have taken courses in number theory, theory of computation, or probability, then some of this material will look familiar.

The plan of instruction

The semester is 16 weeks, but there are only 29 lectures due to the midterm, fall break, and thanksgiving holiday. This course does not have a well described set of topics to be covered, and has no direct follow-on course. There is far too much material to be covered in a one-semester course, and I cannot begin to cover it all (particularly at the undergraduate level). I regard it as important to expose students to a broad spectrum of topics rather than a few topics in great depth. This course will concentrate on the design and uses of cryptography rather than ad-hoc methods of cryptanalysis. The latter is better suited to a course in mathematics. I will cover some material on cryptographic primitives and algorithms (e.g., DES and cryptographic hash functions), as well as protocols (e.g., secret sharing, key exchange, zero-knowledge indentification and electronic cash). I will try to concentrate on what I regard as the ``core areas'', which means primarily encryption, authentication, and identification. Other topics will be covered as time permits.

In order to give the course some structure that can be followed from week to week, I will try to structure the course roughly along the lines of the textbook, although lectures and handouts will supplement the book in the areas where it is weak. In particular, the title of the book includes the words ``theory and practice'', but the practice is largely absent.

A course description is available online. Lectures will be on selected material from chapters 1-10 (there is not nearly time to cover it all). My rough goal is to devote time as follows, but this will undoubtedly need to be adjusted as we go.

Chapter  Topic                              # of lectures
1         Classical (symmetric) encryption        3
2         Shannon's theory                        3
3         Data Encryption Standard                2
4         Asymmetric systems (RSA and Factoring)  5
5         Other public key systems                4
6         Digital Signatures                      3
7         Hash Functions                          3
8         Key management                          4
9         Identification schemes                  1
11        Secret sharing                          1
     total lectures                              29
The UNM calendar is available online. Lectures are on the following days:
August 27,29
September 3,5,10,12,17,19,24,26
October 1,3,8,10,15,22,24,29,31 (note: no class on October 17)
November 5,7,12,14,19,21,26 (note: no class on November 28)
December 3,5,10,12

The mid-term exam is tentatively scheduled for October 22. The final exam will be held on December 17 from 5:30-7:30 pm.

The textbook

In all honesty, there is no good textbook for this course (I'm thinking of writing one). I have chosen a new book by Doug Stinson titled ``Cryptography: Theory and Practice''. The choice of topics is pretty good, and there is not too much extraneous material. In addition, it should serve as a reference for students that feel their mathematical training is lacking. Another enjoyable reference book is the book by Bruce Schneier titled ``Applied Cryptography''. Unfortunately it suffers from some flaws that make it unsuitable as a textbook. A greatly expanded second edition is forthcoming this fall, so you may want to wait before buying a copy. Beware that the first edition contains many errors, and it's difficult to sort out what is important.

Grading and assignments

I plan to base this on the results from several homework assignments, a mid-term exam, and a final exam. Homework assignments will be primarily mathematical, but at least you will have adequate time to work on them. The exact breakdown will be: homework: 40%, mid-term: 25%, final exam: 35%.
The CS431 home page is located at http://www.swcp.com/~mccurley/course/.

The instructor's home page: http://www.digicrime.com/~mccurley/.