Abstract
Searchable symmetric encryption (SSE) allows a data owner to outsource his encrypted data to a cloud server while retaining the ability to perform keyword search over encrypted data. The security guarantees of existing SSE schemes require that the adversary has no access to the data owner’s secret keys. Unfortunately, adversaries may get some or all of the secret keys through memory attacks. Facing such memory attacks, most existing SSE schemes are no longer secure. Recently, a memory leakage-resilient dynamic SSE (MLR-DSSE) scheme has been proposed to resist memory attacks from physically unclonable functions (PUFs). However, this scheme does not consider the possibility of dishonest behaviors on the part of cloud servers. In this paper, we first propose a verifiable MLR-DSSE scheme based on PUFs and a verifiable hash table. The construction not only resists memory attacks but also supports verifiable search and dynamic updates. Besides, due to the combination of the secret sharing technique with PUFs, our proposed scheme can recover secret keys even if some PUFs are broken. Furthermore, the security analysis demonstrates that our proposed scheme is non-adaptively secure against memory attacks. The evaluation experiment results show that our scheme is efficient.
Keywords
Introduction
In the age of information, the amount of resources that have converged on the Internet is becoming increasingly enormous. To effectively manage and utilize Internet resources, cloud computing, which is a scalable and high-throughput computing paradigm, arose at a historic moment. Cloud computing has powerful data storage capabilities. Therefore, an increasing number of individuals and enterprises choose to outsource their data to cloud servers, which is helpful for reducing the enormous overhead of local data management. Although cloud computing brings users great benefits, it also inevitably leads to data security and privacy problems. An effective way to solve these problems is to encrypt data before outsourcing it to the cloud. However, how to carry out keyword search over encrypted data has become a new problem.
To address this issue, searchable symmetric encryption (SSE) was proposed by Song et al. [31]. In SSE schemes, a data owner can outsource his encrypted data to a cloud server while retaining the ability to perform keyword search over encrypted data. Most SSE schemes provide the cloud server with search capabilities through a so-called secure index [19]. An index is a data structure that maps the relationship between a keyword and corresponding encrypted data. To search for a keyword w, the data owner generates a trapdoor for w and sends it to the cloud server. Upon receiving the trapdoor, the cloud server searches the index and returns the corresponding search result. For a secure index, it is impossible to perform keyword search without the knowledge of a trapdoor. In addition, the trapdoor can only be generated using the secret key.
SSE has been well studied by plenty of researchers [8,24,25,32,34,37–39]. Most existing SSE schemes protect the data owner’s privacy through the use of secure indexes. That is, for an adversary who does not have the data owner’s secret key, the trapdoor does not reveal the search keyword, and the index does not reveal either the keywords contained in encrypted data or the relationships between keywords and encrypted data. Obviously, the security guarantees of these schemes rely on a simple assumption, that the adversary has no knowledge of or access to the secret key. However, long-term secret keys in these schemes are typically stored in non-volatile memory, such as ROM or flash. By using some fast and effective memory attacks [1,22], such as side-channel attacks, the adversary can easily obtain some or all of the content of non-volatile memory. Such memory attacks have made these schemes no longer secure. To the best of our knowledge, the only SSE construction that is secure against memory attacks is the memory leakage-resilient dynamic SSE (MLR-DSSE) scheme proposed by Dai et al. [17]. Their idea is to replace long-term secret keys stored in non-volatile memory with physically unclonable functions (PUFs) [28]. In this way, the adversary cannot obtain useful secret information through memory attacks.
However, the MLR-DSSE scheme by Dai et al. assumes that the cloud server is honest and does not support the verification of search results. In real life, a dishonest server may return incorrect search results due to financial incentives. Therefore, their scheme is not practical in real life. Some state-of-the-art searchable encryption schemes [23,29,36] can provide the verification of search results through the data authentication technology such as MAC [20] or Bloom filter [5]. Unfortunately, these schemes are not applicable in the scenario of memory leakage. In this paper, we observe that the primitive of verifiable hash table [7] is useful to achieve the verification when memory attacks occur. Therefore, we first propose a verifiable MLR-DSSE scheme based on PUFs and a verifiable hash table. Our proposed scheme not only is secure against memory attacks but also supports search results verification and dynamic updates.
Another shortcoming of the scheme by Dai et al. is that their key generation algorithm is not reliable enough. In their scheme, the outputs of PUFs are directly used as secret keys. However, a PUF is an unclonable function implemented by a physical system and can be broken due to collisions or other reasons. Because their scheme does not store secret keys in memory, the secret key is unrecoverable once the corresponding PUF is unusable. Motivated by this fact, in this paper, we apply the secret sharing technique [30] to our key generation algorithm. In our scheme, the output of each PUF is used to share a secret, and the data owner’s secret keys are generated from the shared secret. That is, as long as there remains a sufficient number of intact PUFs, the recovery of the secret keys is not affected by unusable PUFs. Therefore, our scheme is more applicable for real-world applications.
Our contribution
In this paper, we propose a verifiable MLR-DSSE scheme, which not only resists memory attacks but also supports dynamic updates and the verification of search results. Our contributions are summarized as follows:
Based on PUFs and a verifiable hash table, our proposed scheme is the first verifiable MLR-DSSE scheme. By using PUFs and fuzzy extractors as building blocks, our scheme can resist memory attacks. Besides, our scheme supports verifiable search and dynamic updates through the use of a verifiable hash table. Finally, we prove that our scheme can achieve the desired security requirements. The detailed evaluation experiment results show that our scheme is efficient. We combine the secret sharing technique with PUFs to achieve a reliable key generation algorithm. In our proposed scheme, each PUF is used to build a share of a secret, and the data owner’s secret keys are generated from the shared secret. When some PUFs are broken, the data owner has the ability to recover the secret keys from the remaining intact PUFs.
Related work
Song et al. [31] were the first to consider the searchable encryption problem, and they proposed a scheme supporting dynamic updates. In their solution, a special two-layered encryption construction is applied to encrypt each word. Unfortunately, the search time is linear in the length of documents collection. Following the seminal work due to Song et al., many searchable encryption schemes have been proposed in the literature.
Static SSE schemes are only for fixed-size outsourced data. Curtmola et al. [16] firstly presented a static SSE scheme to achieve sublinear search time. Meanwhile, enhanced security definitions for searchable encryption schemes were put forward in [16]. Chase and Kamara [15] considered the problem of encrypting structured data and proposed an efficient SSE construction for labeled data. To achieve richer functionality, the first SSE solution that supports conjunctive keyword search was presented by Golle et al. [21]. Later, Cash et al. [9] constructed an SSE scheme implementing general Boolean queries on a large-scale database.
Dynamic SSE (DSSE) schemes allow to make dynamic updates to outsourced data or users. Goh [19] presented a DSSE scheme by using Bloom filter as a file index. However, his scheme requires linear search time and results in false positives. Chang and Mitzenmacher [14] put forward a dynamic solution without false positives, which is suitable for mobile users. In order to achieve a stronger privacy protection, Dai et al. [17] proposed a DSSE scheme that is secure against memory attacks. Their main idea is to utilize PUFs and fuzzy extractors [18] to achieve a real-time key generation. Furthermore, Alderman et al. [3] proposed a dynamic searchable encryption scheme that makes use of multi-level access control to protect hierarchical sensitive data. A hierarchical key assignment scheme is an effective solution to deal with privacy issues of searchable encryption. Castiglione et al. [10] investigated the relations between the security notions for hierarchical key assignment schemes supporting dynamic structures. Subsequently, on the basis of a symmetric encryption scheme, Castiglione et al. [11] proposed a concrete hierarchical key assignment scheme for dynamic updates. Castiglione et al. [12] also studied the Akl–Taylor scheme [2] in the dynamic setting and proposed a scheme supporting dynamic updates with the Akl–Taylor assignment.
As the cloud server may return incorrect or incomplete search results, it is essential to build an effective verification mechanism. Chai et al. [13] firstly presented a verifiable static SSE scheme based on the dictionary tree. In their scheme, the search path on the dictionary tree is used as evidence for the verification. Subsequently, Kurosawa et al. [26] utilized MAC to ensure the correctness and completeness of search results in their static scheme. In order to improve performance, Kurosawa et al. [27] later showed a verifiable DSSE construction via the use of a RSA accumulator. Their construction supports all updating operations for documents. To achieve a practical searchable encryption scheme, Jiang et al. [23] proposed a secure and efficient multi-keyword search scheme based on MAC and QSet, which supports not only verifiable search but also ranked search.
Organization
The rest of this paper is organized as follows. Some preliminaries applied in our scheme are presented in Section 2. The problem formulation is introduced in Section 3, including system model, formal definition, adversary model and security requirements. In Section 4, we describe the proposed verifiable MLR-DSSE scheme in detail. Security analysis and evaluation experiment are shown in Section 5. Finally, conclusion will be made in Section 6.
Preliminary
Physically unclonable functions and fuzzy extractors
Physically unclonable functions (PUFs), introduced by Pappu et al. [28], are one-way noise functions. A PUF can only be implemented on a physical system, and its randomness is extracted from its deep submicron physical characteristics [33]. The input/output of PUFs is called a challenge/response pair. Given an external challenge c, a PUF generates a response
Computable: Given a challenge c and a PUF, there is an efficient way to evaluate the response
Bounded noise: When accepting a legal challenge c, for the same PUF, responses
Independence: There are no two distinct PUFs that show the same behavior.
One-wayness: Given a response r and a PUF, finding the challenge c that satisfies
Unclonability: There is no efficient known process that can physically clone a PUF.
Unpredictability: Even if a PUF has measured on a polynomial number of challenges, there is still a significant amount of entropy in the response that the PUF generates on a new challenge. Given a random variable Y, the average conditional min-entropy of X is defined as
For simplicity, we denote by
In our proposed scheme, we replace long-term secret keys stored in non-volatile memory with PUFs. However, the same challenge for a PUF may generate different responses. To solve this problem, we utilize the fuzzy extractor, which was proposed by Dodis et al. [18], to deal with the PUF’s responses. A fuzzy extractor can reliably extract a uniformly random string R from its input z and then recover R from the similar input
(Fuzzy extractor).
Let Gen: Rep:
The security of fuzzy extractors demands that R is computationally indistinguishable from the uniform distribution
Secret sharing scheme
The secret sharing scheme, which is also called the
Verifiable hash table
Bost et al. [7] gave an efficient and concise instantiation of a verifiable hash table. It is a tree data structure that combines the characteristics of binary search trees and Merkle hash trees. Let
For each node If If If
This pair of nodes is called enclosing nodes. Figure 1 gives an example of a verifiable hash table. For the sake of brevity, we only show the key of each node in Fig. 1. Given input keys

