15-827: Security and Cryptography
Instructor: Jeannette Wing

Description:
As the Internet has exploded, so has everyone's interest in security. This course will cover a range of basic topics on computer security including private and public key cryptography, authentication protocols, electronic commerce protocols, firewalls, and intrusion detection. More advanced topics include elliptic curve cryptography, zero-knowledge proofs, anonymous cash, electronic voting, electronic auctions, watermarking, secure co-processors, software-fault isolation, proof-carrying code, Java's security model, and trust management. We will look at these topics from both a systems viewpoint, e.g., identifying typical classes of design flaws in authentication protocols, and a more formal viewpoint, e.g., verifying that an authentication protocol satisfies certain desirable properties. This course is intended to appeal to a wide range of students: from people interested in state-of-the-art applied cryptographic protocols to those interested in state-of-the-art security mechanisms in networks and programming languages. Students interested in pursuing research in any aspect of security are especially encouraged to enroll. Students should know basic number theory (e.g., Euler's phi function and Fermat's little theorem) and mathematical logic (e.g., what axioms and rules of inference are). They should understand basic security and protection mechanisms in operating systems (e.g., trusted domains, capabilities and access control lists) and be familiar with programming programming languages like C and Java. Textbook and Readings:
Prerequisites: 15-412 (Operating Systems) and 21-228 (Discrete Mathematics).

Textbook and Readings:

  1. Required: Handbook of Applied Cryptography, Alfred J. Menezes, Paul C. van Oorschot, and Scott A. Vanstone, CRC Press, 1997.
  2. Recommended: Applied Cryptography, Bruce Schneier, 2nd edition, 5th or later printing. Addison-Wesley.
  3. Papers distributed by the instructor.

Method of Evaluation:
There will be four homeworks, one end-of-term project, and a final exam.