This repository contains the source code for the paper A Linear Reconstruction Approach for Attribute Inference Attacks against Synthetic Data by M.S.M.S. Annamalai, A. Gadotti, L. Rocher, presented August 2024 at USENIX Security 2024 link.
Dependencies are managed by mamba/conda
. The required dependencies can be installed using the command [conda/mamba] env create -f env.yml
and then run [conda/mamba] activate recon_synth
.
A license to Gurobi is also necessary to run the code, which for academics can be gotten for free here. The license can be subsequently installed using the command grbgetkey <KEY>
.
The entire experiment pipeline to generate the results we used for the paper can be run using the following series of commands. Please note that you can change the REPS
, N_PROCS
, and DATA_DIR
variables in these scripts to change the number of repetitions of the privacy game, number of processors to use during parallelization, and the output directory of the results respectively.
$ cd priv_game
$ scripts/prep_exps.sh
$ scripts/run_exps.sh
$ scripts/prep_extra_exps.sh
$ scripts/run_extra_exps.sh
$ scripts/time_attack.sh
$ scripts/log_memory.sh
After running all the experiments, results can be visualized using the plot_results.ipynb
notebook.
Here is a table of available SDG models and their descriptions.
SDG Model | Description |
---|---|
NonPrivate | Sample directly from target dataset with replacement |
CTGAN | Generative adversarial network from MIT SDV library |
IndHist | Independently sample attributes from 1D histogram |
BayNet_3parents | Bayesian network (with hyperparameter: 3 parents) |
PrivBayes_3parents_1eps | PrivBayes model (with hyperparameters: 3 parents, |
RAP_2Kiters | Relaxed Adaptive Projection algorithm (with hyperparameter: 2000 iterations) |
RAP_2Kiters_1eps | RAP algorithm (with hyperparameters: 2000 iterations, |
We provide 2 datasets in this repo acs
and fire
.
Code in the generative_models/rap_src
folder is cloned and slightly modified (to suit our import system) from dp-query-release.