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 takehome 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 takehome 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 SHA3 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 2529, 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
