CO 485/685 - Fall 2010
The Mathematics of Public Key Cryptography
Instructor: David Jao
Office hours: Mon. & Wed. 3-4
Course materials
- Course outline (https:../../wiki/images/f/fe/Outline.pdf)
- Textbook: An Introduction to Mathematical Cryptography (https://www.springer.com/math/numbers/book/978-0-387-77993-5) by Hoffstein, Pipher, and Silverman.
- Online access to the textbook: on campus (https://www.springerlink.com/content/978-0-387-77993-5) and off campus (https://www.springerlink.com.proxy.lib.uwaterloo.ca/content/978-0-387-77993-5) (requires library password).
- For graduate students: Course project information (https:../../wiki/images/b/b6/Co685-2010-project.pdf)
- Sample midterm problems (https:../../wiki/images/9/95/Sample-midterm10.pdf)
- The midterm will take place in RCH 206 on Tuesday, November 2 from 5:30pm to 7:30pm.
- No notes or calculators permitted.
- Practice problems for the final exam (https:../../wiki/images/4/48/Sample-final10.pdf)
- The final examination is scheduled for Friday, December 10 from 12:30pm to 3:00pm in RCH 205.
- No notes or calculators permitted.
Assignments
- Assignment 1 (https:../../wiki/images/a/a7/Co485-a1-2010.pdf) (due Wednesday, September 29) and solutions (https:../../wiki/images/e/e6/Co485-s1-2010.pdf)
- Assignment 2 (https:../../wiki/images/8/86/Co485-a2-2010.pdf) (due Wednesday, October 13) and solutions (https:../../wiki/images/d/dc/Co485-s2-2010.pdf)
- Assignment 3 (https:../../wiki/images/a/a1/Co485-a3-2010.pdf) (due Wednesday, October 27) and solutions (https:../../wiki/images/9/9b/Co485-s3-2010.pdf) (corrected version)
- Assignment 4 (https:../../wiki/images/3/3d/Co485-a4-2010.pdf) (due Wednesday, November 17) and solutions (https:../../wiki/images/9/93/Co485-s4-2010.pdf)
- Assignment 5 (https:../../wiki/images/c/c5/Co485-a5-2010.pdf) (due Wednesday, December 1) and solutions (https:../../wiki/images/f/f3/Co485-s5-2010.pdf)
Course notes
- Introduction
- Symmetric and public key cryptography (https:../../wiki/images/d/d4/Co485-2010-notes01.pdf)
- Public key cryptography examples and security definitions (https:../../wiki/images/5/56/Co485-2010-notes02.pdf)
- Elementary number theory
- Modular arithmetic (https:../../wiki/images/2/2d/Co485-2010-notes03.pdf)
- Quadratic residues (https:../../wiki/images/6/60/Co485-2010-notes04.pdf)
- Jacobi symbols (https:../../wiki/images/2/25/Co485-2010-notes05.pdf)
- Prime generation and testing (https:../../wiki/images/3/39/Co485-2010-notes06.pdf)
- Provable security
- Security proofs (https:../../wiki/images/8/84/Co485-2010-notes07.pdf)
- Motivating chosen ciphertext security (https:../../wiki/images/f/fc/Co485-2010-notes08.pdf)
- Hard problems in number theory
- Integer factorization (https:../../wiki/images/1/11/Co485-2010-notes09.pdf)
- Discrete logarithms (https:../../wiki/images/d/df/Co485-2010-notes10.pdf)
- Applications
- Digital signatures (https:../../wiki/images/9/9a/Co485-2010-notes11.pdf)
- Hash functions (https:../../wiki/images/5/54/Co485-2010-notes12.pdf)
- Zero-knowledge proofs (https:../../wiki/images/1/15/Co485-2010-notes13.pdf)
- Random number generators (https:../../wiki/images/0/07/Co485-2010-notes14.pdf)
- Chosen ciphertext security
- Fujisaki-Okamoto transform (https:../../wiki/images/d/d8/Co485-2010-notes15.pdf)
- Elliptic curve cryptography
- Introduction to elliptic curves (https:../../wiki/images/9/9e/Co485-2010-notes16.pdf)
- Elliptic curve implementation (https:../../wiki/images/6/6a/Co485-2010-notes17.pdf)
- ECC protocols (https:../../wiki/images/d/d2/Co485-2010-notes18.pdf)
- Pairing-based cryptography
- Bilinear pairings (https:../../wiki/images/a/a5/Co485-2010-notes19.pdf)
- Pairings in cryptography (https:../../wiki/images/9/9b/Co485-2010-notes20.pdf)
- Mathematical properties of pairings (https:../../wiki/images/2/26/Co485-2010-notes21.pdf)