Algorithms to guarantee privacy and authenticity of data during communication and computation. Proofs of security based on precise definitions and assumptions. Topics may include one-way functions, private-key and public-key encryption, digital signatures, pseudorandom generators, zero-knowledge proofs, fully homomorphic encryption, and the role of cryptography in network and systems security.
Prerequisite: Computer Science 121 or Computer Science 124.
What is privacy, and how is it affected by recent developments in computer technology? Course critically examines popular concepts of privacy and uses a rigorous analysis of technologies to understand the policy and ethical issues at play. Case studies: RFID, database anonymity, research ethics, wiretapping. Course relies on some technical material, but is open and accessible to all students, especially those with interest in economics, engineering, political science, computer science, sociology, biology, law, government, philosophy.
This course will focus on language-based information security: using programming language techniques and abstractions to specify, reason about, and enforce, information security. Most of the course will focus on information-flow control: controlling the flow of information within a system to enforce strong security guarantees.