From 25d2509e0afc16535663040fca90d779640655ff Mon Sep 17 00:00:00 2001 From: Justin Hsu Date: Sat, 21 Jul 2018 16:34:26 -0400 Subject: [PATCH] Draft website for CS 839. --- website/Makefile | 16 +++++++++ website/docs/comms.md | 5 +++ website/docs/format.md | 36 +++++++++++++++++++ website/docs/index.md | 31 ++++++++++++++++ website/docs/policies.md | 18 ++++++++++ website/docs/projects/details.md | 52 +++++++++++++++++++++++++++ website/docs/projects/final.md | 3 ++ website/docs/resources/readings.md | 57 ++++++++++++++++++++++++++++++ website/docs/resources/related.md | 5 +++ website/docs/resources/software.md | 15 ++++++++ website/docs/schedule/deadlines.md | 14 ++++++++ website/docs/schedule/lectures.md | 37 +++++++++++++++++++ website/docs/syllabus.md | 35 ++++++++++++++++++ website/mkdocs.yml | 32 +++++++++++++++++ 14 files changed, 356 insertions(+) create mode 100644 website/Makefile create mode 100644 website/docs/comms.md create mode 100644 website/docs/format.md create mode 100644 website/docs/index.md create mode 100644 website/docs/policies.md create mode 100644 website/docs/projects/details.md create mode 100644 website/docs/projects/final.md create mode 100644 website/docs/resources/readings.md create mode 100644 website/docs/resources/related.md create mode 100644 website/docs/resources/software.md create mode 100644 website/docs/schedule/deadlines.md create mode 100644 website/docs/schedule/lectures.md create mode 100644 website/docs/syllabus.md create mode 100644 website/mkdocs.yml diff --git a/website/Makefile b/website/Makefile new file mode 100644 index 0000000..81db524 --- /dev/null +++ b/website/Makefile @@ -0,0 +1,16 @@ +DEPLOY=jackknife:/home/justhsu/html/staging/cs839/ + +build: + mkdocs build + +preview: + mkdocs serve + +install: + pip install mkdocs mkdocs-material pymdown-extensions + +deploy: + make build + find . -type d -exec chmod a+rx {} \; + find . -type f -exec chmod a+r {} \; + rsync -avzp --delete -e ssh ./site/ $(DEPLOY) diff --git a/website/docs/comms.md b/website/docs/comms.md new file mode 100644 index 0000000..3b282c1 --- /dev/null +++ b/website/docs/comms.md @@ -0,0 +1,5 @@ +# Communications + +## Mailing list + +## Course staff diff --git a/website/docs/format.md b/website/docs/format.md new file mode 100644 index 0000000..f7accee --- /dev/null +++ b/website/docs/format.md @@ -0,0 +1,36 @@ +# Course Format + +Lectures will be loosely organized around four modules: differential privacy, +cryptography, language-based security, and adversarial machine learning. The +instructor will give most of the lectures for the first module, on differential +privacy. For each of the remaining modules, the instructor will give the first +lecture introducing the topic and background material. Then, each student will +lead one lecture, presenting a paper and guiding the discussion. + +The topics we will be reading and thinking about are from the recent research +literature---polished enough to be peer-reviewed and published, but not always +completely refined. Given that this is a graduate course, not all lectures are +set in stone and there is some flexibility in the choice of topics. Students +with interested in specific topics not covered in the syllabus should feel free +to contact the instructor. + +## Readings and Homework + +The bulk of this course consists of reading research papers. Before every +lecture presenting a paper, students are expected to read the paper closely and +understand its significance, including (a) the problem addressed by the paper, +(b) the main contributions of the paper, and (c) how the authors solve the +problem in some technical detail. + +The instructor will also send out 2-3 questions before every paper presentation. +Students will submit brief answers---no more than 1-2 paragraphs per +question---before the lecture. These questions are meant to make sure you have +understood the paper at a high level and prepare for the discussion in class, +they are not meant to be very difficult or time-consuming. + +## Course Project + +Students will work individually or in pairs on a topic of their choice, +producing a conference-style write-up and presenting their project at the end of +the semester. This project should have the potential to turn into a research +paper or survey. Details can be found [here](projects/details.md). diff --git a/website/docs/index.md b/website/docs/index.md new file mode 100644 index 0000000..f069947 --- /dev/null +++ b/website/docs/index.md @@ -0,0 +1,31 @@ +# Welcome to CS 839! + +This is a graduate-level course covering advanced topics in security and +privacy. We will focus on four areas at the current research frontier: (1) +differential privacy, (2) applied cryptography, (3) language-based security, and +(4) adversarial machine learning. Students will read, present, and discuss +papers from the research literature (i.e., conference and journal papers), and +complete a final project. + +## Logistics +- **Course**: CS 839, Fall 2018 +- **Location**: TBD +- **Time**: Mondays and Wednesdays, 4:00-5:15 + +## Course Staff + +- **Instructor**: Justin Hsu + - **Email**: email@justinh.su + - **Location**: TBD + - **Office hours**: TBD +- **TA**: TBD + +## FAQ + +- Who should take this course? + +- What are the pre-requisites of this course? + +- How flexible are the topics? + +- Will this course be more theoretical or applied? diff --git a/website/docs/policies.md b/website/docs/policies.md new file mode 100644 index 0000000..5a836ea --- /dev/null +++ b/website/docs/policies.md @@ -0,0 +1,18 @@ +# Course Policies + +Paper discussions are a core component of this course. Students are expected to +read papers before lecture, attend lectures, and participate in discussions. + +## Grading and Evaluation + +Grades will be assigned as follows: + +- **Discussions: 15%** (Pre-lecture questions and class participation) +- **Paper presentation: 25%** +- **Final project: 60%** (First and second milestones, and final writeup) + +## Academic Integrity + +Pre-lecture questions should be done individually. The final project may be done +individually or in groups of two students. Collaboration projects with people +outside the class may be allowed, but must be approved by the instructor. diff --git a/website/docs/projects/details.md b/website/docs/projects/details.md new file mode 100644 index 0000000..de88cec --- /dev/null +++ b/website/docs/projects/details.md @@ -0,0 +1,52 @@ +# Course Project + +This course covers a wide range of topics in security and privacy. The goal of +the course project is to dive more deeply into a particular topic individually +or in groups of two. This project could take different forms: + +- **Theoretical**: Extend a technique, explore a new application, or develop + some other kind of conceptual contribution. +- **Experience report**: Experiment with an existing implementation, trying out + different examples and describing the overall experience. Or make a new + implementation. +- **Literature survey**: Select a couple (3-5) of related papers in a recent + research area. Summarize the significance, then compare and contrast. +- **Other**: Feel free to propose other kinds of projects. + +A good project will be the start of a potentially publishable result. + +## Deliverables + +In order to keep projects on track, each group will turn in two short (**1-2 +pages**) milestone reports along the way. At one-third of the way through, you +should have settled on a project goal and made some exploratory steps. + +- **Milestone 1**. Describe the project goal concretely, summarize what + preliminary things have been tried, and plan out which directions to explore + next. + +At two-thirds of the way through, the project should be progressing and it +should be clear what remains to be done. + +- **Milestone 2**. Clarify the project goal if it has changed, summarize current + progress, and plan out how to finish remaining items. + +Besides the milestones, the main deliverable of the project will be a final +report, around **15-20 pages** in length. Reports should be written in a +research paper style, covering the following broad areas in some order: + +- **Introduce** the problem and the motivation. +- **Review** background and preliminary material. +- **Develop** the main technical core of the project. +- **Survey** related work. +- **Summarize** and evaluate the results. + +At the end of the course, each group will present their project in class. + +## Deadlines + +The most immediate task is to form groups (if desired) and select a preliminary +project topic. Discuss with the instructor or send an email with the project +topic and group members (less ideal) by **???**. + +Deadlines for the deliverables are [here](../schedule/deadlines.md). diff --git a/website/docs/projects/final.md b/website/docs/projects/final.md new file mode 100644 index 0000000..0b0ed81 --- /dev/null +++ b/website/docs/projects/final.md @@ -0,0 +1,3 @@ +# Final Projects + +To come! diff --git a/website/docs/resources/readings.md b/website/docs/resources/readings.md new file mode 100644 index 0000000..3d4a427 --- /dev/null +++ b/website/docs/resources/readings.md @@ -0,0 +1,57 @@ +# Paper Suggestions + +### Differential Privacy +- Frank McSherry and Kunal Talwar. *Mechanism Design via Differential Privacy*. FOCS 2007. +- Cynthia Dwork, Moni Naor, Toniann Pitassi, and Guy Rothblum. *Differential + Privacy under Continual Observation*. STOC 2010. +- T.-H. Hubert Chan, Elaine Shi, and Dawn Song. *Private and Continual Release + of Statistics*. ICALP 2010. +- Moritz Hardt, Katrina Ligett, and Frank McSherry. *A Simple and Practical + Algorithm for Differentially Private Data Release*. NIPS 2012. +- Daniel Kifer and Ashwin Machanavajjhala. *A Rigorous and Customizable + Framework for Privacy*. PODS 2012. + +### Applied Cryptography +- Benjamin Braun, Ariel J. Feldman Zuocheng Ren, Srinath Setty, Andrew J. + Blumberg, and Michael Walfish. *Verifying Computations with State*. SOSP 2013. +- Aseem Rastogi, Matthew A. Hammer and Michael Hicks. *Wysteria: A Programming + Language for Generic, Mixed-Mode Multiparty Computations*. S&P 2014. +- Shai Halevi and Victor Shoup. *Algorithms in HElib*. CRYPTO 2014. +- Shai Halevi and Victor Shoup. *Bootstrapping for HElib*. EUROCRYPT 2015. +- Léo Ducas and Daniele Micciancio. *FHEW: Bootstrapping Homomorphic Encryption + in Less than a Second*. EUROCRYPT 2015. +- Peter Kairouz, Sewoong Oh, and Pramod Viswanath. *Secure Multi-party + Differential Privacy*. NIPS 2015. +- Arjun Narayan, Ariel Feldman, Antonis Papadimitriou, Andreas Haeberlen, + *Verifiable Differential Privacy*. EUROSYS 2015. + +### Language-Based Security +- Frank McSherry. *Privacy Integrated Queries*. SIGMOD 2009. +- Jason Reed and Benjamin C. Pierce: *Distance Makes the Types Grow Stronger: A + Calculus for Differential Privacy*. ICFP 2010. +- Daniel B. Griffin, Amit Levy, Deian Stefan, David Terei, David Mazières, John + C.Mitchell, and Alejandro Russo. *Hails: Protecting Data Privacy in Untrusted + Web Applications*. OSDI 2012. +- Andrew Ferraiuolo, Rui Xu, Danfeng Zhang, Andrew C. Myers, G. Edward Suh. + *Verification of a Practical Hardware Security Architecture Through Static + Information Flow Analysis*. ASPLOS 2017. +- Danfeng Zhang, Aslan Askarov, and Andrew C. Myers. *Language-Based Control and + Mitigation of Timing Channels*. PLDI 2012. +- Samee Zahur and David Evans. *Obliv-C: A Language for Extensible + Data-Oblivious Computation*. 2015. +- Andrew Miller, Michael Hicks, Jonathan Katz, and Elaine Shi. *Authenticated + Data Structures, Generically*. POPL 2014. +- Martín Abadi and Andrew D. Gordon. *A Calculus for Cryptographic Protocols: + The Spi Calculus*. Information and Computation, 1999. + +### Adversarial Machine Learning + +# Supplemental Material +- Cynthia Dwork and Aaron Roth. *Algorithmic Foundations of Data Privacy*. +- Gilles Barthe, Marco Gaboardi, Justin Hsu, and Benjamin C. Pierce. *Programming + Language Techniques for Differential Privacy*. +- Michael Walfish and Andrew J. Blumberg. *Verifying Computations without + Reexecuting Them*. +- Véronique Cortier, Steve Kremer, and Bogdan Warinschi. *A Survey of Symbolic + Methods in Computational Analysis of Cryptographic Systems*. +- Dan Boneh and Victor Shoup. *A Graduate Course in Applied Cryptography*. diff --git a/website/docs/resources/related.md b/website/docs/resources/related.md new file mode 100644 index 0000000..4de361b --- /dev/null +++ b/website/docs/resources/related.md @@ -0,0 +1,5 @@ +# Previous Courses +- CSE 291: [Language-Based Security](https://cseweb.ucsd.edu/~dstefan/cse291-winter18/) (Deian Stefan, UCSD) +- CSE 711: [Topics in Differential Privacy](https://www.acsu.buffalo.edu/~gaboardi/teaching/CSE711-spring16.html) (Marco Gaboardi, University at Buffalo) +- CS 800: [The Algorithmic Foundations of Data Privacy](https://www.cis.upenn.edu/~aaroth/courses/privacyF11.html) (Aaron Roth, UPenn) +- CS 229r: [Mathematical Approaches to Data Privacy](http://people.seas.harvard.edu/~salil/diffprivcourse/spring13/) (Salil Vadhan, Harvard) diff --git a/website/docs/resources/software.md b/website/docs/resources/software.md new file mode 100644 index 0000000..230197b --- /dev/null +++ b/website/docs/resources/software.md @@ -0,0 +1,15 @@ +# Software + +## Differential Privacy +- [DFuzz](https://github.com/ejgallego/dfuzz) +- [HOARe2](https://github.com/ejgallego/HOARe2) + +## Cryptography +- [HELib](https://github.com/shaih/HElib) +- [Obliv-C](https://oblivc.org/) + +## Language-Based Security +- [Jif](https://www.cs.cornell.edu/jif/) +- [FlowCaml](https://opam.ocaml.org/packages/flowcaml/flowcaml.1.07/) + +## Adversarial Machine Learning diff --git a/website/docs/schedule/deadlines.md b/website/docs/schedule/deadlines.md new file mode 100644 index 0000000..cc66089 --- /dev/null +++ b/website/docs/schedule/deadlines.md @@ -0,0 +1,14 @@ +# Deadlines + +Before class on the dates indicated. + +## Course Deadlines +- **Check in with instructor**: TBD +- **Sign up to present paper**: TBD +- **Check-up questions**: Before each paper presentation. + +## Project Deadlines +- **Choose topic**: TBD +- **Milestone 1**: TBD +- **Milestone 2**: TBD +- **Final writeup**: TBD diff --git a/website/docs/schedule/lectures.md b/website/docs/schedule/lectures.md new file mode 100644 index 0000000..6d88a99 --- /dev/null +++ b/website/docs/schedule/lectures.md @@ -0,0 +1,37 @@ +# Lecture Schedule (Tentative) + + Date | Topic | Presenter +:----:|-------|:---------: +9/5 | Course welcome | JH + |
**Differential Privacy**
| +9/10 | Definition and Basic Mechanisms | JH +9/12 | What does Differential Privacy mean? | JH +9/17 | Composition and closure properties | JH +9/19 | Exponential mechanism
**Paper:** | JH +9/24 | Streaming privacy: counters
**Paper:** | JH +9/26 | Advanced mechanisms: Report-noisy-max | JH +10/1 | Advanced mechanisms: Sparse Vector | JH +10/3 | Advanced mechanisms: Private multiplicative weights
**Paper:** | JH +10/8 | Local differential privacy (theory) | JH +10/10 | Local differential privacy (practice)
**Paper:** | JH + |
**Cryptographic Techniques**
| +10/15 | Crypto: overview and basics | JH +10/17 | Zero-knowledge proofs
**Paper:** | +10/22 | Oblivious transfer and SMC
**Paper:** | +10/24 | Oblivious transfer and SMC
**Paper:** | +10/29 | Fully homomorphic encryption and verifiable computing
**Paper:** | +10/31 | Fully homomorphic encryption and verifiable computing
**Paper:** | + |
**Language-Based Security**
| +11/5 | LangSec: overview and basics | JH +11/7 | Secure Information Flow
**Paper:** | +11/12 | Secure Information Flow
**Paper:** | +11/14 | Languages for privacy
**Paper:** | +11/19 | Languages for privacy
**Paper:** | +11/21 | Symbolic cryptography
**Paper:** | + |
**Adversarial Machine Learning**
| +11/26 | AML: overview and basics | JH +11/28 | Adversarial examples
**Paper:** | +12/3 | Adversarial examples
**Paper:** | +12/5 | Training-time attacks
**Paper:** | +12/10 | Training-time attacks
**Paper:** | +12/12 | Model-theft attacks
**Paper:** | diff --git a/website/docs/syllabus.md b/website/docs/syllabus.md new file mode 100644 index 0000000..93dae54 --- /dev/null +++ b/website/docs/syllabus.md @@ -0,0 +1,35 @@ +# Syllabus + +Security and Privacy are rapidly emerging as critical research areas. +Vulnerabilities in software are found and exploited almost everyday +and with increasingly serious consequences (e.g., the Equifax massive data +breach). Moreover, our private data is increasingly at risk and thus +techniques that enhance privacy of sensitive data (known as +privacy-enhancing technologies (PETS)) are becoming increasingly +important. Also, machine-learning (ML) is increasingly being utilized to +make decisions in critical sectors (e.g., health care, automation, and +finance). However, in deploying these algorithms presence of malicious +adversaries is generally ignored. + +This advanced topics class will tackle techniques related to all these +themes. We will cover the following broad topics. + +### Differential Privacy +- Basic properties and examples +- Advanced mechanisms +- Local differential privacy + +### Cryptographic Techniques +- Zero-knowledge proofs +- Secure multi-party computation +- Verifiable computation + +### Language-Based Security +- Secure information flow +- Differential privacy +- Symbolic cryptography + +### Adversarial Machine Learning +- Training-time attacks +- Test-time attacks +- Model-theft attacks diff --git a/website/mkdocs.yml b/website/mkdocs.yml new file mode 100644 index 0000000..c3638c2 --- /dev/null +++ b/website/mkdocs.yml @@ -0,0 +1,32 @@ +site_name: 'CS 839: Topics in Security and Privacy (Fall 2018)' +site_url: '' +repo_url: 'https://git.justinh.su/justhsu/cs839' +site_description: 'Course webpage for CS 839: Topics in Security and Privacy (Fall 2018)' +site_author: 'Justin Hsu' + +theme: + name: 'material' + language: 'en' + feature: + tabs: 'true' + palette: + primary: indigo + accent: indigo + +pages: + - Home: + - About: 'index.md' + - Syllabus: 'syllabus.md' + - Course Format: 'format.md' + - Communication: 'comms.md' + - Policies: 'policies.md' + - Schedule: + - Lectures: 'schedule/lectures.md' + - Deadlines: 'schedule/deadlines.md' + - Resources: + - Papers: 'resources/readings.md' + - Software: 'resources/software.md' + - Other Courses: 'resources/related.md' + - Project: + - Details: 'projects/details.md' + - Gallery: 'projects/final.md'