Software for AGILE talk on Privacy Preserving Aggregation released

Please find below the source code for my upcoming presentation at the AGILE conference 2015 held in Lissabon for the following publication (The main idea is depicted in the figure.)
architecture

  • [DOI] T. Liebig, “Privacy Preserving Centralized Counting of Moving Objects,” in AGILE 2015, F. Bacao, M. Y. Santos, and M. Painho, Eds., Springer International Publishing, 2015, pp. 91-103.
    [Bibtex] [[PDF] Draft]
    @incollection{liebig15,
    year={2015},
    isbn={978-3-319-16786-2},
    booktitle={AGILE 2015},
    series={Lecture Notes in Geoinformation and Cartography},
    editor={Bacao, Fernando and Santos, Maribel Yasmina and Painho, Marco},
    title={Privacy Preserving Centralized Counting of Moving Objects},
    URL={http://dx.doi.org/10.1007/978-3-319-16787-9_6},
    doi={10.1007/978-3-319-16787-9_6},
    publisher={Springer International Publishing},
    author={Liebig, Thomas},
    pages={91-103},
    }

Download the following R package securecount_1.0.tar.gz and execute in R Console:

# Installation of securecount
install.packages("securecount_1.0.tar.gz", repos = NULL, type="source")
# Loading the package
require("securecount")
# Starting the example
exampleSC()

On start of exampleSC(), you will receive an output similar to the following.

We assume a single cell, with 3 moving objects.
 In every round they transmit their count to a server
which aggregates these values.

Initializing
 .. generating keys
 .. generating shares
 .. generating hashchain
 DONE
Starting Loop

Timestamp : 1
   Client 1 computes:
      message 47
      hash*message 1081
      E(hash*message) 101025
   Client 2 computes:
      message 35
      hash*message 805
      E(hash*message) 394010
   Client 3 computes:
      message 65
      hash*message 1495
      E(hash*message) 316702
   Transmission of encrypted messages to server
   Server computes:
      D(share combine):3381
      D(share combine)*hash^(-1):147
   homomorphytest: 47 + 35 + 65=147=147 is TRUE

Timestamp : 2
   Client 1 computes:
      message 83
      hash*message 1909
      E(hash*message) 40272
   Client 2 computes:
      message 63
      hash*message 1449
      E(hash*message) 277586
   Client 3 computes:
      message 34
      hash*message 782
      E(hash*message) 451529
   Transmission of encrypted messages to server
   Server computes:
      D(share combine):4140
      D(share combine)*hash^(-1):180
   homomorphytest: 83 + 63 + 34=180=180 is TRUE

Timestamp : 3
   Client 1 computes:
      message 63
      hash*message 1449
      E(hash*message) 277586
   Client 2 computes:
      message 1
      hash*message 23
      E(hash*message) 132210
   Client 3 computes:
      message 35
      hash*message 805
      E(hash*message) 394010
   Transmission of encrypted messages to server
   Server computes:
      D(share combine):2277
      D(share combine)*hash^(-1):99
   homomorphytest: 63 + 1 + 35=99=99 is TRUE

Timestamp : 4
   Client 1 computes:
      message 6
      hash*message 138
      E(hash*message) 360438
   Client 2 computes:
      message 62
      hash*message 1426
      E(hash*message) 169093
   Client 3 computes:
      message 77
      hash*message 1771
      E(hash*message) 136368
   Transmission of encrypted messages to server
   Server computes:
      D(share combine):3335
      D(share combine)*hash^(-1):145
   homomorphytest: 6 + 62 + 77=145=145 is TRUE

Timestamp : 5
   Client 1 computes:
      message 5
      hash*message 115
      E(hash*message) 68146
   Client 2 computes:
      message 9
      hash*message 207
      E(hash*message) 425041
   Client 3 computes:
      message 37
      hash*message 851
      E(hash*message) 101102
   Transmission of encrypted messages to server
   Server computes:
      D(share combine):1173
      D(share combine)*hash^(-1):51
   homomorphytest: 5 + 9 + 37=51=51 is TRUE

Timestamp : 6
   Client 1 computes:
      message 66
      hash*message 1518
      E(hash*message) 247325
   Client 2 computes:
      message 30
      hash*message 690
      E(hash*message) 88705
   Client 3 computes:
      message 59
      hash*message 1357
      E(hash*message) 400940
   Transmission of encrypted messages to server
   Server computes:
      D(share combine):3565
      D(share combine)*hash^(-1):155
   homomorphytest: 66 + 30 + 59=155=155 is TRUE

Timestamp : 7
   Client 1 computes:
      message 58
      hash*message 1334
      E(hash*message) 55287
   Client 2 computes:
      message 51
      hash*message 1173
      E(hash*message) 84393
   Client 3 computes:
      message 65
      hash*message 1495
      E(hash*message) 316702
   Transmission of encrypted messages to server
   Server computes:
      D(share combine):4002
      D(share combine)*hash^(-1):174
   homomorphytest: 58 + 51 + 65=174=174 is TRUE

Timestamp : 8
   Client 1 computes:
      message 86
      hash*message 1978
      E(hash*message) 104875
   Client 2 computes:
      message 80
      hash*message 1840
      E(hash*message) 355125
   Client 3 computes:
      message 91
      hash*message 2093
      E(hash*message) 244168
   Transmission of encrypted messages to server
   Server computes:
      D(share combine):5911
      D(share combine)*hash^(-1):257
   homomorphytest: 86 + 80 + 91=257=257 is TRUE

Timestamp : 9
   Client 1 computes:
      message 88
      hash*message 2024
      E(hash*message) 155849
   Client 2 computes:
      message 49
      hash*message 1127
      E(hash*message) 211289
   Client 3 computes:
      message 52
      hash*message 1196
      E(hash*message) 388543
   Transmission of encrypted messages to server
   Server computes:
      D(share combine):4347
      D(share combine)*hash^(-1):189
   homomorphytest: 88 + 49 + 52=189=189 is TRUE

Timestamp : 10
   Client 1 computes:
      message 6
      hash*message 138
      E(hash*message) 360438
   Client 2 computes:
      message 20
      hash*message 460
      E(hash*message) 53208
   Client 3 computes:
      message 54
      hash*message 1242
      E(hash*message) 362440
   Transmission of encrypted messages to server
   Server computes:
      D(share combine):1840
      D(share combine)*hash^(-1):80
   homomorphytest: 6 + 20 + 54=80=80 is TRUE
 DONE