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:
Method of Evaluation:
There will be four homeworks, one end-of-term project, and a final exam.