Security Is a Critical Element in The Design of Modern Computer Systems From Servers, to Mobile Devices, Vehicles, and Iot. This Course Will Provide The Basic Tools to Reason About, Develop, and Analyze Computer Systems Security. Topics Include# Principles (security Policies, Threats, Vulnerabilities), Cryptographic Tools (definitions, Symmetric-key, Public-key, Cryptosystems, Dh Key-exchange, Hash Functions), Authentication (human, Machine), Authorization, Privacy (anonymity, Differential Privacy, Web), Security With Game-theory (blockchain, Proof of Work, Proof of Stake), Secure Hardware (trusted Execution Environments, E.g., Sgx and Trustzone), Confinement Problem, Information Flow, Hardware Side-channel Attacks and Mitigations (cache Timing Attacks, Power Channel Attacks, Speculative Execution Attacks, Rowhammer). Learning Outcomes# The Student Will Be Able 1. Analyze The Security of a Computer System With Various Perspectives (vulnerabilities, Authentication, Cryptographic Tools). 2. Design Secure Systems From a Principled Approach (considering Appropriate Threat Models, Policies, Choosing Tools).

Faculty: Electrical and Computer Engineering
|Undergraduate Studies |Graduate Studies

Pre-required courses

(46209 - Structure of Operating Systems and 46267 - Computer Architecture) or 234123 - Operating Systems


Semestrial Information