ECS 127: Cryptography

ECS 127
Effective Term
2019 Winter Quarter
Learning Activities
Lecture - 3.0 hours
Discussion - 1.0 hours
Introduction to the theory and practice of cryptographic techniques used in computer security. Encryption (secret-key and public-key), message authentication, digital signatures, entity authentication, key distribution, and other cryptographic protocols. The social context of cryptography. GE Prior to Fall 2011: SciEng. GE: SE, QL, SL.
(ECS 020 or MAT 108); (ECS 010 or ECS 032A or ECS 030 or ECS 036A)
Enrollment Restrictions
Pass One open to Computer Science and Computer Science Engineering Majors only.

Summary of Course Content

Topics to include most or all of the following:

  1. Introduction (classical cryptographic goals of encryption, authentication, key distribution, as well as protocol goals like the dating problem or average-salary computation)
  2. Classical ciphers (substitution ciphers)
  3. Stream ciphers and LFSRs
  4. Blockciphers (Feistel networks, DES, AES)
  5. Symmetric encryption modes
  6. Security notions for symmetric encryption (indistinguishability, semantic security, chosen-plaintext attacks, chosen-ciphertext attacks, non-malleability)
  7. Reductions (for relating notions or evidencing security)
  8. Message authentication codes
  9. Authenticated encryption (generic composition, specialized schemes)
  10. Cryptographic hash functions (SHA-1, SHA-3)
  11. Number-theory background
  12. Public-key encryption (RSA, Diffie-Hellman, elliptic curves)
  13. Digital signatures (RSA, ElGamal, Lamport)
  14. entity authentication and key-distribution protocols (Kerberos, TLS)
  15. Secret sharing (Shamir’s scheme)
  16. Oblivious transfer and garbled-circuit evaluation
  17. Zero knowledge
  18. Cryptography and public policy
  19. Cryptography and intellectual property 

Illustrative Reading

  • D. Stinson. Cryptography: Theory and Practice, third ed.. Chapman & Hall/CRC, 2005.
  • N. Ferguson, B. Schneier, and T. Kohno. Cryptography Engineering: Design Principles and Practical Applications. Wiley, 2010. 

Potential Course Overlap

There is a small amount of overlap with course 153, Computer Security, which briefly discusses methods for shared-key and public-key encryption. ECS 127 provides a much broader and deeper description of contemporary cryptography.

Course Category