Applied Cryptography

Title Applied Cryptography (56530)
Quarter Autumn 2019
Instructor William Conner (wconner@cs.uchicago.edu)
Website

https://sites.google.com/site/wgconner2/crypto-f19

Syllabus

Description

This course will introduce both theoretical and practical aspects of cryptography engineering.  Topics in the course will range from the design of cryptographic primitives to attacks that exploit flaws in various cryptosystems.  In addition to learning how cryptosystems work, students should develop a new appreciation of how difficult it is to avoid cryptographic pitfalls.

Topics

  • Randomness
  • Cryptographic security notions
  • Hash functions
  • Message authentication codes
  • Block ciphers (DES, AES)
  • Stream ciphers (Trivium, RC4, Salsa20/ChaCha)
  • Public key cryptography (RSA, Diffie-Hellman, ECC, ElGamal)
  • Advanced topics (e.g., post-quantum cryptography)
  • Real-world applications (e.g., cryptocurrency)

Coursework

  • Homework assignments
  • Programming projects
  • Midterm and final exams
  • Class attendance is mandatory

Textbooks

There is no required textbook for this course, but the following books are good references for the material covered in the course.


Cryptography Engineering (https://www.schneier.com/books/cryptography_engineering/)

Understanding Cryptography (http://crypto-textbook.com)

Introduction to Modern Cryptography, 2nd Edition (https://www.cs.umd.edu/~jkatz/imc.html)


Handbook of Applied Cryptography (available for free at http://cacr.uwaterloo.ca/hac/)

Prerequisites (Courses)

Core Programming (required)
MPCS 56511: Introduction to Computer Security (recommended, but not required)

Prerequisites (Other)

Familiarity with C, Java, and/or Python (required)

Satisfies

Elective
Information Security Specialization (https://masters.cs.uchicago.edu/page/information-security)

Time

Wednesday 5:30-8:30pm

Location

Ryerson 276