Skip to content
/ TPL Public

Quantifying Differential Privacy under Temporal Correlations

Notifications You must be signed in to change notification settings

yangcao888/TPL

Repository files navigation

Download the source code

https://github.com/brahms2013/TPL/releases

Papers

Quantifying Differential Privacy under Temporal Correlations (ICDE17) https://ieeexplore.ieee.org/document/7930028/

https://arxiv.org/abs/1610.07543

@inproceedings{cao2017quantifying,
  title={Quantifying differential privacy under temporal correlations},
  author={Cao, Yang and Yoshikawa, Masatoshi and Xiao, Yonghui and Xiong, Li},
  booktitle={Data Engineering (ICDE), 2017 IEEE 33rd International Conference on},
  pages={821--832},
  year={2017},
  organization={IEEE}
}

Quantifying Differential Privacy in Continuous Data Release under Temporal Correlations (Invited for TKDE special issue on "Best of ICDE 2017") https://ieeexplore.ieee.org/document/8333800

https://arxiv.org/abs/1711.11436

@article{cao2018quantifying,
  title={Quantifying Differential Privacy in Continuous Data Release under Temporal Correlations},
  author={Cao, Yang and Yoshikawa, Masatoshi and Xiao, Yonghui and Xiong, Li},
  journal={IEEE Transactions on Knowledge and Data Engineering},
  year={2018},
  publisher={IEEE}
}

ConTPL: Controlling Temporal Privacy Leakage in Differentially Private Continuous Data Release (VLDB18 demo) https://dl.acm.org/citation.cfm?id=3275604

http://www.vldb.org/pvldb/vol11/p2090-cao.pdf

@article{cao2018ConTPL,
  title={ConTPL: Controlling Temporal Privacy Leakage in Differentially Private Continuous Data Release},
  author={Yang Cao, Li Xiong, Masatoshi Yoshikawa, Yonghui Xiao, Si Zhang},
  journal={PVLDB 11(12)},
  year={2018},
  pages={2090--2093}
}

Licensed under Apache License, Version 2.0.

Environment

  • Matlab2017b.
  • CPLEX (optional)
  • Gurobi (optional)

Note: the code is tested on OSX 10.13.

Function calcPLbyLP_cplex needs IBM CPLEX. Function calcPLbyLP_gu needs Gurobi. You can find (free) academics version of CPLEX or Gruobi. Alternatively, you can use Matlab linear program solver rather than CPLEX or Gurobi by invoking calcPLbyLP(TM, a, 'matlab'). Tip: you can take a sleep if using Matlab linear program solver for n>30 :P

Our proposed quantification algorithms calcPLbyThm, calcPLbyPreComp and calcPLbyFunc are much faster.

tips for downloading and installing CPLEX:

  1. Download CPLEX [academic version] 12.7 (https://developer.ibm.com/docloud/blog/2016/11/24/cos-12-7-ai/) (I use this version)   or free trial version (the free trial period is 90 days). Here are the descriptions on the differences between these versions.
  2. Install CPLEX.
  3. Setting up CPLEX for Matlab, refer to here.

if you find function "VChooseK" doesn't work

Function "VChooseK" (VChooseK.c, VChooseK.m) is credited to this project: https://www.mathworks.com/matlabcentral/fileexchange/26190-vchoosek

Since I ran the code on OSX 10.13, I compiled it to "VChooseK.mexmaci64". If you are using Windows or other OS, you may want to re-compile and replace it.

Overview

alt overview

Test scripts

  • testPlotLFunc.m plotting an example of L(a) function
  • testPlotBudgetAlloc.m plotting two examples of budget allocation schemes and the corresponding BPL/FPL/TPL.
  • testCalcBPL.m running calcPLbyLP, calcPLbyThm, calcPLbyPreComp and calcPLbyFunc, and outputing the results and runtime. Note that, the results are not BPL/FPL but L(a).
  • testFindSup.m running findSup and comparing the result with step-by-step calculation.

Main Functions

budget allocation schemes

  • allocEspByQuantify Allocating privacy budget by quantification.
  • allocEspByUpperBound Allocating privacy budget by upper bound.

privacy leakage quantification

  • calcPLbyLP Calculating L(a) by Linear programming. input method can be set as 'gurobi' or 'cplex', or 'matlab'.
  • calcPLbyThm Calculating L(a) by Theorem 4.
  • calcPLbyPreComp Calculating L(a) by precomputation. inputs EspMatrix, qM and dM can be obtained by preCompQDMatrix.
  • calcPLbyFunc Calculating L(a) by binary search. inputs aArrMax, qArrMax and dArrMax can be obtained by genLFunc.

supremum of BPL/FPL

  • findSup Calculating the suppremum of a DP mechanism M^t whose privacy budget is constant at each time t. inputs qM, dM, QDplusInd can be obtained by preCompQDMatrix.

precomputation

  • preCompQDMatrix Precomputing EspMatrix, qM, dM and QDplusInd.
  • genLFunc Precomputing L(a) function, i.e., aArrMax, qArrMax and dArrMax.

Contact

Yang Cao

[email protected]

[email protected]

About

Quantifying Differential Privacy under Temporal Correlations

Resources

Stars

Watchers

Forks

Packages

No packages published