Searchable symmetric encryption
Searchable symmetric encryption 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 , where each document is viewed as a set of keywords from a keyword space. Given the encryption key and a keyword, one can generate a search token with which the encrypted data collection can be searched for. The result of the search is the subset of encrypted documents that contain the keyword.Static SSE
A static SSE scheme consists of three algorithms that work as follows:- takes as input a security parameter and a document collection and outputs a symmetric key, an encrypted index, and an encrypted document collection
- takes as input the secret key and a keyword and outputs a search token
- takes as input the encrypted index, the encrypted document collection and a search token and outputs a set of encrypted documents
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 where, and are as in the static case and the remaining algorithms work as follows:- takes as input the secret key and a new document and outputs an insert token
- takes as input the encrypted document collection and an insert token and outputs an updated encrypted document collection
- takes as input the secret key and a document identifier and outputs a delete token
- takes as input the encrypted data collection and a delete token and outputs an updated encrypted data collection
An SSE scheme that does not support and 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 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, where. Goh and Chang and Mitzenmacher gave new SSE constructions with search algorithms that run in time, where is the number of documents. Curtmola, Garay, Kamara and Ostrovsky later proposed two static constructions with search time, where is the number of documents that contain, which is optimal. This work also proposed a semi-dynamic construction with search time, where is the number of updates. An optimal dynamic SSE construction was later proposed by Kamara, 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. Islam, Kuzu and Kantarcioglu described the first leakage attack.
All the previously mentioned constructions support single keyword search. Cash, Jarecki, Jutla, Krawczyk, Roşu and Steiner proposed an SSE scheme that supports conjunctive search in sub-linear time in. The construction can also be extended to support disjunctive and Boolean searches that can be expressed in searchable normal form 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.
Security in the Persistent Model
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.