Searchable symmetric encryption: Difference between revisions

Content deleted Content added
No edit summary
Tags: Reverted Mobile edit Mobile web edit
Tags: Mobile edit Mobile web edit
 
(7 intermediate revisions by 6 users not shown)
Line 1:
{{Short description|System allowing searching of encrypted documents}}
[[File:Searchable Symmetric Encryption (SSE) scheme.png|thumb|400x400px|Keyword search using an SSE scheme]]
'''symmetric 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.<ref name=":0">{{Cite book|last1=Dawn Xiaoding Song|last2=Wagner|first2=D.|last3=Perrig|first3=A.|title=Proceeding 2000 IEEE Symposium on Security and Privacy. S&P 2000 |chapter=Practical techniques for searches on encrypted data |chapter-url=http://dx.doi.org/10.1109/secpri.2000.848445|year=2000|pages=44–55|publisher=IEEE Comput. Soc|doi=10.1109/secpri.2000.848445|isbn=0-7695-0665-8|s2cid=2829840}}</ref><ref name=":1">{{Cite book|last1=Curtmola|first1=Reza|last2=Garay|first2=Juan|last3=Kamara|first3=Seny|last4=Ostrovsky|first4=Rafail|title=Proceedings of the 13th ACM conference on Computer and communications security |chapter=Searchable symmetric encryption |date=2006-10-30|chapter-url=https://doi.org/10.1145/1180405.1180417|series=CCS '06|___location=Alexandria, Virginia, USA|publisher=Association for Computing Machinery|pages=79–88|doi=10.1145/1180405.1180417|isbn=978-1-59593-518-2|s2cid=961719}}</ref><ref>{{Cite journal |last1=Amorim |first1=Ivone |last2=Costa |first2=Ivan |date=2023-07-01 |title=Leveraging Searchable Encryption through Homomorphic Encryption: A Comprehensive Analysis |journal=Mathematics |language=en |volume=11 |issue=13 |pages=2948 |doi=10.3390/math11132948 |doi-access=free |issn=2227-7390|arxiv=2306.14407 }}</ref> 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 ==
Line 13:
* <math>\mathsf{Search}</math> takes as input the encrypted index <math>\mathbf{I}</math>, the encrypted document collection <math>\mathbf{ED}</math> and a search token <math>tk</math> and outputs a set of encrypted documents <math>\mathbf{R} \subseteq \mathbf{ED}</math>
A static SSE scheme is used by a client and an untrusted server as follows. The client encrypts its data collection using the <math>\mathsf{Setup}</math> algorithm which returns a secret key <math>K</math>, an encrypted index <math>\mathbf{I}</math> and an encrypted document collection <math>\mathbf{ED}</math>. The client keeps <math>K</math> secret and sends <math>\mathbf{ED}</math> and <math>\mathbf{I}</math> to the untrusted server. To search for a keyword <math>w</math>, the client runs the <math>\mathsf{Token}</math> algorithm on <math>K</math> and <math>w</math> to generate a search token <math>tk</math> which it sends to the server. The server runs Search with <math>\mathbf{ED}</math>, <math>\mathbf{I}</math>, and <math>tk</math> 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 <math>\mathsf{SSE = (Setup, Token, Search, InsertToken, Insert, DeleteToken, Delete)}</math> where <math>\mathsf{Setup}</math>, <math>\mathsf{Token}</math> and <math>\mathsf{Search}</math> are as in the static case and the remaining algorithms work as follows:
* <math>\mathsf{InsertToken}</math> takes as input the secret key <math>K</math> and a new document <math>\mathrm{D_{n+1}}</math> and outputs an insert token <math>itk</math>
* <math>\mathsf{Insert}</math> takes as input the encrypted document collection EDC<math>\mathbf{ED}</math> and an insert token <math>itk</math> and outputs an updated encrypted document collection <math>\mathbf{ED'}</math>
* <math>\mathsf{DeleteToken}</math> takes as input the secret key <math>K</math> and a document identifier <math>id</math> and outputs a delete token <math>dtk</math>
* <math>\mathsf{Delete}</math> takes as input the encrypted data collection <math>\mathrmmathbf{EDCED}</math> and a delete token <math>dtk</math> and outputs an updated encrypted data collection <math>\mathbf{ED'}</math>
 
To add a new document <math>\mathrm{D_{n+1}}</math> the client runs <math>\mathsf{InsertToken}</math> on <math>K</math> and <math>\mathrm{D_{n+1}}</math>to generate an insert token <math>itk</math> which it sends to the server. The server runs <math>\mathsf{Insert}</math> with <math>\mathbf{ED}</math> and <math>itk</math> and stores the updated encrypted document collection. To delete a document with identifier <math>id</math>, the client runs the <math>\mathsf{DeleteToken}</math> algorithm with <math>K</math> and <math>id</math> to generate a delete token <math>dtk</math> which it sends to the server. The server runs <math>\mathsf{Delete}</math> with <math>\mathbf{ED}</math> and <math>dtk</math> and stores the updated encrypted document collection.
Line 31:
Goh<ref name=":2" /> and Chang and [[Michael Mitzenmacher|Mitzenmacher]]<ref name=":3" /> proposed security definitions for SSE. These were strengthened and extended by Curtmola, Garay, Kamara and Ostrovsky<ref name=":1" /> 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 [[Seny Kamara|Kamara]].<ref>{{Cite book|last1=Chase|first1=Melissa|last2=Kamara|first2=Seny|title=Advances in Cryptology - ASIACRYPT 2010 |chapter=Structured Encryption and Controlled Disclosure |date=2010|editor-last=Abe|editor-first=Masayuki|series=Lecture Notes in Computer Science|volume=6477 |language=en|___location=Berlin, Heidelberg|publisher=Springer|pages=577–594|doi=10.1007/978-3-642-17373-8_33|isbn=978-3-642-17373-8|doi-access=free}}</ref> Islam, Kuzu and Kantarcioglu described the first leakage attack.<ref>{{Cite journal|last1=Islam|first1=Mohammad|last2=Kuzu|first2=Mehmet|last3=Kantarcioglu|first3=Murat|title=Access Pattern disclosure on Searchable Encryption:Ramification, Attack and Mitigation|url=https://www.ndss-symposium.org/wp-content/uploads/2017/09/06_1.pdf|journal=Network and Distributed System Security (NDSS) Symposium}}</ref>
 
All the previously mentioned constructions support single keyword search. Cash, Jarecki, Jutla, [[Hugo Krawczyk|Krawczyk]], RosuRoşu and Steiner<ref>{{Cite book|last1=Cash|first1=David|last2=Jarecki|first2=Stanislaw|last3=Jutla|first3=Charanjit|last4=Krawczyk|first4=Hugo|last5=Roşu|first5=Marcel-Cătălin|last6=Steiner|first6=Michael|title=Advances in Cryptology – CRYPTO 2013 |chapter=Highly-Scalable Searchable Symmetric Encryption with Support for Boolean Queries |date=2013|editor-last=Canetti|editor-first=Ran|editor2-last=Garay|editor2-first=Juan A.|series=Lecture Notes in Computer Science|volume=8042 |language=en|___location=Berlin, Heidelberg|publisher=Springer|pages=353–373|doi=10.1007/978-3-642-40041-4_20|isbn=978-3-642-40041-4|doi-access=free}}</ref> proposed an SSE scheme that supports conjunctive search in sub-linear time in <math>n</math>. 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, [[Tal Malkin|Malkin]], Choi, George, Keromytis and [[Steven M. Bellovin|Bellovin]]<ref>{{Cite book|last1=Pappas|first1=Vasilis|last2=Krell|first2=Fernando|last3=Vo|first3=Binh|last4=Kolesnikov|first4=Vladimir|last5=Malkin|first5=Tal|last6=Choi|first6=Seung Geol|last7=George|first7=Wesley|last8=Keromytis|first8=Angelos|last9=Bellovin|first9=Steve|title=2014 IEEE Symposium on Security and Privacy |chapter=Blind Seer: A Scalable Private DBMS |date=May 2014|pages=359–374 |publisher=IEEE|doi=10.1109/sp.2014.30|isbn=978-1-4799-4686-0 |s2cid=9165575 |doi-access=free}}</ref> described a construction that supports conjunctive and all disjunctive and Boolean searches in sub-linear time.
 
== Security ==
Line 50:
 
=== 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.<ref>{{Cite book|last1=Yao|first1=Jing|last2=Zheng|first2=Yifeng|last3=Guo|first3=Yu|last4=Wang|first4=Cong|title=Proceedings of the 8th International Workshop on Security in Blockchain and Cloud Computing |chapter=SoK: A Systematic Study of Attacks in Efficient Encrypted Cloud Data Search |date=2020-10-06|chapter-url=https://doi.org/10.1145/3384942.3406869|series=SBC '20|___location=New York, NY, USA|publisher=Association for Computing Machinery|pages=14–20|doi=10.1145/3384942.3406869|isbn=978-1-4503-7609-9|s2cid=222179683 }}</ref><ref>{{Cite journal|last1=Kamara|first1=Seny|last2=Kati|first2=Abdelkarim|last3=Moataz|first3=Tarik|last4=Schneider|first4=Thomas|last5=Treiber|first5=Amos|last6=Yonli|first6=Michael|date=2021|title=Cryptanalysis of Encrypted Search with LEAKER - A framework for LEakage AttacK Evaluation on Real-world data|url=https://eprint.iacr.org/2021/1035}}</ref>
 
== See also ==