Searchable Symmetric Encryption
   HOME

TheInfoList



OR:

Searchable symmetric encryption (SSE) is a form of encryption that allows one to efficiently search over a collection of encrypted documents or files without the ability to decrypt them. SSE can be used to outsource files to an untrusted cloud storage server without ever revealing the files in the clear but while preserving the server's ability to search over them.


Description

A searchable symmetric encryption scheme is a symmetric-key encryption scheme that encrypts a collection of documents \mathbf = (\mathrm, \dots, \mathrm), where each document \mathrm \subseteq \mathbb is viewed as a set of keywords from a keyword space \mathbb. Given the encryption key K and a keyword w \in \mathbb, one can generate a search token tk with which the encrypted data collection can be searched for w. The result of the search is the subset of encrypted documents that contain the keyword w.


Static SSE

A static SSE scheme consists of three algorithms \mathsf that work as follows: * \mathsf takes as input a security parameter k and a document collection \mathbf and outputs a symmetric key K, an encrypted index \mathbf, and an encrypted document collection \mathbf * \mathsf takes as input the secret key K and a keyword w and outputs a search token tk * \mathsf takes as input the encrypted index \mathbf, the encrypted document collection \mathbf and a search token tk and outputs a set of encrypted documents \mathbf \subseteq \mathbf A static SSE scheme is used by a client and an untrusted server as follows. The client encrypts its data collection using the \mathsf algorithm which returns a secret key K and an encrypted document collection \mathbf. The client keeps K secret and sends \mathbf and \mathbf to the untrusted server. To search for a keyword w, the client runs the \mathsf algorithm on K and w to generate a search token tk which it sends to the server. The server runs Search with \mathbf, \mathbf, and tk and returns the resulting encrypted documents back to the client.


Dynamic SSE

A dynamic SSE scheme supports, in addition to search, the insertion and deletion of documents. A dynamic SSE scheme consists of seven algorithms \mathsf where \mathsf, \mathsf and \mathsf are as in the static case and the remaining algorithms work as follows: * \mathsf takes as input the secret key K and a new document \mathrm and outputs an insert token itk * \mathsf takes as input the encrypted document collection EDC and an insert token itk and outputs an updated encrypted document collection \mathbf * \mathsf takes as input the secret key K and a document identifier id and outputs a delete token dtk * \mathsf takes as input the encrypted data collection \mathrm and a delete token dtk and outputs an updated encrypted data collection \mathbf To add a new document \mathrm the client runs \mathsf on K and \mathrmto generate an insert token itk which it sends to the server. The server runs \mathsf with \mathbf and itk and stores the updated encrypted document collection. To delete a document with identifier id, the client runs the \mathsf algorithm with K and id to generate a delete token dtk which it sends to the server. The server runs \mathsf with \mathbf and dtk and stores the updated encrypted document collection. An SSE scheme that does not support \mathsf and \mathsf is called semi-dynamic.


History of Searchable Symmetric Encryption

