CSPP 532
Public Key Infrastructure: Theory and Practice

Masters Program in Computer Science
University of Chicago
Summer 2001
Tuesdays, 5:30 - 8:30 PM
Instructor: Sandy Kutin
TA: Ian Cooke

Hello, and welcome to CSPP 532: Public Key Infrastructure: Theory and Practice.

This week's assignment

Homework Assignments

  1. For Tuesday, June 26 (revised 6/24/01)
    (Note: the deadline for the program has been extended to Friday, June 29.)
  2. For Tuesday, July 3 (revised 6/27/01)
  3. For Tuesday, July 10 (revised 7/9/01)
  4. For Tuesday, July 17 (revised 7/12/01)
  5. For Tuesday, July 24 (revised 7/18/01)
    Note: problem 1 due Friday, July 27.
  6. For Tuesday, July 31 (revised 7/25/01)
    Note: problem 1 due Friday, August 3.
    Note: problem 2 due Friday, August 10.
  7. For Tuesday, August 7 (revised 8/2/01)
  8. For Tuesday, August 14 (revised 8/8/01)
  9. For Tuesday, August 21 (revised 8/15/01)

How to hand in your homework

Final Project

The final project is due Friday, August 24, at 5 PM. You should have confirmed your topic with me by Tuesday, August 7.

For students graduating this quarter, the project deadline was Thursday. August 16, at 5 PM.

Note: If you're writing a paper, I recommend that you turn in a hard copy, if possible. An email attachment is acceptible, but may not work properly. Program projects may be turned in using hwsubmit.

Office Hours

Lecture Notes

  1. 6/19/01: Ian Cooke discussed how to compile a Java program, and how to use the BigInteger class. Laszlo Babai discussed how to test if a number is prime, and the difference between polynomial and exponential time.
  2. 6/26/01: We discussed the history of cryptography. We also talked about how to compute the square root of a large integer.
  3. 7/3/01: Before the break, we talked about modular arithmetic. We discussed when a number has an inverse mod m, and we defined the greatest common divisor. After the break, we discussed DES, Triple-DES, and AES.
  4. 7/10/01: Before the break: Euclid's Algorithm, modular inverses, the Euler phi function. After the break: Fermat's Theorem, hashing.
  5. 7/17/01: Before the break: Fermat's Theorem, Euler's Theorem, fast modular exponentiation by repeated squaring, math behind RSA. After the break: hashing, MACs, RSA.
  6. 7/24/01: Before the break: Miller-Rabin primality testing. After the break: key management. We also discussed the midterm and final projects.
  7. 7/31/01: Before the break: the midterm. After the break, other primitives using modular squaring: the Blum coin flip, and the Blum-Blum-Shub pseudo-random bit generator.
  8. 8/7/01: Before the break: secret-sharing schemes. After the break: web security.
  9. 8/14/01: Before the break: discrete logs, Diffie-Hellman key exchange, the ElGamal public key scheme, elliptic curves. After the break: government and cryptography.
  10. 8/21/01: Before the break: P vs. NP and quantum computation. We also discussed quantum key exhcange. After the break, Gina Steele gave a guest lecture on patent law and how it applies to computer software.

Grades

I've worked out a breakdown for your quarter grade: If you have any questions, please let me know.

Syllabus

Required and Recommended Reading

Join the class mailing list