The final exam is next week (Wednesday 5/8, 3:15pm), and the last two class sessions are scheduled for project presentations, so I'm doing the course review now!

We've covered a huge variety of material since the midterm. You should know:

- Elliptic curve cryptography: what makes them secure, why
they're popular, why you might choose to use or
__not__use them in a project, how the math works, how the code works, and where the holes are. - Elliptic curve versions of Diffie-Hellman-Merkel (ECDH), and
the Digital Signature Algorithm (ECDSA).

- Networks: the basic IP/TCP/HTTP stack, SSL/HTTPS, certificate
authorities, binary and ASCII protocol design.

- Schemes for getting high performance: SSE for SIMD, OpenMP for multicore, CUDA for GPU.
- BitCoin is interesting not only as a replacement for fiat money, but as an application of all of the above.

- Major categories of crypto algorithms: secret key, public key, hashes, protocols.
- How Feistel-structured secret key ciphers work.
- How Rivest-Shamir-Adleman (RSA) public key crypto works.

- How Diffie-Hellman-Merkel key exchange works.