Encapsulated Search Index: Public-Key, Sub-linear, Distributed, and Delegatable

Abstract

We build the first sub-linear (in fact, potentially constant-time) public-key searchable encryption system: − server can publish a public key PKPK. − anybody can build an encrypted index for document DD under PKPK. − client holding the index can obtain a token zwz_w from the server to check if a keyword ww belongs to DD. − search using zwz_w is almost as fast (e.g., sub-linear) as the non-private search. − server granting the token does not learn anything about the document DD, beyond the keyword ww. − yet, the token zwz_w is specific to the pair (D,w)(D, w): the client does not learn if other keywords w2˘7ww\u27\neq w belong to DD, or if w belongs to other, freshly indexed documents D2˘7D\u27. − server cannot fool the client by giving a wrong token zwz_w. We call such a primitive Encapsulated Search Index (ESI). Our ESI scheme can be made (t,n)(t, n)- distributed among nn servers in the best possible way: non-interactive, verifiable, and resilient to any coalition of up to (t1)(t − 1) malicious servers. We also introduce the notion of delegatable ESI and show how to extend our construction to this setting. Our solution — including public indexing, sub-linear search, delegation, and distributed token generation — is deployed as a commercial application by Atakama

    Similar works