The code of the case studies presented in our paper “Comparative Analysis of Leakage Tools on Scalable Case Studies” is in this archive. Below are some explanations on how to execute the code from this archive.
Our examples in QUAIL can be run from the command line, by unziping the QUAIL
package, going into the unzipped directory and typing:
./quail
LeakWatch is available here. To compile and run our java files (here we take SinglePreference as an example):
- Copy leakwatch jar (leakwatch-0.5.jar in our case) to the “Voting” directory
- Compile the sources
javac -cp leakwatch-0.5.jar:. SinglePreference.java
- Run the analysis (2 voters 4 candidates)
java -jar leakwatch-0.5.jar SinglePreference 2 4
We also tried to run these case studies with moped-Qleak, available here, once compiled, the tool can be used by invoking it with the -shannon option.
./mql -shannon single_preference.rem
Smart Grid
Two variants are presented in the paper:
- the secret is the occupancy of a single house.
QUAIL: guess_presence_single_house.quail
LeakWatch: GuessPresenceSingleHouse.java
Moped-Qleak: guess_presence_single_house.rem
- the secret is the occupancy of all houses.
QUAIL: guess_presence_all.quail
LeakWatch: GuessPresenceAll.java
Moped-Qleak: guess_presence_all.rem
For the LeakWatch examples, some parameters have to provided:
- the number of houses
- the size of the targeted house (S,M or L) (only for GuessPresenceSingleHouse)
- the case (case A/1 or case B/2 [see paper])
Examples:
java -jar leakwatch-0.5.jar GuessPresenceSingleHouse 3 M case2 java -jar leakwatch-0.5.jar GuessPresenceAll 3 case1
For Quail, the parameters can be changed by editing the files or using command line options.
The algorithm implemented in QUAIL 1.0 can be called with the –fullmc option.
Examples:
./quail --const:N:=6 guess_presence_all.quail ./quail --fullmc guess_presence_single_house.quail
For Moped-Qleak, the parameters have to be changed in the source file.
Examples:
./mql -shannon guess_presence_all.rem ./mql -shanon guess_presence_single_house.rem
Voting
Two variants are presented in the paper:
- Single Preference
QUAIL: single_preference.quail
LeakWatch: SinglePreference.java
Moped-Qleak: single_preference.rem - Preference Ranking
QUAIL: preference_ranking.quail
LeakWatch: PreferenceRanking.java
Moped-Qleak: NOT WORKING preference_ranking.rem
The N and C constants contain respectively the number of voters and the number of candidates. These can be changed in the command line, for instance 2 voters and 4 candidates is obtained by:
./quail --const:N:=2 --const:C:=4 single_preference.quail
or
java -jar leakwatch-0.5.jar SinglePreference 2 4
For Moped-Qleak, the values have to be changed in the source code. The version provided for Preference Ranking does not raise any syntax error but fails to terminate. Any solution to make it work will be welcomed by the authors of the paper.