The problem of searching on encrypted data was considered by Song, Wagner and Perrig though previous work on
Oblivious RAM An oblivious RAM (ORAM) simulator is a compiler that transforms algorithms in such a way that the resulting algorithms preserve the input-output behavior of the original algorithm but the distribution of memory access pattern of the transformed al ...
by Goldreich and Ostrovsky could be used in theory to address the problem. This work proposed an SSE scheme with a search algorithm that runs in time O(s), where s = , \mathbf, . Goh and Chang and Mitzenmacher gave new SSE constructions with search algorithms that run in time O(n), where n is the number of documents. Curtmola, Garay,
Kamara Kamara may refer to: ;Places * Lato pros Kamara or simply Kamara, an ancient city on Crete * Kamara, Estonia, a village * Kämara, Estonia, a village * Kamara, Arcadia, Greece, a village * Kamara, Corfu, Greece, a village in the municipal unit Ach ...
and Ostrovsky later proposed two static constructions with O(\mathrm ) search time, where \mathrm is the number of documents that contain w, which is optimal. This work also proposed a semi-dynamic construction with O(\mathrm\cdot \log(u)) search time, where u is the number of updates. An optimal dynamic SSE construction was later proposed by
Kamara Kamara may refer to: ;Places * Lato pros Kamara or simply Kamara, an ancient city on Crete * Kamara, Estonia, a village * Kämara, Estonia, a village * Kamara, Arcadia, Greece, a village * Kamara, Corfu, Greece, a village in the municipal unit Ach ...
, Papamanthou and Roeder. Goh and Chang and Mitzenmacher proposed security definitions for SSE. These were strengthened and extended by Curtmola, Garay, Kamara and Ostrovsky who proposed the notion of adaptive security for SSE. This work also was the first to observe leakage in SSE and to formally capture it as part of the security definition. Leakage was further formalized and generalized by Chase and
Kamara Kamara may refer to: ;Places * Lato pros Kamara or simply Kamara, an ancient city on Crete * Kamara, Estonia, a village * Kämara, Estonia, a village * Kamara, Arcadia, Greece, a village * Kamara, Corfu, Greece, a village in the municipal unit Ach ...
. Islam, Kuzu and Kantarcioglu described the first leakage attack. All the previously mentioned constructions support single keyword search. Cash, Jarecki, Jutla, Krawczyk, Rosu and Steiner proposed an SSE scheme that supports conjunctive search in sub-linear time in n. The construction can also be extended to support disjunctive and Boolean searches that can be expressed in searchable normal form (SNF) in sub-linear time. At the same time, Pappas, Krell, Vo, Kolesnikov, Malkin, Choi, George, Keromytis and Bellovin described a construction that supports conjunctive and all disjunctive and Boolean searches in sub-linear time.


Security

SSE schemes are designed to guarantee that the untrusted server cannot learn any partial information about the documents or the search queries beyond some well-defined and reasonable leakage. The leakage of a scheme is formally described using a leakage profile which itself can consists of several leakage patterns. SSE constructions attempt to minimize leakage while achieving the best possible search efficiency. SSE security can be analyzed in several adversarial models but the most common are: * the persistent model, where an adversary is given the encrypted data collection and a transcript of all the operations executed on the collection; * the snapshot model, where an adversary is only given the encrypted data collection (but possibly after each operation).


Security in the Persistent Model

In the persistent model, there are SSE schemes that achieve a wide variety of leakage profiles. The most common leakage profile for static schemes that achieve single keyword search in optimal time is \Lambda_ which reveals the number of documents in the collection, the size of each document in the collection, if and when a query was repeated and which encrypted documents match the search query. It is known, however, how to construct schemes that leak considerably less at an additional cost in search time and storage. When considering dynamic SSE schemes, the state-of-the-art constructions with optimal time search have leakage profiles that guarantee forward privacy which means that inserts cannot be correlated with past search queries.


Security in the Snapshot Model

In the snapshot model, efficient dynamic SSE schemes with no leakage beyond the number of documents and the size of the collection can be constructed. When using an SSE construction that is secure in the snapshot model one has to carefully consider how the scheme will be deployed because some systems might cache previous search queries.


Cryptanalysis

A leakage profile only describes the leakage of an SSE scheme but it says nothing about whether that leakage can be exploited or not. Cryptanalysis is therefore used to better understand the real-world security of a leakage profile. There is a wide variety of attacks working in different adversarial models, based on a variety of assumptions and attacking different leakage profiles.


See also

* Homomorphic encryption *
Oblivious RAM An oblivious RAM (ORAM) simulator is a compiler that transforms algorithms in such a way that the resulting algorithms preserve the input-output behavior of the original algorithm but the distribution of memory access pattern of the transformed al ...
* Structured encryption * Deterministic encryption


References

{{reflist Cryptographic primitives