(b
1
,. .. ,b
√
n
), where b
i
= b · e
i
mod m and the e
i
’s
are chosen according to the constraints detailed above
(with the a
i
’s in 2.ii. and 2.iii. selected uniformly
at random), any computationally bounded adversary
can output the correct m only with negligible proba-
bility. Indicators for the hardness of this assumption
(called Hidden Modular Group Order Assumption),
i.e., how much information about the group order is
leaked by the queries, are presented in the original
paper (Trostle and Parrish, 2010), along with a reduc-
tion from the PIR protocol to this assumption. For
our improved scheme, it can easily be verified that
√
n > ln(n) ·n
1/ln(n)
for n ≥ 213. As databases are
generally much larger than 213 elements, we can base
security on the security of the original scheme, since
we will be sending less query elements and thus leak-
ing at most as much data as the original scheme.
3.2 The Path-ORAM Scheme
The second solution we implemented is the Path-
ORAM scheme from (Stefanov et al., 2013) with
non-recursive position map storage. We describe the
scheme with some parameters as we implemented
them instead of the generic version:
Database Structure: The database is held in a binary
tree of height L = dlog
2
(n)e with 2
L
leaves. Each
leaf (called a “bucket”) holds up to 5 database en-
tries (and is filled with dummy entries if it contains
less). There are far more buckets than database el-
ements. The bucket is encrypted by the user with
AES in CBC mode, where each database entry con-
sists of 1 or 2 AES-Blocks (128 bits each) depend-
ing on the chosen parameter setting (see Section 4).
Thus, each bucket contains 5 or 10 AES Blocks plus
the IV, so 6 or 11 blocks in total. Also, the user main-
tains a local stash S (which acts as a temporary stor-
age space) and a lookup table (called “position map”)
mapping database blocks to the leaves of the binary
tree. We assume that the database is already initial-
ized, as setup is rather tedious and must only be done
once before the first query is made, making it irrele-
vant for performance comparisons.
Queries: To retrieve an entry, the user looks up what
tree leaf the data block is mapped to in the position
map and reads the entire path from root to leaf into the
local stash S (which may contain some elements from
previous queries), as the entry will be in some bucket
on this path (or in the stash). The entry is mapped to a
new leaf randomly and the data is replaced in case of
a write operation. Then, all elements in the stash are
reencrypted and written to the server in a bottom-up
manner: Each entry in the stash is placed in a bucket
on the path to the (old) leaf as far away from the root
as possible, guaranteeing that the maximum amount
of blocks can be placed into the tree. The bucket is
filled up with dummy blocks and encrypted with AES
in CBC-mode with a random IV. Sometimes, some
elements from the stash can’t be placed into the tree,
these remain in the client stash and are placed into
a bucket in a future query. If too many of these el-
ements accumulate and the stash overflows, we say
that the ORAM has failed. We chose a stash size of
220 blocks.
Security: We implemented the scheme without
changing it, so the original security analysis holds.
4 PERFORMANCE
We now present the performance of our two chosen
schemes. Times were measured on an Intel Core i5-
4570 CPU with 3.20GHz and constitute average val-
ues, and the number of database entries was derived
from our use case (400.000 − 800.000 with some
smaller numbers for scale). The entries are random
numbers of lengths 256 (resp. 128) bits to simulate
the IMEIs and (or) IMSIs. The AES implementa-
tion in the ORAM scheme was wolfcrypt. Regard-
ing memory
1
for our use case, the Trapdoor Group
scheme requires a group order m of at least 3756 bits.
This implies a server memory of about 25.6MB for
the database, and about 1.317GB for storing interme-
diate results, so roughly 1.345GB in total. The mem-
ory requirement on the user side is only about 34kB.
In the ORAM-scheme, user memory is about 2.1MB,
whereas server memory strongly depends on the num-
ber of entries and got so large that we could not supply
data for 800.000 entries because our allotted memory
limit was exceeded.
For the more traditional PIR metrics, we split the
performance into three main components: Commu-
nication (Figure 1a), user computational effort (1b)
and server computational effort (1c) and plot the ef-
fort for different numbers of database entries. In each
diagram, the dotted plots represent entries of length
256 bits, and the solid plots are entries of length
128 bits. The green plots always correspond to the
ORAM scheme, and the red plots to the Trapdoor-
Group scheme. In the communication figure, red is
the amount of data sent from the user to the server
in the Trapdoor-Group scheme, blue is the amount of
data sent from the server to the user in the Trapdoor-
Group scheme, and green is the amount of data sent
from user to server or vice versa (as these values
are equal) in the ORAM scheme. User computa-
tion encompasses decrypting, reading and encrypting
1
Theoretical results, not actually measured.
SECRYPT 2017 - 14th International Conference on Security and Cryptography
398