<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Supporting Insertion in Encrypted Multi-Maps with Volume Hiding using a Trusted Execution Environment</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Shunta Ishihara</string-name>
          <email>ishihara@kde.cs.tsukuba.ac.jp</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Chiemi Watanabe</string-name>
          <email>chiemi@a.tsukuba-tech.ac.jp</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Toshiyuki Amagasa</string-name>
          <email>amagasa@cs.tsukuba.ac.jp</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Tsukuba University of Technology</institution>
          ,
          <addr-line>Tsukuba</addr-line>
          ,
          <country country="JP">Japan</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>University of Tsukuba</institution>
          ,
          <addr-line>Tsukuba</addr-line>
          ,
          <country country="JP">Japan</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>There is a new type of threat to encrypted databases, called “volume leakage,” which causes the volume of data associated with some keys in a multi-map to be leaked. To counter this threat, several methods for encrypting multi-maps to secure the volume of data they contain have been proposed. One such method supports the insertion of data into encrypted multi-maps. However, it sufers from ineficiency caused by its protocol, which stipulates that all data be sent from the server to the client to perturb the insertion position. For this reason, it is not practical for handling large amounts of data. To address this problem, we propose an improved method for encrypted multi-maps that supports data insertion. The proposed method exploits the trusted execution environment (TEE) supported by modern processors, e.g., Intel SGX, for executing perturbation. TEE is a secure area of a main processor that guarantees the confidentiality and integrity of the code and data inside it. Thus, we can secure the volume and insertion position in an encrypted multi-map without conducting costly perturbation on the client-side. We also overcome the challenge of the capacity of the TEE being typically limited and too small to accommodate the multi-map itself. Specifically, we divide the hash table of the multi-map into partitions so that they can be loaded into the TEE and apply perturbation within each partition. We provide a security analysis of the proposed method, w.r.t. the volume hiding and the insertion position hiding. Further, we provide the results of experiments conducted to evaluate the feasibility of potential applications in terms of the processing time and the amount of noise.</p>
      </abstract>
      <kwd-group>
        <kwd>encrypted multi-map</kwd>
        <kwd>privacy</kwd>
        <kwd>secure database</kwd>
        <kwd>Intel SGX</kwd>
        <kwd>cuckoo hashing</kwd>
        <kwd>homomorphic encryption</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>INTRODUCTION</title>
      <p>
        Cloud database services are becoming increasingly popular