Verifiable hash table.
System model
As illustrated in Fig. 2, the system model involves two different entities: the cloud server and the data owner. The data owner has a set of documents
Formal definition
A verifiable DSSE scheme Π = (KeyGen, Enc, TrapGen, Search, Verify, Update) consists of following six algorithms:

System model of verifiable DSSE.
In this paper, we assume that the cloud server is “semi-honest-but-curious”. That is, the server may incorrectly execute the proposed protocol and return incorrect or incomplete search results. Additionally, because long-term secret keys in SSE schemes are stored in non-volatile memory, we consider the following memory attacks that are defined in [4]. The adversary Let θ be the secret stored in non-volatile memory. The adversary (Memory attacks).
Security requirements
On the basis of the above adversary model, we introduce some security requirements for our verifiable DSSE scheme in this section. The first requirement is the correctness. That is, the data owner can always successfully verify the search result returned by the honest server.
(Correctness).
Let λ be a security parameter and let Δ be a dictionary including all possible keywords. A verifiable DSSE scheme is correct if it satisfies the following requirements:
The second requirement is the memory leakage-resilient (MLR) non-adaptive security. That is, our verifiable DSSE scheme is non-adaptively secure against memory attacks. Following the security definitions from [16], we formalize the definition of MLR non-adaptive security in terms of the real/ideal paradigm.
(MLR non-adaptive security).
Let Π be a verifiable DSSE scheme and λ be a security parameter. Let
Real/ideal security experiments
Real/ideal security experiments
We say that a verifiable DSSE scheme Π is non-adaptively secure against μ-memory attacks if for each probabilistic polynomial time (PPT) μ-non-volatile memory adversary
In above experiments,
The third requirement is the soundness. That is, any tampering with the search result can be detected by the data owner. Let Π be a verifiable DSSE scheme and
Proposed verifiable memory leakage-resilient DSSE scheme
High description
In this paper, we construct a verifiable MLR-DSSE scheme from some cryptographic tools. The goal of our proposed scheme is to provide verifiable search and dynamic updates, while preserving the security against memory attacks. At the same time, we want to achieve a reliable key generation procedure.
To resist memory attacks, we use PUFs and fuzzy extractors as building blocks to generate secret keys in real-time, rather than storing long-term secret keys in non-volatile memory. Given a public parameter s as input, the building block outputs a random string
To achieve a reliable key generation procedure, we introduce a
To support verifiable search and dynamic updates, a verifiable hash table VHT is used as a secure index in our scheme. For each node in VHT, the key is set as the permuted lexicographic order of the keyword, and the value is set as the corresponding encrypted set of identifiers. Firstly, VHT can be seen as a special binary search tree. Therefore, it supports efficient dynamic updates. Secondly, VHT also can be seen as a special Merkle hash tree. Therefore, the correctness and completeness of the search result can be verified through the computation of a new root node hash from the search path and a comparison of it to the root node hash returned from the cloud server. Besides, we bind the root node hash to a counter using a MAC function. This counter denotes the update times. There are two reasons for this binding operation. One is to prevent the cloud server from forging the root node hash. The other is to prevent the cloud server from returning previous search results after an update. The cloud server should compute a signature on the latest counter to ensure the counter is valid.
Notation definitions
To help understand our proposed scheme, we summarize the descriptions of symbols used throughout this paper in Table 2. For
Notation definitions
Notation definitions
In this section, we proceed to the details of the construction of our verifiable MLR-DSSE scheme. Let
Let
The data owner randomly selects k
Construct an invert index
Look-up table.
Build encrypted documents set
The data owner sends T and ID to the cloud server. Afterwards, the cloud server computes a signature
Given a keyword
Parse the index
Note that the proof τ includes the search path from the root node to the enclosing nodes, the children nodes of the enclosing nodes and the siblings of each node on the search path.
When obtaining the search result
If accepted
If accepted
Let

