This course will provide a graduate-level introduction to software security, both from a theoretical and a practical perspective. Topics to be covered include an overview of the fundamental formal security notions and models (such as information flow analysis and access control), the most common software vulnerabilities and their countermeasures and software-based cryptographic building blocks. Students will be able to further specialize in a cutting edge topic (such as side-channel analysis, software diversity for security and secure multi-party computation) and will develop a practical project based on a recent scientific publication on the subject.
Martin Ochoa (Fall 2015, 2016)
Group project, midterm, final exam