owing to their many advantages, such as reduced costs in terms of
server management, deployment, and operation. Consequently,
the number of cloud database services and the volume of data
stored in such databases have been drastically increasing. In a
cloud database service, the cloud service provider is responsible
for database management, which may lead to a security issue
because cloud service providers are not always trustworthy; i.e.,
they may be curious about the private data and could leak the
data [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. To address this issue, many researchers have proposed
methods for encrypted databases to realize secure cloud database
services [
        <xref ref-type="bibr" rid="ref11 ref7">7, 11</xref>
        ].
      </p>
      <p>
        However, it has been pointed out that simply encrypting the
data cannot ensure data privacy and could cause potential
security threats. One such security threat is volume leakage. This
security threat involves an adversary obtaining the size (or
volume) of the query result, which in turn could reveal information
related to the database and/or the query. For example, Kellaris
et al. [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] and Grubbs et al. [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] showed that it is possible for
an adversary to reconstruct the histogram of key values in the
database only by using the volume. In addition, Grubbs et al. [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]
reported that the distribution of queries can be inferred from the
reconstructed histogram with high accuracy.
      </p>
      <p>
        To solve this problem, Sarvar et al. [22] proposed a method
for volume hiding in an encrypted multi-map. However, their
proposed method assumes that the database is stable, and no
updates are allowed, which limits its application domain. To allow
data insertion in an encrypted multi-map with volume hiding,
we previously proposed combining local diferential privacy and
randomized response to enable volume hiding to support data
insertion [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. However, that method sufers from slow insertion
execution due to the protocol used, which stipulates that all data
be sent to the client for perturbation of the insertion location.
Consequently, it is not practical for large databases.
      </p>
      <p>
        In the meantime, recent processors are being developed with
a trusted execution environment (TEE) [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] to meet the growing
demands for secure computation, e.g., Intel SGX [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. A TEE is an
isolated execution environment in a processor that ofers
protection over the code and data inside, ensuring confidentiality and
integrity. In this paper, we propose an encrypted multi-map that
supports data insertion using a TEE. The idea is to securely
perturb the insertion position using TEE, thereby achieving volume
hiding without sending the data from the server to the client. One
of the challenges of handling large data using a TEE is that it
typically ofers limited memory space (e.g., 96MB in Intel SGX). To
solve this problem, we divide the data into smaller blocks
according to the available memory in the TEE and apply perturbation
within the block where insertion occurs.
      </p>
      <p>To verify the utility of the proposed method, we conducted
a security analysis concerning hiding the volume and insertion
position. We also experimentally evaluated its feasibility in
potential applications in terms of the execution time of insertion and
the amount of noise necessary to hide the volume and insertion
position.</p>
      <p>In this work, our target is healthcare data management in a
cloud database as the use case. It is common in healthcare
applications to share medical records about patients among multiple
medical institutions, and leaking the number of patients may
cause unintended privacy disclosure. Similarly, when inserting a
new patient record, it is necessary to hide the insertion position
because it may cause unintended disclosure of privacy, such as
the type of disease.</p>
      <p>
        The main contributions of this study are as follows:
• We propose a method that allows data insertion into
an encrypted multi-map while ensuring that the
multi-map remains deferentially private [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] We use
dummy insertion with dummy keys and entries to perturb
the insertion position. More precisely, for each insertion
request, we generate dummy keys based on the randomized
response, allowing us to achieve local diferential privacy.
• We propose a scheme that exploits the TEE to perturb
data securely. To deal with large amounts of data that
cannot be directly loaded into the TEE, we partition the
database (multi-map) into smaller blocks so that we can
load each block into the TEE and perturb the insertion
location within each block.
• We evaluate the security of our proposed method.
      </p>
      <p>
        We use the randomized response mechanism of local
differential privacy (LDP) [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] to hide the volume of data,
and evaluate its security by finding the privacy budget
 of diferential privacy. Furthermore, we update
multiple insertion positions via the mendacity operation based
on cuckoo hashing [21] and evaluate the security of this
operation in a TEE.
• We provide experimental results that verify the
feasibility of the proposed scheme using a TEE, Intel SGX.
We compared the performance of the proposed scheme
and non-secure baselines in terms of the insertion
execution time and the memory occupation time. We also
compared the required noise when inserting data under
diferent privacy mechanisms, i.e., DP and LDP. Based on
the experimental results, we show our method is useful
for the specified use cases. The experimental results show
that the method is useful.
      </p>
      <p>The remainder of this paper is organized as follows: Section 2
briefly overviews some preliminaries for this work. In Section 3,
we give an overview of existing methods. In Section 4, we discuss
the proposed method for insertion on the server and the
improvement of volume hiding and also evaluate its security capability.
In Section 6, we report on the experiments conducted to evaluate
the insertion operation of our method for a large database.
Finally, Section 7 concludes this paper and outlines possible future
work.
2
2.1</p>
    </sec>
    <sec id="sec-2">
      <title>PRELIMINARIES</title>
    </sec>
    <sec id="sec-3">
      <title>Cuckoo hashing and its properties</title>
      <p>
        In both this study and our preceding work [
        <xref ref-type="bibr" rid="ref12">12, 22</xref>
        ], we utilize
cuckoo hashing [21]. Therefore, we will briefly explain it and
its properties. Cuckoo hashing utilizes two arrays and two hash
functions and is known to be robust. Let us consider inserting a
key using cuckoo hashing. If the hash value collides in one of the
arrays, the algorithm moves the already stored entry to the other
array using the other hash function and inserts a new entry into
the vacancy. In this paper, We call the above property of cuckoo
hashing the mendacity operation. Figure 1 shows the use of two
hash functions (ℎ1 and ℎ2) and two arrays (1 and 2) in inserting
the entry x.
      </p>
      <p>First, the algorithm checks whether the position ℎ1 ( ) in 1 is
empty. If the position is empty, it inserts  into 1 at ℎ1 ( ) and
completes the operation; otherwise, (as shown in Figure 1), it
removes the existing value  and inserts the value  instead. For
the removed value , it checks the vacancy status of ℎ2 () in 2,
and inserts  in 2 at ℎ2 () if it is empty; otherwise, it recursively
processes the same operation.</p>
      <p>By creating the hash table in this manner, it is guaranteed that
the value  is always in either 1 [ℎ1 ( )] or 2 [ℎ2 ( )], ensuring
that it can be searched for with a time complexity of  (1).</p>
      <p>
        There is a possibility that the mendacity operation may take a
very long time, or not be finished if we are unlucky. To address
this issue, Kirsch, Mitzenmacher and Wieder proposed
stashbased cuckoo hashing [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. Stash-based cuckoo hashing avoids
the above problem by using the stash. Any value that is not
inserted into the table while iterating over the threshold level is
inserted into the stash.
2.2
      </p>
    </sec>
    <sec id="sec-4">
      <title>Trusted Execution Environment (TEE)</title>
      <p>
        Recent processors support a trusted execution environment (TEE) [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]
to meet the growing demands of secure computation. A TEE is
an isolated execution environment in a processor that ofers
protection for the code and data inside, ensuring confidentiality and
integrity.
      </p>
      <p>
        Specifically, 6th generation (and higher) Intel CPUs support
a TEE called SGX [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. SGX allows us to create a small (e.g., 96
MB) protected memory area called the enclave that is isolated
from the rest of the system. Hence, we can run programs that
are protected from the OS (which is controlled by a third party)
and numerous applications/system-level attacks.
      </p>
      <p>
        The existing SGX is vulnerable to side-channel attacks; e.g.,
cache-lines [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], branch execution [25], and page-table access [26].
However, the T-SGX [23] and Sanctum [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] systems have evolved
to overcome such attacks, and it is believed that future versions
of SGX will be resilient to those attacks. In this paper, we do not
consider side-channel attacks.
3
      </p>
    </sec>
    <sec id="sec-5">
      <title>EXISTING WORKS</title>
      <p>In this section, we introduce several related works as
following. In subsection 3.1, we introduce various privacy leakages.
In subsection 3.2, we introduce several works of updating for
encrypted databases. In subsection 3.3, we introduce the work of
Sarvar et al. [22] on which our work is based. In subsection 3.4,
we introduce our previous work. In subsection 3.5, we discuss
the problems of our previous work.
3.1</p>
    </sec>
    <sec id="sec-6">
      <title>Various privacy leakages</title>
      <p>
        Many existing encrypted databases focus on keeping only the
content of the data secret. However, it has been reported that the
existing encrypted databases are not secure enough. Liu et al. [20]
and Islam et al. [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] proposed an access pattern attack method.
The access pattern attack is an attack technique that identifies
identical queries using data search logs and access frequency. It
is prevented by the use of Oblivious RAM (ORAM). ORAM is a
technique to hide the access pattern by changing the storage
location of the encrypted data each time they are accessed. By using
ORAM, an attacker cannot know which data has been accessed,
the frequency of searches, or even the relationships between the
data. Kellaris et al. [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] and Gurbbs et al. [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] proposed the attack
method using the volume of search results. They proposed an
attack method that can reconstruct the distribution of data in a
database and queries by observing the response size (volume) to
a sequence of search queries. There are several types of volume
attacks, such as attacks on encrypted multimaps and attacks on
range queries. In this paper, we deal with attacks on encrypted
multimaps, and in the following, we introduce a method for
hiding volume leakage in encrypted multimaps. The naive method
of volume hiding is to use padding so that the number of data
in all keys is equal. However, it has a large overhead in terms of
both storage and communication costs. Kamara et al. [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] and
Sarvar et al. [22] proposed a volume hiding method that reduces
storage and communication costs compared to naive methods. In
particular, since this paper is based on Sarvar et al.’s work [22],
we introduce their method in detail in the subsection 3.3.
3.2
      </p>
    </sec>
    <sec id="sec-7">
      <title>Updating for EDBs</title>
      <p>In this subsection, we introduce several works of updating for
encrypted databases. Chenghong et al. [24] proposed a
framework for an encrypted database that prevents privacy from being
leaked depending on the time of updating. The privacy leakage
due to update time is caused, for example, by event data updates
from smart sensors in the building (security cameras, smart light
bulbs, Wi-Fi access points, etc.). Even if each event data is
encrypted to protect the privacy of the people in the building, the
IoT provider can know the private information about the
activities in the building from the the event occurrence time without
decrypting them. To prevent such privacy leakage, it is necessary
to decouple the relationship between event occurrence time and
update time. The easiest way to prevent privacy is to not upload
the data, in which case data analysts will not be able to utilize
the data. The next possible solution is to update the data every
unit of time, regardless of the occurrence of events. However,
when events occur infrequently, most updates are dummies, and
the provider has the problem of wasting resources for
unnecessary computations. Chenghong et al. proposed a framework that
provides a guarantee of diferential privacy in a single update for
the update time problem, and can be arbitrarily customized by
the user by changing parameters for the three trade-of issues of
privacy, data accuracy, and processing performance.</p>
      <p>
        Natacha et al. [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] proposed a key-value store that achieves
ORAM-based access pattern confidentiality while providing ACID
transactions, which are required in many applications. Existing
ORAMs cannot support transactions for the following two
reasons. The first is that ORAM is not fault-tolerant. The Second
is that ORAM has limited or no support for concurrency. They
delay transaction commits until the end of a fixed-size epoch
and bufer their execution in a reliable proxy to enhance
consistency and durability on a per-epoch basis. Since only the last
value of the key changed during an epoch is written back to the
ORAM, the number of ORAM operations required to commit a
transaction can be reduced, thus reducing the cost of CPU and
bandwidth amortization without increasing contention.
3.3
      </p>
    </sec>
    <sec id="sec-8">
      <title>Sarvar’s work</title>
      <p>Sarvar et al. [22] proposed a method that preserves privacy in
multi-maps while achieving volume hiding. In their method, they
exploit diferential privacy (DP) to hide the volume of data and
reduce the communication cost.</p>
      <p>Specifically, they originally added dummy entries when
applying DP, which, however, increases storage costs. To address
this problem, they reduce the server’s storage size using cuckoo
hashing so that they do not always add dummy entries when
inserting a new entry. Let us consider inserting multiple values
with the same key . Instead of inserting values with the same
key, they generate (surrogate) keys, i.e.,  + 1,  + 2, . . ., and
insert the key–value pairs at diferent hash addresses in the tables
according to the generated keys, thereby avoiding the insertion
of multiple values with the same key. Consequently, they do not
need to insert dummy entries to achieve DP.</p>
      <p>However they need to maintain the number of stored values
for each key. To achieve this, they introduce a count table to
maintain the volume of each key. Because it maintains the volume
information, they apply DP only on the count table, reducing the
extra storage cost of dummy entries.</p>
      <p>When searching the multi-map, given a search key , they first
interrogate the count table to get the volume of , and generate
search keys,  + 1,  + 2, etc. Then, they interrogate the hash
table to get the results. Note that the results may contain false
positives owing to conflicts in the hash tables, which could be
regarded as dummy results for protecting the volume of query
results.</p>
      <p>Figure 2 illustrates an example of Sarvar’s method. In this
example, there are two values associated with the key key1. In
this case, the hash address for the first value ( 1) with the key
key1 is calculated as ℎ1 (1 + 1) or ℎ2 (1 + 1), followed by
ℎ1 (1 + 2) or ℎ2 (1 + 2), etc. The volume of each key is
maintained in the count table, where the values are protected
by applying DP. When retrieving values associated with a
(userspecified) query key 1, the system first gets its volume (4) and
generates search keys (1 + 1, 1 + 2, 1 + 3, and 1 + 4).
Then, it retrieves the values by accessing the hash addresses
computed by the generated keys and the hash functions (ℎ1 and
ℎ2). Note that the results may contain false positives caused by
hash collisions (e.g., ℎ2 (1 + 2) retrieves (2, 2)), which
can be seen as dummy entries that can be filtered out on the
client-side.</p>
      <p>One major limitation of Sarvar’s method is that they do not
support any updates on the multi-map.
3.4</p>
    </sec>
    <sec id="sec-9">
      <title>Our previous method</title>
      <p>
        To address the limitation of Sarvar’s method (i.e., not supporting
updates), we previously proposed an extension that enables it
to support data insertion [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] while preventing volume leakage.
Specifically, our method supports data insertion while
maintaining the multi-map as being deferentially private by using
randomized response based on local diferential privacy (LDP). It hides
the position of past insertions using the mendacity operation, a
feature of cuckoo hashing. To protect related operations from
inside attacks (e.g., by the server administrator), we perform the
operation to hide the insertion positions on the client.
      </p>
      <p>More specifically, when inserting a key–value pair, we apply a
randomized response, which is a mechanism for achieving LDP,
to maintain the diferential privacy of the multi-map. The key is
where  and  are the keys of the non-dummy and
dummy data, respectively. We iterate the randomized response
until  is selected.</p>
      <p>We do not use the generated keys for insertion but rather
for updating the count table. We also use it as done in Sarvar’s
method [22] to maintain the number of values (volume)
associated with each key. Note that the volume count includes both
non-dummy and dummy data to guarantee diferential privacy.
This process is performed on ciphertexts using additive
homomorphic encryption.</p>
      <p>Figure 3 shows an example of updating the count table by
inserting key1. Note that key3 and key4 are selected as randomized
responses. As can be seen, the volume of the dummy key is also
updated at the same time so that we can prevent inferring of the
update on 1 from the diference between the volumes before
and after the insertion. As the randomized response guarantees
LDP, privacy is maintained even after data insertion.</p>
      <p>Next, we discuss how to find the privacy budget  of LDP.
From the derivation of  in the randomized response, it is found

using  ( 1− ) because</p>
      <p>( |  )
 ( |  )
=</p>
      <p>1 − 
where  ( |  ) and  ( | ) are
the probabilities that the key being inserted is selected and that
it is selected from the dummy, respectively. In addition, to ensure
 is non-negative,  &gt;= 0.5 is required. Note here that dummy
keys may not be selected by the randomized response.</p>
      <p>Furthermore, when inserting a new value into the multi-map,
we must hide the insertion position so that the server
administrator cannot infer the updated data from the index in the tables.
We use the mendacity operation in cuckoo hashing to hide the
insertion position. The mendacity operation is a recursive process
that moves existing values to the other side of the hash tables
until the values are all stored in the hash tables. As a result, one
insertion may cause multiple updates in diferent positions in
the tables, which is useful for hiding the insertion position. If
an insertion causes only a few mendacity operations, we insert
dummy entries to hide the insertion position.
Figure 5 gives an overview of our previous method, with an
example of inserting a new value into key1, depicting the mendacity
operation for perturbing the updating positions. If the
operations are performed on the server, private information may be
leaked from the operation history to inside attackers, such as
system administrators. For this reason, in our previous method,
we send the whole index back to the client to undergo mendacity
operations to protect privacy. This incurs a high cost in terms
of network trafic, particularly when the multi-map is large, and
makes the process slow. This may cause several problems in real
applications. One such problem is that the processing
performance heavily depends on the client’s performance, and in some
cases, the client may not complete the process owing to
insuficient resources, such as memory. Another problem arises when
processing concurrent requests from two or more clients. When
updating the multi-map, the map needs to be sent to the client
and also locked until the update is completed, which significantly
degrades the performance under concurrent access.
4</p>
    </sec>
    <sec id="sec-10">
      <title>PROPOSED METHOD</title>
      <p>
        We propose a new insertion method for encrypted multi-maps
with volume hiding. To eliminate the drawbacks of our
previous method, we do not rely on the client for perturbation of the
insertion position. Instead, we exploit the trusted execution
environment (TEE) [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] provided by the main processor to perform
multi-map perturbation securely. Specifically, we use Intel SGX
as the TEE.
      </p>
      <p>Figure 6 shows an example of inserting (1, 1). The main
diference from the previous method is that there is an enclave,
a TEE provided by Intel SGX, on the server, and we update the
hash tables using it. Thus, we update and perturb each hash table
without sending the entire hash table to the client. The values in
the hash table are encrypted and stored in the server’s storage.
The hash tables are partitioned into smaller blocks (&lt; 96 MB) so
that they can be loaded into the enclave, because the size of the
enclave is limited up to 96 MB. When inserting a new dataset, it
is loaded into the enclave along with a hash block. We present
the details in Section 4.1.</p>
      <p>After copying the relevant hash block to the enclave, the
mendacity operation (Section 3.4) is applied. Because the process in
the enclave is not visible to adversaries, they do not know which
part of the hash table has been updated. The entries updated in
the enclave are encrypted and written back to the main memory.
Note that we can protect the process of perturbing hash entries
using the enclave. However, it is possible to observe the updated
locations of the hash entries by comparing the table before and
after the insertion. In particular, if there is no hash collision, the
mendacity operation is not applied, leading to leakage of the
updated location. Therefore, we perform the mendacity
operation by inserting dummy data when no hash collision occurs to
perturb the updated location. In addition, the dummy entries are
helpful because the adversary cannot guess how many values
have been inserted from the update locations.</p>
      <p>After the completion of data insertion, the data removed from
the cuckoo hash table are sent back to the client. Even when
the removed data are dummy data, they are sent back to the
client, and the client can filter the dummies out. This prevents
the adversaries from correctly guessing whether the removed
data are dummy data or not by observing whether they are sent
to the client.</p>
      <p>The proposed method basically solves the problems of previous
methods by using the SGX. In summary, we make the following
two extensions to our previous method.</p>
      <p>• Hash table partitioning for handling large amounts of data.
• Hiding the access location against attacks that use the
diference in the search results before and after data
insertion.</p>
      <sec id="sec-10-1">
        <title>We present the details of the proposed method below.</title>
        <p>4.1</p>
      </sec>
    </sec>
    <sec id="sec-11">
      <title>Hash table partitioning</title>
      <p>
        We use the enclave provided by Intel SGX to securely execute the
mendacity operation on the server side while hiding the updated
position from inside attackers. One of the major challenges is
that the available memory space in an enclave is limited (96 MB)
and is too small to load the hash tables entirely. To cope with
this problem, we partition the cuckoo hash tables into smaller
encrypted blocks (&lt; 96 MB) and perform data insertions within
each block in the enclave. Another factor is the characteristic of
Intel SGX whereby the processing inside of an enclave is fast,
whereas calling a function in the enclave from outside (or vice
versa) is slow (2x to 2000x slower than regular function calls) [
        <xref ref-type="bibr" rid="ref17 ref2">2,
17</xref>
        ]. Further, the argument size for a function call crossing the
border of the enclave is limited to 8 MB for one function call.
Therefore, if the block size is set to 96 MB, we need to further
divide the block into smaller (&lt; 8 MB) pieces and send from/to
the enclave via multiple function calls, which is time-consuming.
      </p>
      <p>Figure 7 shows how a new data record being inserted is
assigned to a block and data insertion performed on the enclave. As
can be seen, the data being inserted are allocated to each block
according to the hash address calculated in the enclave. Next, we
copy the destination block into the enclave and also pass the data
being inserted to the enclave, followed by the execution of data
insertion. In the enclave, the entire block is not decrypted; only
the points where the mendacity operation occurs are decrypted.
Subsequently, the updated block is returned to the main memory,
and the removed data are sent to the client.
4.2</p>
    </sec>
    <sec id="sec-12">
      <title>Hiding the access locations in search</title>
      <p>To perform a search, as in our previous method, we first obtain
the volume of results associated with the search key from the
count table and calculate the hash addresses for accessing the
hash tables. If we assume that the hash table will not be updated,
it is suficiently safe to add noise to the count table based on DP
to hide the number of results. However, when insertions occur,
an attacker may infer what data are inserted by comparing the
ciphertext before and after the insertion operation. Suppose that
several values are associated with the same key 1. An attacker
can infer the updated address by observing the access pattern
of queries with the same key (1) before and after the latest
insertion. Therefore, our method hides the access locations of
the data in the search. As in the case of insertion, the accessed
data are located in the enclave to hide the access locations. The
process oflw of the search operation is as follows: First, the client
sends a request {h(key)} to the server to retrieve the volume of the
key. Next, the client sends a request {Enc(key), Enc(volume)} to the
server to retrieve the data from the key and the retrieved volume.
The server computes the hash values to identify the block to
access and the hash addresses in the hash tables to retrieve the
data. Then, the blocks containing the target data are copied into
the enclave and the search is performed in turn.
5</p>
    </sec>
    <sec id="sec-13">
      <title>SECURITY ANALYSIS</title>
      <p>In this section, we evaluate the security of our proposed method.
In our proposed method, we assume that the server
administrator is semi-honest. This semi-honest administrator follows
established protocols but tries to steal the maximum amount of
data information they can. The adversary (e.g., server
administrator) can observe all systems except the data and operations in
the enclave. In addition, we assume that the adversary does not
have any background knowledge on the stored data.</p>
      <p>With these assumptions as our basis, we analyze whether an
adversary can infer what the data are and where they are inserted
when our proposed insertion operation is employed. Because
the count table is encrypted via homomorphic encryption, the
adversary cannot know the value of the count table, although
they may know that the value of the count table has been updated.
However, when a client gets the values, the client can access the
index as many times as the volume of the key allows. Therefore,
the administrator may infer the volume from the number of
accesses to the index.</p>
      <p>The volume information is guaranteed to be deferentially
private by adding noise. Let us assume that two accesses occur before
and after an insertion, and the adversary observes the diference
in the key’s volume. In this case, there are two possibilities:
• One addition for an actual (non-dummy) value insertion
into the key with probability p.
• One addition for a selected dummy key by the randomized
response with probability (1 − ).</p>
      <p>In other words, even if the number of reads increases by one,
the adversary cannot know whether it is an increase by the
insertion of actual or dummy data. Even if the adversary can see
the increase in the number of reads before and after the insertion,
it is not a problem because LDP is guaranteed.</p>
      <p>Next, we describe the security of the mendacity operation to
hide the position of the stored data. If there is only one updated
position, the position where the actual (non-dummy) data are
inserted can be leaked by observing the corresponding position.
In our method, at least  + 1( ≥ 1) positions are updated, where
 is a parameter that is set by the user for the number of times
to force a mendacity operation to occur. Therefore, the server
administrator can only determine where the true data have been
inserted with a probability of 1/(k+1) in the worst case. However,
the adversary may be able to ascertain the block to which it
is assigned. In our experiment, we found that the maximum
capacity of one block is approximately 1000 records. Therefore,
it is possible to increase safety by perturbing the blocks as well.
Specifically, the block that has the true key–value data inserted
can be kept a secret by faking the update of the block.
6</p>
    </sec>
    <sec id="sec-14">
      <title>EXPERIMENTAL EVALUATION</title>
      <p>In this section, we present the details of the experiments
conducted to evaluate the proposed method. The specific purpose
was to evaluate the improvement in the performance of insertion
and query by SGX and the influence of the noise addition under
LDP on the communication volume and processing time.</p>
      <p>To this end, we conducted the following experiments:
• Comparison of the processing times of data insertion
using the proposed method, our previous method,
and a non-secure method using one million artificial
data records and real-world data. In this experiment,
we first evaluated whether the processing time for
inserting records using our proposed approach is suficient for
practical use by comparing our previous method and the
non-secure method. In addition, we evaluated the impact
of SGX and LDP on the processing time and the
communication volume by comparing the proposed method with
the non-secure method.
• Comparison of the amount of noise between DP and
LDP. In this experiment, we evaluated the impact of LDP
on the amount of noise by comparing with DP. Specifically,
we compared the amount of noise in the volume when
noise is added using DP after all data are inserted and when
noise is added using LDP at the time of data insertion.
• Comparison of the search times of the proposed
method, Sarvar’s method, and the non-secure method
using one million artificial data records and
realworld data. In this experiment, we first evaluated the
efect of the diference in noise between DP and LDP on
the search time by comparing it with Sarvar’s method.
Next, we evaluated the impact of SGX on the search time
by comparing it with the non-secure method.</p>
      <sec id="sec-14-1">
        <title>The experimental environment was as follows:</title>
        <p>• Server: Microsoft Azure, Intel(R) Xeon(R) E-2288G CPU
3.70 GHz, 4 GB RAM, Ubuntu 18.04.5 LTS
• Client: MacBook Pro, dual-core Intel Core i7 3.1 GHz , 16</p>
        <p>
          GB 1867 MHz DDR3, macOS (ver. 11.5.2)
The datasets used in the experiments were artificial and
realworld data. The artificial data comprised 1,000 keys and one
million data records. We used two artificial datasets: uniform
and normal distributions. We used UCI Online Retail II [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] as
real-world data. It has 5,305 keys and 1,067,371 data records.
6.1
        </p>
      </sec>
    </sec>
    <sec id="sec-15">
      <title>Processing time of data insertion</title>
      <p>We compared the data insertion processing times of the proposed
method, our previous work, and the non-secure method. We
introduced our previous method Section 3.4. In the non-secure
method, all records and indexes are stored in plain text and no
noise entry is added to the count table, although the processing
lfow is the same as that of the proposed method.</p>
      <p>Figure 8 shows the average time taken to insert one key–value
pair when a client inserts 1,000 data items using the proposed
and our previous method with artificial data following a uniform
distribution, artificial data following a normal distribution, and
real-world data. When a record is inserted into the multi-map,
the hash function is calculated by using the key and the
number of stored records according to the key. Therefore, the time
required for insertion is not related to the distribution of the key
values. The proposed method is approximately 12x faster than
the previous method.</p>
      <p>The total processing time of the proposed method for insertion
is approximately 118x slower than that of the non-secure baseline.
Note that in Table 1, the communication time is estimated based
on the observation of the communication volume with the
nonsecure baseline in Figure 9. The communication time of the
nonsecure method was obtained by subtracting the processing time
from the total time.</p>
      <p>The communication volume required to insert data is
approximately 4x greater than that of the non-secure method. Therefore,
the communication time of the proposed method is also four
times longer than that of the non-secure method.</p>
      <p>
        In Table 1, we can see that the proposed method has a
significant diference in the cuckoo hash table update and other
processing times compared to the non-secure method. The
reason for this large diference in updating the cuckoo hash table
can be attributed to the characteristics of SGX. SGX is known
for its fast processing inside the enclave, but very slow (2x to
2000x) [
        <xref ref-type="bibr" rid="ref17 ref2">2, 17</xref>
        ] processing of functions calling inside the enclave
from outside the enclave (and vice versa) compared to normal
function calls. The other processing time is obtained by
subtracting each processing time from the overall processing time. This
is considered to be the processing time for encryption and
compounding. In the proposed method, the encryption-combination
is performed 11 times on average for each data insertion. This
results in a large overhead.
      </p>
      <p>Thus, although there is more overhead in each process
compared to the non-secure method, we believe that the fact that
the time required for data insertion is kept at 0.5 seconds while
ensuring the high security of our method is practical.
6.2</p>
    </sec>
    <sec id="sec-16">
      <title>Noise comparison between DP and LDP</title>
      <sec id="sec-16-1">
        <title>Uniform distribution data</title>
      </sec>
      <sec id="sec-16-2">
        <title>Normal distribution data</title>
      </sec>
      <sec id="sec-16-3">
        <title>Real-world data</title>
        <p>Figure 10 compares the noise in DP and LDP for diferent
datasets: artificial data following a uniform distribution, artificial
data following a normal distribution, and real-world data. The
results show that the amount of noise in LDP is large compared
to DP. In the case of experiments using artificial data, about 1,000
noise units are assigned to each key compared to DP. In the case
of experiments using real-world data, about 200 noise units are
assigned to each key compared to DP. This is because, in LDP, the
amount of noise is proportional to the number of data records. In
the proposed method, noise is only added to the number of counts
in the count table, but not to the index. Therefore, the amount
of this noise does not afect the amount of spatial computation.
However, because the search is performed based on the number
of count tables, this amount of noise will afect the search time.
Therefore, in Section 6.3, we evaluate the impact on the search
time.
6.3</p>
      </sec>
    </sec>
    <sec id="sec-17">
      <title>Processing time of data search</title>
      <p>We conducted search experiments for the proposed method and
Sarvar’s method. Figure 11 compares the average time and the
average communication volume by the client to search all the
keys for each method in which artificial data following a uniform
distribution, artificial data following a normal distribution, and
real-world data are stored. The figure shoiws that the amount</p>
      <sec id="sec-17-1">
        <title>Search time for uniform distribution</title>
      </sec>
      <sec id="sec-17-2">
        <title>Communication volume of the search for uniform distribution</title>
      </sec>
      <sec id="sec-17-3">
        <title>Search time for normal distribution</title>
      </sec>
      <sec id="sec-17-4">
        <title>Communication volume of the search for normal distribution</title>
      </sec>
      <sec id="sec-17-5">
        <title>Search time for real-world data</title>
      </sec>
      <sec id="sec-17-6">
        <title>Communication volume of the search for real-world data</title>
        <p>of noise in the proposed method is about two times lesser than
Sarvar’s method, whereas the search time of the proposed method
is about five times slower than Sarvar’s method. This is due to
the overhead caused by SGX. As mentioned in Section 4.2, the
proposed method processes search operations in the enclave
area to hide the access location during searches. Therefore, we
compared the processing times incurred to search data from the
cuckoo hash table on the server side. Figure 12 shows the results.
As mentioned in Section 6.1, SGX has a characteristic wherein
the processing inside the enclave is fast, while calling a function
inside the enclave from outside the enclave (or vice versa) is
very slow. Thus, the processing time is slow when compared to
Sarvar’s method. However, Sarvar’s method searches for the key
based on a uniquely defined token generated from the key, and
there is a risk that the provider may identify the key. In contrast,
the proposed method performs the search process in the enclave,
and thus the search is performed in secrecy.
7</p>
      </sec>
    </sec>
    <sec id="sec-18">
      <title>CONCLUSION AND FUTURE WORK</title>
      <p>In this paper, we proposed a method that supports data insertion
in encrypted multi-maps using a trusted execution environment
(TEE), such as Intel SGX. In the proposed method, the tables are
partitioned into blocks and each block is processed independently
to cope with the limited memory space (96 MB) in Intel SGX.
Our experimental results indicate that it takes about 50 ms to
insert a key–value pair. This is a speedup of about 12 times when
compared to our previous method. In addition, we think that it is
practical to have the data insertion time at 50 ms while keeping
the key volume and update location secret.</p>
      <p>The time taken by the search process is about 5x longer than
that of Sarvar’s method. This is due to the search process using
Intel SGX as well as the diference in the amount of noise. In
Sarvar’s method, the search positions are not secret, whereas in
our proposed method, the search positions are secret. Therefore,
we believe that our method is more useful when dealing with
highly sensitive data.</p>
      <p>In future work, we would like to make more efective use of the
remaining enclave area. In this method, only 8 MB of the enclave
area is used, owing to the argument-size limitation of Intel SGX.
We are considering using the remaining area as a cache. In
realworld workloads, there are many cases where access to keys is
heavily skewed. Thus, we would like to cache frequently accessed
keys in the enclave, instead of storing them in the cuckoo hash
table, to speed up insertion and retrieval.</p>
    </sec>
    <sec id="sec-19">
      <title>ACKNOWLEDGEMENTS</title>
      <p>This work was supported by JSPS KAKENHI Grant Numbers
JP20362832.
conference/usenixsecurity17/technical-sessions/presentation/lee-sangho
[20] Chang Liu, Liehuang Zhu, Mingzhong Wang, and Yu-An Tan. 2014. Search
Pattern Leakage in Searchable Encryption: Attacks and New Construction.</p>
      <p>Inf. Sci. 265 (may 2014), 176–188. https://doi.org/10.1016/j.ins.2013.11.021
[21] R. Pagh and Flemming Friche Rodler. 2004. Cuckoo hashing. J. Algorithms 51
(2004), 122–144.
[22] Sarvar Patel, Giuseppe Persiano, Kevin Yeo, and Moti Yung. 2019. Mitigating
Leakage in Secure Cloud-Hosted Data Structures: Volume-Hiding for
MultiMaps via Hashing. In Proceedings of the 2019 ACM SIGSAC Conference on
Computer and Communications Security (London, United Kingdom) (CCS ’19).
Association for Computing Machinery, New York, NY, USA, 79–93. https:
//doi.org/10.1145/3319535.3354213
[23] Ming-Wei Shih, Sangho Lee, Taesoo Kim, and Marcus Peinado. 2017.
TSGX: Eradicating Controlled-Channel Attacks Against Enclave Programs.
In Network and Distributed System Security Symposium 2017 (NDSS’17)
(network and distributed system security symposium 2017 (ndss’17) ed.).
Internet Society. https://www.microsoft.com/en-us/research/publication/
t-sgx-eradicating-controlled-channel-attacks-enclave-programs/
[24] Chenghong Wang, Johes Bater, Kartik Nayak, and Ashwin Machanavajjhala.
2021. DP-Sync: Hiding Update Patterns in Secure Outsourced Databases
with Diferential Privacy. Proceedings of the 2021 International Conference on
Management of Data (Jun 2021). https://doi.org/10.1145/3448016.3457306
[25] Jinwen Wang, Yueqiang Cheng, Qi Li, and Yong Jiang. 2018. Interface-Based</p>
      <p>Side Channel Attack Against Intel SGX. arXiv:1811.05378 [cs.CR]
[26] Wenhao Wang, Guoxing Chen, Xiaorui Pan, Yinqian Zhang, XiaoFeng Wang,
Vincent Bindschaedler, Haixu Tang, and Carl A. Gunter. 2017. Leaky Cauldron
on the Dark Land. Proceedings of the 2017 ACM SIGSAC Conference on Computer
and Communications Security (Oct 2017). https://doi.org/10.1145/3133956.
3134038</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>2020. X-Force Threat Intelligence Index Reveals Top Cybersecurity Risks</surname>
          </string-name>
          of
          <year>2020</year>
          . https://securityintelligence.com/posts/ x-force
          <article-title>-threat-intelligence-index-reveals-top-cybersecurity-risks-of-</article-title>
          <year>2020</year>
          /.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>Sergei</given-names>
            <surname>Arnautov</surname>
          </string-name>
          , Bohdan Trach, Franz Gregor, Thomas Knauth, Andre Martin,
          <string-name>
            <given-names>Christian</given-names>
            <surname>Priebe</surname>
          </string-name>
          , Joshua Lind, Divya Muthukumaran,
          <string-name>
            <surname>Dan O'Keefe</surname>
          </string-name>
          , Mark L.
          <string-name>
            <surname>Stillwell</surname>
            , David Goltzsche,
            <given-names>Dave</given-names>
          </string-name>
          <string-name>
            <surname>Eyers</surname>
            , Rüdiger Kapitza,
            <given-names>Peter</given-names>
          </string-name>
          <string-name>
            <surname>Pietzuch</surname>
            , and
            <given-names>Christof</given-names>
          </string-name>
          <string-name>
            <surname>Fetzer</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>SCONE: Secure Linux Containers with Intel SGX</article-title>
          .
          <source>In 12th USENIX Symposium on Operating Systems Design and Implementation (OSDI 16)</source>
          . USENIX Association, Savannah, GA,
          <fpage>689</fpage>
          -
          <lpage>703</lpage>
          . https://www.usenix. org/conference/osdi16/technical-sessions/presentation/arnautov
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Daqing</given-names>
            <surname>Chen</surname>
          </string-name>
          .
          <year>2019</year>
          .
          <article-title>Online Retail II. UCI Machine Learning Repository</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>Victor</given-names>
            <surname>Costan</surname>
          </string-name>
          and
          <string-name>
            <given-names>Srinivas</given-names>
            <surname>Devadas</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>Intel SGX Explained</article-title>
          .
          <source>Cryptology ePrint Archive, Report</source>
          <year>2016</year>
          /086. https://eprint.iacr.org/
          <year>2016</year>
          /086.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Victor</given-names>
            <surname>Costan</surname>
          </string-name>
          , Ilia Lebedev, and
          <string-name>
            <given-names>Srinivas</given-names>
            <surname>Devadas</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>Sanctum: Minimal Hardware Extensions for Strong Software Isolation</article-title>
          .
          <source>In 25th USENIX Security Symposium (USENIX Security 16)</source>
          .
          <source>USENIX Association</source>
          , Austin, TX,
          <fpage>857</fpage>
          -
          <lpage>874</lpage>
          . https://www.usenix.org/conference/usenixsecurity16/ technical-sessions/presentation/costan
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>Natacha</given-names>
            <surname>Crooks</surname>
          </string-name>
          , Matthew Burke, Ethan Cecchetti, Sitar Harel, Rachit Agarwal, and
          <string-name>
            <given-names>Lorenzo</given-names>
            <surname>Alvisi</surname>
          </string-name>
          .
          <year>2018</year>
          .
          <article-title>Obladi: Oblivious Serializable Transactions in the Cloud</article-title>
          .
          <source>In 13th USENIX Symposium on Operating Systems Design and Implementation (OSDI 18)</source>
          . USENIX Association, Carlsbad, CA,
          <fpage>727</fpage>
          -
          <lpage>743</lpage>
          . https://www.usenix.org/conference/osdi18/presentation/crooks
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Reza</given-names>
            <surname>Curtmola</surname>
          </string-name>
          , Juan Garay, Seny Kamara, and
          <string-name>
            <given-names>Rafail</given-names>
            <surname>Ostrovsky</surname>
          </string-name>
          .
          <year>2011</year>
          .
          <article-title>Searchable symmetric encryption: Improved definitions and eficient constructions</article-title>
          .
          <source>Journal of Computer Security</source>
          <volume>19</volume>
          (01
          <year>2011</year>
          ),
          <fpage>895</fpage>
          -
          <lpage>934</lpage>
          . https://doi.org/10.1145/ 1180405.1180417
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>Sanjeev</given-names>
            <surname>Das</surname>
          </string-name>
          ,
          <string-name>
            <surname>Jan Werner</surname>
            , Manos Antonakakis, Michalis Polychronakis, and
            <given-names>Fabian</given-names>
          </string-name>
          <string-name>
            <surname>Monrose</surname>
          </string-name>
          .
          <year>2019</year>
          .
          <article-title>SoK: The Challenges, Pitfalls, and Perils of Using Hardware Performance Counters for Security</article-title>
          .
          <volume>20</volume>
          -
          <fpage>38</fpage>
          . https://doi.org/10.1109/ SP.
          <year>2019</year>
          .00021
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Cynthia</given-names>
            <surname>Dwork</surname>
          </string-name>
          .
          <year>2006</year>
          .
          <article-title>Diferential Privacy</article-title>
          .
          <source>In Automata, Languages and Programming</source>
          , Michele Bugliesi, Bart Preneel, Vladimiro Sassone, and Ingo Wegener (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg,
          <fpage>1</fpage>
          -
          <lpage>12</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>Paul</given-names>
            <surname>Grubbs</surname>
          </string-name>
          ,
          <string-name>
            <surname>Marie-Sarah</surname>
            <given-names>Lacharite</given-names>
          </string-name>
          , Brice Minaud, and
          <string-name>
            <given-names>Kenneth G.</given-names>
            <surname>Paterson</surname>
          </string-name>
          .
          <year>2018</year>
          .
          <article-title>Pump up the Volume: Practical Database Reconstruction from Volume Leakage on Range Queries</article-title>
          .
          <source>In Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security</source>
          (Toronto, Canada) (
          <source>CCS '18)</source>
          .
          <article-title>Association for Computing Machinery</article-title>
          , New York, NY, USA,
          <fpage>315</fpage>
          -
          <lpage>331</lpage>
          . https://doi.org/10.1145/3243734.3243864
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>Hakan</given-names>
            <surname>Hacigümüş</surname>
          </string-name>
          , Bala Iyer,
          <string-name>
            <given-names>Chen</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>and Sharad</given-names>
            <surname>Mehrotra</surname>
          </string-name>
          .
          <year>2002</year>
          .
          <article-title>Executing SQL over Encrypted Data in the Database-Service-Provider Model</article-title>
          .
          <source>In Proceedings of the 2002 ACM SIGMOD International Conference on Management of Data (Madison, Wisconsin) (SIGMOD '02)</source>
          .
          <article-title>Association for Computing Machinery</article-title>
          , New York, NY, USA,
          <fpage>216</fpage>
          -
          <lpage>227</lpage>
          . https://doi.org/10.1145/564691.564717
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Shunta</surname>
            <given-names>Ishihara</given-names>
          </string-name>
          , Chiemi Watanabe, and
          <string-name>
            <given-names>Toshiyuki</given-names>
            <surname>Amagasa</surname>
          </string-name>
          .
          <year>2021</year>
          .
          <article-title>Supporting Insertion in Encrypted Multi-Maps with Volume Hiding</article-title>
          .
          <source>In IEEE International Conference on Smart Computing, SMARTCOMP</source>
          <year>2021</year>
          , Irvine, CA, USA,
          <year>August</year>
          23-
          <issue>27</issue>
          ,
          <year>2021</year>
          . IEEE,
          <fpage>264</fpage>
          -
          <lpage>269</lpage>
          . https://doi.org/10.1109/SMARTCOMP52413.
          <year>2021</year>
          . 00058
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>Mohammad</given-names>
            <surname>Saiful</surname>
          </string-name>
          <string-name>
            <surname>Islam</surname>
          </string-name>
          , Mehmet Kuzu, and
          <string-name>
            <given-names>Murat</given-names>
            <surname>Kantarcioglu</surname>
          </string-name>
          .
          <year>2012</year>
          .
          <article-title>Access pattern disclosure on searchable encryption: Ramification, attack and mitigation. In in Network and Distributed System Security Symposium (NDSS</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>Seny</given-names>
            <surname>Kamara</surname>
          </string-name>
          and
          <string-name>
            <given-names>Tarik</given-names>
            <surname>Moataz</surname>
          </string-name>
          .
          <year>2019</year>
          . Computationally Volume-
          <source>Hiding Structured Encryption</source>
          .
          <volume>11477</volume>
          (
          <year>2019</year>
          ),
          <fpage>183</fpage>
          -
          <lpage>213</lpage>
          . https://doi.org/10.1007/ 978-3-
          <fpage>030</fpage>
          -17656-
          <issue>3</issue>
          _
          <fpage>7</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>Shiva</given-names>
            <surname>Prasad</surname>
          </string-name>
          <string-name>
            <given-names>Kasiviswanathan</given-names>
            ,
            <surname>Homin</surname>
          </string-name>
          <string-name>
            <given-names>K.</given-names>
            <surname>Lee</surname>
          </string-name>
          , Kobbi Nissim, Sofya Raskhodnikova, and
          <string-name>
            <given-names>Adam</given-names>
            <surname>Smith</surname>
          </string-name>
          .
          <year>2011</year>
          .
          <string-name>
            <given-names>What</given-names>
            <surname>Can We Learn Privately? SIAM J. Comput</surname>
          </string-name>
          .
          <volume>40</volume>
          ,
          <issue>3</issue>
          (
          <year>2011</year>
          ),
          <fpage>793</fpage>
          -
          <lpage>826</lpage>
          . https://doi.org/10.1137/090756090 arXiv:https://doi.org/10.1137/090756090
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>Georgios</surname>
            <given-names>Kellaris</given-names>
          </string-name>
          , George Kollios, Kobbi Nissim, and
          <string-name>
            <surname>Adam O'Neill</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>Generic Attacks on Secure Outsourced Databases</article-title>
          .
          <source>In Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security</source>
          (Vienna, Austria) (
          <source>CCS '16)</source>
          .
          <article-title>Association for Computing Machinery</article-title>
          , New York, NY, USA,
          <fpage>1329</fpage>
          -
          <lpage>1340</lpage>
          . https://doi.org/10.1145/2976749.2978386
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>Taehoon</surname>
            <given-names>Kim</given-names>
          </string-name>
          , Joongun Park, Jaewook Woo, Seungheun Jeon, and
          <string-name>
            <given-names>Jaehyuk</given-names>
            <surname>Huh</surname>
          </string-name>
          .
          <year>2019</year>
          .
          <article-title>ShieldStore: Shielded In-Memory Key-Value Storage with SGX</article-title>
          .
          <source>In Proceedings of the Fourteenth EuroSys Conference</source>
          <year>2019</year>
          (Dresden, Germany) (EuroSys '19).
          <article-title>Association for Computing Machinery</article-title>
          , New York, NY, USA, Article
          <volume>14</volume>
          , 15 pages. https://doi.org/10.1145/3302424.3303951
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <surname>Adam</surname>
            <given-names>Kirsch</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Michael</given-names>
            <surname>Mitzenmacher</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Udi</given-names>
            <surname>Wieder</surname>
          </string-name>
          .
          <year>2009</year>
          .
          <article-title>More Robust Hashing: Cuckoo Hashing with a Stash</article-title>
          .
          <source>SIAM J. Comput. 39</source>
          ,
          <issue>4</issue>
          (Dec.
          <year>2009</year>
          ),
          <fpage>1543</fpage>
          -
          <lpage>1561</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>Sangho</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <surname>Ming-Wei</surname>
            <given-names>Shih</given-names>
          </string-name>
          , Prasun Gera, Taesoo Kim, Hyesoon Kim, and
          <string-name>
            <given-names>Marcus</given-names>
            <surname>Peinado</surname>
          </string-name>
          .
          <year>2017</year>
          .
          <article-title>Inferring Fine-grained Control Flow Inside SGX Enclaves with Branch Shadowing</article-title>
          .
          <source>In 26th USENIX Security Symposium (USENIX Security 17)</source>
          .
          <source>USENIX Association</source>
          , Vancouver, BC,
          <fpage>557</fpage>
          -
          <lpage>574</lpage>
          . https://www.usenix.org/
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>