This course will cover topics in security and privacy with an emphasis on principled methods for analysis and design. Specific topics include analysis of network security protocols, distributed access control, privacy, and software system security. In studying each topic, we will emphasize certain general methods and principles as well as illustrate their use in the design and analysis of real systems. For example, the section on network security protocols will include a discussion of model-checking techniques and their application to widely deployed protocols such as the IEEE 802.11i standard. Brief introductions to cryptography and modeling & analysis techniques including various logics, model-checking, theorem-proving, process calculi, and type systems will be provided to make the course self-contained.
This course should be of interest to graduate students and advanced undergraduates interested in security, privacy, cryptography, programming languages and formal methods.