An introduction to theoretical Cryptography. If you’re looking for an introduction to practical security methods, look at CS 5430 - System Security instead.
CS 2800 - Discrete Structures, and you need to be pretty comfortable with probability.
- One way functions
- Computational number theory
- One way permutations and trapdoor permutations
- Pseudorandom generators and pseudorandom functions
- Types of Cryptographic attacks
- Private and public key encryption
- Zero knowledge proofs
Five homeworks, an in-class prelim, and a take home final. The homeworks were pretty challenging and time consuming, and it’s recommended you work in groups. However, it’s not a huge time sink, since there’s only five of them.
Fall 2015: only two homeworks, one in-class prelim, and a regular final, plus a few projects. The projects were not always concretely specified—for instance, the first one was to decrypt a bunch of messages, given a few details about the cipher and key length.
Pass is a pretty cool guy, don’t be scared to ask him questions.
Definitions are very important in Cryptography. Be sure to know them and understand their nuances.
As mentioned before, theoretical and practical cryptography are very different. You should know what you’re getting into here. That being said, you will occasionally hear about protocols which are used in practice (i.e., RSA).
It was a fun course, and I enjoyed the material. However, I also learnt that I wouldn’t enjoy doing much more crypto after this class.
|Semester||Time||Professor||Median Grade||Course Page|
|Fall 2010||-||Rafael Pass||B+||http://www.cs.cornell.edu/courses/cs4830/2010fa/|
|Fall 2015||-||Elaine Shi||-||http://cs4830.jimdo.com/|