Typically, people do not make a living at cryptography or cryptanalysis, yet many people benefit from a deeper understanding of both.
Cryptography is virtually the only mechanism for providing confidentiality, authentication, privacy and integrity in distributed systems, including the internet, and systems with radio based communications. So cryptography is a basic tool for computer scientists.
You can't really design a good cryptosystem if you don't know how they break. That's what cryptanalysis is all about. More importantly, it's hard to know how to use cryptosystems properly if you don't know how they break and how they are designed.
This class will be a hands on study of both cryptography and cryptanalysis with less focus on theory and more focus on actual practice.
We'll cover much of the following (depending on class interest):
Required Background: Algorithms, discrete math (probability, beginning group theory, elementary number theory), linear algebra, and the ability to program (for analysis of cryptosystems). See me if you have any questions.
There is no textbook but I'll post extensive notes. You can find some references here.
I keep a course mailing list for announcements. Please send me your email address. If you need to send me an email, please prepend the subject line with "[CS290]".
The grade will be derived from one take-home exam and a modest class project covering some aspect of cryptography agreed on with the instructor. There will be homework but it won't be graded. However, many of the homework problems can be expanded into class projects and will be helpful for the take-home exam.
Please comply with the University of California, Berkeley Rules of Academic Conduct.
Date |
Topics, readings, and assignments |
|---|---|
Week 1 |
Topic: Introduction Lecture Notes: Lecture Notes Homework Assignment: Homework |
Week 2 |
Topic: Cryptography joins the 20th Century Lecture Notes: Lecture Notes Homework Assignment: Homework |
Week 3 |
Topic: Cryptography in 1975: Block Ciphers and DES Lecture Notes: Lecture Notes Homework Assignment: Homework |
Week 4 |
Topic: Block Ciphers: FEAL and AES Lecture Notes: Lecture Notes and Lecture Notes Homework Assignment: Homework |
Week 5 |
Topic: Modes of operation Lecture Notes: see previous notes. Homework Assignment: Homework |
Week 6 |
Topic: One way functions and cryptographic hashes Lecture Notes: Lecture Notes and Lecture Notes February 27: Special Guest Lecture, Jesse Walker, Hash function construction and SHA-3 Homework Assignment: Homework |
Week 7 |
Topic: Public key cryptography: RSA Lecture Notes: Lecture Notes Homework Assignment: Homework |
Week 8 |
Topic: RSA and MACs Lecture Notes: Lecture Notes Homework Assignment: Homework |
March 25-29, 2013 |
Topic: Intersession break. Work on your projects! Lecture Notes: Lecture Notes Homework Assignment: Homework |
Week 9 |
Topic: Public key cryptography: Discrete log systems Lecture Notes: Lecture Notes Homework Assignment: Homework |
Week 10 |
Topic: Random numbers and cryptographic protocols Lecture Notes: Lecture Notes Homework Assignment: Homework |
Week 11 |
Topic: Elliptic Curve Cryptography Lecture Notes: Lecture Notes Homework Assignment: Homework |
Week 12 |
Topic: Elliptic curve based systems Lecture Notes: Lecture Notes Homework Assignment: Homework |
Week 13 |
Topic: Presentation of class projects. Take home exam distributed on May 1. Presentation Schedule: Presentation Schedule |
Week 15 |
Take home exam due on May 8, 2013 5PM PDT, mail exams to instructor
|