|   |
Course Syllabus
Description:
This course covers the central topics in cryptography (the art of designing codes and ciphers),
cryptanalysis (the art of breaking codes and ciphers), and cryptology (the mathematical science
of cryptography and cryptanalysis).
Course Goals:
The goals of the course are a well-rounded theoretical knowledge of the most important aspects
of these topics, together with sufficient technical mastery to permit implementation of some
cryptosystems in software.
Student Work:
- Undergraduate: Written exercises will be given to students on a weekly or biweekly basis
to be handed in individually. Students will also work in small groups to implement a
cryptosystem, including a symmetric block cipher (e.g., AES) and an asymmetric cipher
(e.g., RSA), as a final programming project.
- Graduate: In addition to all the undergraduate requirements, graduate students will be
given additional written exercises of a more advanced nature, and will be expected to provide
more features in their software projects.
- Tests: One in-class midterm exam and one final exam (both open book, open notes).
Undergraduate students will need to answer fewer questions for the same grade than
graduate students.
Course Grade: The final course grade is calculated from scores received for assignments,
project, and tests
Topics
Week 1: Mathematical preliminaries: basic modular arithmetic, vectors and matrices
Classical symmetric ciphers: Shift, Substitution, Affine, Vigenere, Hill, Permutation
Week 2: Cryptanalysis of classical ciphers; Stream ciphers; LFSRs
Mathematical preliminaries: probability distributions, random variables, Jensen's inequality
Week 3: Information theory: entropy, perfect secrecy, unicity distance; One-time pads
Week 4: Product cryptosystems, block ciphers; Chaining; Substitution-permutation networks,
Feistel networks; Linear cryptanalysis of an SPN
Week 5: Description of the Advanced Encryption Standard (Rijndael)
Week 6: Cryptographic hash functions: security requirements, collisions; Security uses:
passwords, message and data integrity, notaries; MD5, SHA; Message authentication codes;Birthday
attack
Week 7: Mathematical preliminaries: primes, GCDs and the Extended Euclidean Algorithm,
modular exponentiation and inverses, Euler totient function, Euler's theorem, Introduction to
public-key cryptography; RSA: basic implementation details
Week 8: RSA (continued): Miller-Rabin primality testing; Protecting against attacks on
RSA: strong primes, random message padding; Combining RSA with symmetric ciphers for practical
implementation
Week 9: Mathematical preliminaries: Chinese Remainder Theorem, modular square roots;
Rabin's cryptosystem; Factoring algorithms: Pollard's rho method, p-1 method, sieve methods
Week 10: Mathematical preliminaries: abelian groups and finite fields, discrete log; ElGamal;
Diffie-Hellman key exchange; Elliptic curves
Week 11: Digital signature schemes: ElGamal, DSA; Elliptic curve DSA; One-time signatures,
undeniable signatures
Week 12: Authentication and key exchange protocols: Needham-Schroeder, Yahalom, Denning-Sacco,
formal models
Week 13: Mathematical preliminaries: polynomial interpolation; Secret sharing: Shamir
threshold scheme, arbitrary access structures
Week 14: Zero-knowledge proofs; Bit commitment; Pseudorandom number generation
Week 15: Review
Basic Bibliography
Primary text:
- Douglas R. Stinson. Cryptography Theory and Practice (2nd ed). CRC Press, 2002.
Alternate primary text:
- Alfred J. Menezes, Paul C. van Oorshot, Scott A. Vanstone. Handbook of Applied Cryptography.
CRC Press, 1997.
Secondary/reference texts:
- Douglas R. Stinson. Cryptography Theory and Practice. CRC Press, 1995.
- Bruce Schneier. Applied Cryptography: Protocols, Algorithms, and Source Code in C
(2nd ed). John Wiley & Sons, 1996.
- Joan Daeman, Vincent Rijmann. The Design of Rijndael. Springer-Verlag, 2002.
- Neal Koblitz. A Course in Number Theory and Cryptography (2nd ed). Springer-Verlag, 1994.
- William Stallings. Cryptography and Network Security: Principles and Practice (2nd ed).
Prentice Hall, 1999.
- Johannes A. Buchmann. Introduction to Cryptography. Springer-Verlag, 2001.
- Charlie Kaufman, Radia Perlman, Mike Speciner. Network Security: Private Communication
in a Public World. Prentice Hall, 1995.
|
|
  |