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:
- Apple's LDP: Paper
- Googles's RAPPOR: Paper, Repo
- Extensions to Google's RAPPOR for heavy-hitters: Paper
- Implement two further LDP algorithms outlined in "Practical Locally Private Heavy Hitters"
A good introduction and brief survey of recent LDP algorithms is presented here.
- 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