It is desirable to store data on data storage servers such as mail
servers and file servers in encrypted form to reduce security and
privacy risks. But this usually implies that one has to sacrifice
functionality for security. For example, if a client wishes to retrieve
only documents containing certain words, it was not previously known how
to let the data storage server perform the search and answer the query
without loss of data confidentiality.
In this paper, we describe our cryptographic schemes for the problem of
searching on encrypted data and provide proofs of security for the
resulting crypto systems. Our techniques have a number of crucial
advantages. They are provably secure: they provide provable secrecy for
encryption, in the sense that the untrusted server cannot learn anything
about the plaintext when only given the ciphertext; they provide query
isolation for searches, meaning that the untrusted server cannot learn
anything more about the plaintext than the search result; they provide
controlled searching, so that the untrusted server cannot search for a
word without the user's authorization; they also support hidden queries,
so that the user may ask the untrusted server to search for a secret
word without revealing the word to the server. The algorithms we present
are simple, fast (for a document of length $n$, the encryption and
search algorithms only need O(n) stream cipher and block cipher
operations), and introduce essentially no space and communication
overhead, and hence are practical to use today.