Table 2: Execution times and bandwidth consumption.
SNPs Offline Online Bandwidth
PAPEETE (Danezis and De Cristofaro, 2014) PAPEETE (Danezis and De Cristofaro, 2014)
1,000 3.88s 3.85ms 0.83s 0.82s 64.51KB
10,000 37.77s 37.40s 7.04s 7.03s 645.12KB
100,000 6.27m 6.22m 1.31m 1.31m 6.3MB
1,000,000 62.77m 62.21m 18.89m 18.88m 63MB
parts of which the protocol is composed (offline au-
thorization and online test). Then, we give some de-
tail about the setup used in our experiments. Finally,
we show the results of our tests and comparison.
Offline Operations. We start by analyzing the com-
plexity of the authorization phase (Fig. 2), which is
linear in the number of SNPs considered. CA needs
to perform n exponentiations to authorize n weights
(step (3)), while T performs O(n) exponentiations to
encrypt the authorized weights (5). Note that T can
reuse the same values (ct
i
) for multiple tests. Commu-
nication complexity is also linear, as in steps (2) and
(4), O(n) values are transferred between T and CA. Fi-
nally, we observe that all operations can be pipelined,
which means that, unless T and CA are connected via
a very slow link, authorizing the test (3) does not in-
troduce a significant overhead on top of the weight
encryption (5).
Online Test. Next, we analyze the complexity of the
online test (Fig. 3). Both computation and communi-
cation complexities are linear in the number of SNPs,
and the steps involving CA (3)–(5) only requires the
transmission of a constant number of ciphertexts and
the computation of a constant number of exponentia-
tions. Once again steps (1)–(2) can be pipelined.
Experimental Setting. We have implemented our
protocols and performed 1,000 runs to evaluate real-
world running times and bandwidth consumption.
Both T and CA run on an Apple MacBook Pro (OSX
10.11) equipped with an Intel Core i5 2.4 GHz proces-
sor and 8GB of RAM memory, while U on a Google
Nexus 5 (Android 6.0.1), with a Qualcomm Snap-
dragon 800 2.3 GHz CPU and 2GB of RAM memory,
all connected over a WiFi network (40Mbps) using
TCP sockets. Our code base, available upon request,
is written in Java, using the Spongy Castle crypto-
graphic library for Android (Spongy Castle, 2012)
and the Bouncy Castle library for Mac (The Legion
of the Bouncy Castle, 2000).
1
Experimental Results. To speed up operations, we
have used the following encoding in step (2) in the
1
Somewhat unexpectedly, we find that, if we encode el-
liptic curve points in byte arrays before transferring them,
we get a significant performance slow down. Thus, we en-
code and send each coordinate of the points individually.
online test protocol (Fig. 3): if SNP
i
= 0, we jump to
the next value, while if SNP
i
= 1, we execute the two
computations as described; otherwise (SNP
i
= 2), we
sum the ciphertext ct
i
twice. In Table 2, we report the
running times as well as bandwidth consumption in-
curred by the PAPEETE protocol, and compare them
against prior work that does not support authorization.
More specifically, we have re-implemented and run
the protocol in (Danezis and De Cristofaro, 2014) us-
ing the same experimental settings discussed above.
Note that (Danezis and De Cristofaro, 2014) also has
an “offline” step where weights can be pre-encrypted.
We vary the number of SNPs considered, assuming
that, on average, 20% of them is non-zero, as advised
by colleagues in UCL’s Genetics Department.
We note that in all cases, complexities grow linear
in the number of SNPs. Above few hundred thousand
SNPs, we also observe a small “penalty” on the mo-
bile device that is introduced by Android’s garbage
collector, which is executed more often, thus occupy-
ing a non-negligible CPU time. With 1 million SNPs,
the time required to authorize and encrypt the weights
is approximately 1 hour, and anyway this operation
needs to be performed only once. The same values
can be used to run any number of tests on user’s SNPs,
taking only an average time of less than 19 minutes.
As for the bandwidth, with 1 million SNPs, 35MB are
exchanged during the offline and 63MB during the
online parts. We also measure the space required to
store the SNPs on U’s smartphone, and for the autho-
rized and encrypted weights on T’s computer. With 1
million SNPs, we need 418.5KB on the smartphone
and 63MB on the laptop. Overall, our experiments
demonstrate that (1) the overhead incurred by the au-
thorization is negligible, when compared to state of
the art (Danezis and De Cristofaro, 2014) (running
times are only 1% slower), and (2) our protocol is very
efficient and can already be used in the real world.
Finally, we perform another experiment aiming to
evaluate the impact of non-zero SNPs on the user’s
genome. To this end, in Fig. 4, we plot the total
running time for the execution of a test using 10,000
SNPs, varying the percentage of non-zero SNPs from
20 (as in the previous experiments) to 50. We ob-
serve that performance also grows linearly, similarly
to (Danezis and De Cristofaro, 2014), but not to (Ay-
SECRYPT 2018 - International Conference on Security and Cryptography
488