COMP 165: Cryptography

David Wittenberg

Course Description:

This is a introduction to cryptography, starting with the first ciphers, and leading up to present day issues. We will discuss how codes and ciphers work, and how they can be broken. We will cover both Private key (Symmetric) and Public Key (Asymmetric) cryptography. Topics include: cryptographic protocols using block ciphers. Methods for key exchange, hashing, message authentication, and digital signatures. Cryptographic protocols regarding secret sharing and digital cash. We will use a mathematical approach to prove properties about the crypto systems we study.


COMP 160, or COMP 170, or any 100 level MATH course


The course description and prerequisites have been revised. The ones here are the correct version. For administrative reasons, the number of this class will be changing to COMP 150-x (where x is an unknown). This course is similar to last year's COMP 165. This year it will be slightly less mathematical, but will still spend a lot of time on proofs. The prerequisite is "mathematical maturity", but since there's no class on that, anyone who took either COMP 160 or COMP 170 should be familiar with the techniques of reduction which play a large role in this course.

Last year many students suggested changing the prerequisites, which seemed like a good idea.

We will be using Piazza for all class information and discussion.

The syllabus and other information will be posted there.

Last edited: 29 Oct. 2019