Search algorithm
Security analysis
Firstly, we prove the correctness of our verifiable MLR-DSSE scheme through the correctness of the cryptographic tools used in our scheme.
The proposed verifiable MLR-DSSE scheme is correct.
Given the trapdoor
Secondly, we prove that our verifiable MLR-DSSE scheme is non-adaptively secure against full memory attacks by reduction. According to the simulation-based Definition 4, the proof of the following theorem is equivalent to constructing a PPT simulator
If each
For each PPT full non-volatile memory adversary Simulating Simulating Simulating Simulating
We now prove that
Therefore, the proposed verifiable MLR-DSSE scheme is non-adaptively secure against full memory attacks. □
Finally, we prove the soundness of our verifiable MLR-DSSE scheme by contradiction. In the above proof, we have proved that a PPT full non-volatile memory adversary cannot obtain secret keys. Therefore, if there exists a PPT adversary
If each
For each PPT full non-volatile memory adversary
In this section, we compare the proposed scheme with the schemes by Kurosawa et al. [27] and Dai et al. [17], respectively. Firstly, our scheme achieves memory leakage-resilience and verifiability simultaneously. Secondly, our scheme is efficient since the computational resources invested by the client is independent on the number of documents. Furthermore, there is no modular exponentiation or symmetric homomorphic encryption [35] in our scheme. Additionally, because our scheme just needs to store a signature and a counter locally, the space complexity is small. However, the client in scheme [17] is required to store a table of size
Comparison among three schemes
Comparison among three schemes
Table 3 presents the comparison among the three schemes. In this table, n is the number of documents in

