/Apple-Differential-Privacy

Apple Differential Privacy Implementation

Primary LanguageJupyter Notebook

Local Differential Priacy

An implementation of various local differential privacy (LDP) techniques mainly focusing on algorithms outlined by Apple.

The project aims to provide implementations of the most recent and practical algorithms for LDP. All algorithms will be implemented in Python 3. The project also serves as a way to compare and analyse these techniques in both performance and implementation by providing various simulations and benchmarks.

The repo aims to implement the following:

A good introduction and brief survey of recent LDP algorithms is presented here.

⚠️ This repo currently is very much WIP and much of the code is undocumented ⚠️

TODO

  • Apple: Implement Count-Mean-Sketch (CMS) and Hadamard Count-Mean-Sketch
  • Apple: Implement the Sequence Fragment Puzzle (SFP) Algorithm
  • Apple: Basic simulations for CMS, HCMS, SFP
  • Google: Port over RAPPOR client-side from the RAPPOR repo (based on code here)
  • Google: Implement RAPPOR's server-side algorithm (based on code here)
  • Google: Implement the RAPPOR extension
  • Google: Simulations for RAPPOR + extensions
  • BNST: Implement TreeHistogram (based on code here)
  • BNST: Implement the Simple Bitstogram Protocol (ExplicitHist + SuccinctHist)
  • BNST: Implement the Full Bitstogram Protocol
  • BNST: Simulations for TreeHistogram and Bitstogram
  • Misc: NYC Taxicab Simulation
  • Misc: NLTK Simulation
  • Misc: Documentation !!!
  • Misc: Support running Heavy Hitter algos with different freq oracles
  • Misc: Finishing the README

Resources

  1. Algorithmic Foundations of Differential Privacy
  2. Local Differential Privacy: a tutorial
  3. Learning with Privacy at Scale by Apple
  4. RAPPOR repo
  5. RAPPOR paper
  6. Extensions to RAPPOR for heavy-hitters
  7. BNST Paper: Practical Locally Private Heavy Hitters