Searchable symmetric encryption (SSE) is a form of encryption that allows efficient searching over a collection of encrypted documents or files without requiring decryption. SSE can be used to outsource files to an untrusted cloud storage server without revealing the files in plaintext, while preserving the server's ability to perform searches over them.
Description A searchable symmetric encryption scheme is a symmetric-key encryption scheme that encrypts a collection of documents D = ( D 1 , … , D n ) {\displaystyle \mathbf {D} =(\mathrm {D_{1}} ,\dots ,\mathrm {D_{n}} )} , where each document D i ⊆ W {\displaystyle \mathrm {D_{i}} \subseteq \mathbb {W} } is viewed as a set of keywords from a keyword space W {\displaystyle \mathbb {W} } . Given the encryption key K {\displaystyle K} and a keyword w ∈ W {\displaystyle w\in \mathbb {W} } , one can generate a search token t k {\displaystyle tk} with which the encrypted data collection can be searched for w {\displaystyle w} . The result of the search is the subset of encrypted documents that contain the keyword w {\displaystyle w} .
Static SSE A static SSE scheme consists of three algorithms S S E = ( S e t u p , T o k e n , S e a r c h ) {\displaystyle {\mathsf {SSE=(Setup,Token,Search)}}} that work as follows:
S e t u p {\displaystyle {\mathsf {Setup}}} takes as input a security parameter k {\displaystyle k} and a document collection D {\displaystyle \mathbf {D} } and outputs a symmetric key K {\displaystyle K} , an encrypted index I {\displaystyle \mathbf {I} } , and an encrypted document collection E D {\displaystyle \mathbf {ED} }
T o k e n {\displaystyle {\mathsf {Token}}} takes as input the secret key K {\displaystyle K} and a keyword w {\displaystyle w} and outputs a search token t k {\displaystyle tk}
S e a r c h {\displaystyle {\mathsf {Search}}} takes as input the encrypted index I {\displaystyle \mathbf {I} } , the encrypted document collection E D {\displaystyle \mathbf {ED} } and a search token t k {\displaystyle tk} and outputs a set of encrypted documents R ⊆ E D {\displaystyle \mathbf {R} \subseteq \mathbf {ED} }
A static SSE scheme is used by a client and an untrusted server as follows: the client encrypts its data collection using the S e t u p {\displaystyle {\mathsf {Setup}}} algorithm which returns a secret key K {\displaystyle K} , an encrypted index I {\displaystyle \mathbf {I} } , and an encrypted document collection E D {\displaystyle \mathbf {ED} } . The client keeps K {\displaystyle K} secret and sends E D {\displaystyle \mathbf {ED} } and I {\displaystyle \mathbf {I} } to the untrusted server. To search for a keyword w {\displaystyle w} , the client runs the T o k e n {\displaystyle {\mathsf {Token}}} algorithm on K {\displaystyle K} and w {\displaystyle w} to generate a search token t k {\displaystyle tk} which it sends to the server. The server runs Search with E D {\displaystyle \mathbf {ED} } , I {\displaystyle \mathbf {I} } , and t k {\displaystyle tk} and returns the resulting encrypted documents back to the client.
… excerpt ends here. Continue reading the full article.


