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/.