Efficiency comparison.
In this section, we provide a thorough experimental evaluation of the proposed scheme. We implement the experiments using Java language on a Windows laptop equipped with a 2.60 GHz Intel(R) Core(R) CPU and 8G RAM. We simulate both the client and the server on this Windows machine.
The time cost of building the index, search, verification and addition for scheme [17] and our scheme are shown in Fig. 4. In this simulation experiment, we set the number of keywords in the dictionary to 40000 for both schemes, and set
Conclusion
The primitive of searchable symmetric encryption is useful for solving the problem of how to implement keyword queries of encrypted data. However, the existing schemes either suffer from memory attacks or do not support the verification of search results. In this paper, we first propose a dynamic searchable symmetric encryption scheme from PUFs and a verifiable hash table, which is not only verifiable but also secure against memory attacks. Besides, while accounting for the physical properties of PUFs, we introduce a secret sharing technique in our scheme to make key generation highly reliable. Finally, we demonstrate that our scheme can achieve the desired security requirements and is sufficiently efficient.
Footnotes
Acknowledgements
This work is supported by National Natural Science Foundation of China (Nos. 61572382 and 61702401), Key Project of Natural Science Basic Research Plan in Shaanxi Province of China (No. 2016JZ021), China 111 Project (No. B16037), China Postdoctoral Science Foundation (No. 2017M613083), Guangxi Colleges and Universities Key Laboratory of Cloud Computing and Complex Systems (No. YF17103), Guangxi Cooperative Innovation Center of Cloud Computing and Big Data (No. YD17X07) and Guangxi Key Laboratory of Cryptography and Information Security (No. GCIS201606).
