CS555 Spring 2005: Cryptography

Class Information

Class Information

The course is an introduction to cryptography, aimed to graduate students.

Topics we will focus on include:
  1. Concepts and principles of crypography: security services, attacks and mechanisms.
  2. Classical cryptographic systems: shift cipher, Vigenere and Vernam ciphers, Jefferson wheel cipher and the Enigma machine.
  3. Block ciphers: DES, Blowfish, AES.
  4. Public-key encryption: RSA, ElGamal.
  5. Data integrity: hash functions, MD5, SHA1, the HMAC standard.
  6. Digital signatures: RSA, ElGamal, DSA.
  7. Blind signatures. Group signatures.
  8. Authentication protocols.
  9. Key management: two-party key exchange and group key management protocols.
  10. Hybrid encryption schemes.
  11. Privacy.
  12. Applications:fair exchange, certified email, e-cash.
  13. Notions of threshold cryptography. Proactive security.
The grade will be based on written homework assignments (HW), a final project (FP), midterm (ME), a final exam (FE) and class participation (CP), as follows:
Grade = 20% * HW + 25% * FP + 20% * ME + 30% * FE + 5%*CP.

Exams are closed books and closed notes.

Textbooks and reading list


  • Douglas R. Stinson, Cryptography (Theory and Practice), CRC Press 1995, ISBN: 0-8493-8521-0.
  • William Stallings, Cryptography and Network Security, Principles and Practice, Second Edition, Prentice Hall, 1998, ISBN: 0-13-869017-0.

Reading List:

You will also find useful:
  • Samuel S. Wagstaff, Cryptanalysis of Numeric Theoretic Ciphers, CRC 2000. ISBN 1-58488-153-4.

    Class Schedule
    • TTh 1:30-2:45pm, CS G066
    • Jayesh Pandey
    • Office: Math B3
    • Email: jpandeyATcs
    • Office hours: W 1:30 - 3:30
    Mailing list

    The class mailing list is cs555. To be added to the list sent an email to mailer@cs.purdue.edu, with the body containing the text 'add your_email to cs555'.

    Academic Integrity

    Academic Honesty and Ethical behavior are required in this course, as it is in all courses at Purdue University ( here is the guide for academic integrity). The class will be conducted according to the policy written by Professor Gene Spafford. Please take the time to read it carefully. This will be followed unless I provide written documentation of exceptions.

    You are encouraged to talk with the professor about any questions you have about what is permitted on any particular assignment.

  • Lectures and Homework

    Lecture slides and homework assignments will be posted below. This is a tentative schedule of the course.

    Week Tuesday Thursday
    Jan. 10 - Aug. 14 Lecture 1 - Introduction to cryptography: security attacks, services and mechanisms, terminology, attacks on ciphers and protocols. Models of evaluating security. Lecture 2 - Introduction to cryptography: basic ciphers - description and cryptanalysis; cipher machines.
    Jan. 17 - Jan. 21 Lecture 3 - Elements of probability theory. Perfect secrecy. Entropy. Unicity distance.
    HW1 handed in class.
    Lecture 4 - Symmetric encryption. Block ciphers: DES.
    Jan. 24 - Jan. 28 Lecture 5 - Symmetric encryption.Block ciphers: cryptanalysis of DES, variations of DES, IDEA, RC5, Blowfish, AES Lecture 6 - Stream ciphers: RC4, LFSR and their use in WEP and CSS. Prof. N. Li
    Jan. 31 - Feb. 4 Lecture 7 - Data integrity. Hash functions. MD5. Lecture 8 - Security of stream ciphers and block ciphers. Prof. N. Li.
    Feb. 7 - Feb. 11 Lecture 9 - Hash functions:SHA1 and RIPMD160, MACs: HMAC
    Lecture 10 - Introduction to Information Hiding, M. Topkara.
    Feb. 14 - Feb. 18 Lecture 11 - Divisibility, GCD, LCM. Euclid's Algorithm for finding GCD.Prime and composite numbers. Distribution of prime numbers. Congruence. Fermat and Euler's Theorems.
    Lecture 12 - RSA description and implementation.
    Feb. 21 - Feb. 25 Lecture 13 - RSA attacks. OAEP.
    Feb. 28 - March 4 Midterm discussion. Lecture 14 Rabin, SRA Mental Poker Protocol and commutative encryption. Goldwasser-Micali.
    March 7 - March 11 Lecture 15 ElGamal. DLP, CDH and DDH. Security of ElGamal. Lecture 16 - Digital signatures: RSA, ElGamal. One-time digital signatures: Rabin, Merkle.
    March. 14 - March. 19 SPRING BREAK
    .March 21 - March 25 Lecture 17 - Digital signatures DSA, Schnorr. One-time digital signatures: Rabin, Merkle. Lecture 18 - Public key infrastructure: the need for authentication, X.509 Directory Authentication Service, PGP.

    March 28 - April 1 Lecture 19 - Authentication protocols, entity authentication. One time passwords, Lamport's scheme, challenge-response schemes, zero knowledge authentication protocols (Fiat-Schamir and Schnorr). Lecture 20 - Kerberos. Key establishment: Needham-Schroeder public key protocol, Diffie-Hellman, STS, MTI. Key management: requirements, group key management, centralized and contributory protocols
    April 4 - April 8 Lecture 21 - IPSec.

    Lecture 22 - SSL.
    April 11 - April 15 Lecture 23 - Biometrics Lecture 24 - Group key management.
    April 18 - April 22 Lecture 25 - Intro to threshold cryptography. Lecture 26 - Intro to secure multi-party computation.
    April 25 - April 29 Lecture 27 - Intro to identity-based cryptosystems. Course evaluation forms will be handed. Lecture 28 - Review for final. Bring your questions to the class.

    Final Project

    Students are expected to write a proposal about the project they would like to work on. A list of possible projects will also be provided by the professor. All projects have to have a practical component. Students are supposed to show a demo of their prototype, that counts toward their grade. Students with interest in systems and network security are encouraged to choose practical projects.

    Students are encouraged to work in teams of 2-3 students. A meeting will be scheduled with the professor to discuss what was achieved in the project and to assess the contribution of each team member to the project.


    Purdue University Department of Computer Sciences