Case Studies

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):

  1. Copy leakwatch jar (leakwatch-0.5.jar in our case) to the “Voting” directory
  2. Compile the sources
     javac -cp leakwatch-0.5.jar:. SinglePreference.java
  3. 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.