ICS 180: Introduction to Cryptography

Spring Quarter, 2004


 Instructor:       Stanislaw Jarecki


Most important info:


Course Description:

This course is an introduction to modern cryptography for advanced undergraduates.   In this class, rather than looking at many different cryptographic schemes and protocols, we will focus on understanding the *goals* of security protocols, i.e. on understanding what properties a protocol needs to achieve to be considered secure and truly useful for computer applications, and on showing how to *prove* that some protocol actually achieves these properties, and hence is indeed secure. We will see how to define, construct, and prove security of symmetric and public-key encryption schemes, signature schemes, authentication schemes, identification protocols, etc.  At the end of the course, the students will be able to understand cryptographic research and, if interested, pursue such research themselves.  The class should also be interesting and useful to anyone interested in general computer and network security.

What this class is not about:

This class will not teach you all there’s to know to make computers and networks secure.  Cryptography is only one tool, or if you will, one layer in the stack of engineering issues that need to be solved to make computers secure.  Computer security has to deal with lots of other issues we’ll not touch on in the class, like buggy code, viruses and other break-ins, denial of service attacks, the need to monitor a network, preventing bad passwords, integrating various network services securely, and many more.  We’ll stay firmly on the layer of algorithm design, although the real-world security issues like those listed above will motivate the security properties we’ll require of our cryptographic algorithms.

In this class we’ll also not concentrate on techniques used to design and analyze block ciphers (like DES or AES) and hash functions (like MD5 and SHA).  The class will offer you some insight into security of such constructions, but designing and analyzing such constructions is mostly a separate art, and since there are no good techniques as of now to prove much about their security, we’ll not focus on these constructions in this class.

Grading:

All your grades will be based on weekly problem sets and a take-home final (which will be just a longer homework).  You are also encouraged to actively participate in the class.

Lectures and Notes:

Since there’s no textbook, it’s really important that you come to lectures and participate.  We’ll be distributing lecture notes and pointers to on-line information, but I’m still developing these and they might not always cover everything we do in class.

Prerequisites:

The formal prerequisites are ICS 6.A and ICS.161.  However, what you really need is this:

More specifically, you need the following:

The last three topics listed above will be briefly reviewed in class. If you are missing some of this background, see the reading list link above for review material which is available on-line.

This class is complementary to other UCI classes on security/cryptography:

No previous experience in cryptography or security is necessary for this class (see the prerequisites above), but for those students who have taken or are thinking of taking other UCI classes on security/cryptography, here is a word of explanation why this class differs from and complements the related UCI classes: