7

Suppose I am storing a number of encrypted documents in a database. I would like to make it possible to identify the subset of documents whose contents match user-specified search terms without a) maintaining a plaintext index or b) decrypting documents on the fly. Is there any way to accomplish this securely?

By the same token, I'm wondering if a collection of encrypted documents can be sorted according to an encrypted attribute (e.g., document title) without first decrypting all attribute values.

pg1989
  • 4,636
  • 23
  • 42
nw.
  • 173
  • 5
  • 1
    this might be the answer I'm looking for: http://crypto.stanford.edu/~eujin/papers/secureindex/secureindex.pdf – nw. Aug 03 '12 at 19:34
  • 1
    http://www.cs.columbia.edu/~mariana/papers/sads_ccsw.pdf might be worth looking at too. – mikeazo Aug 03 '12 at 22:19

1 Answers1

10

Yes. If you encrypt the documents with this purpose in mind (you have to use a special kind of encryption algorithm), then yes, it is possible to do this, for certain kinds of search queries.

There is a rich research literature on this topic. The buzzword is "search on encrypted data". I'll point you to a few sample papers in this space. Do a literature search, and you should be able to find many more for yourself.

The best scheme for your situation will depend upon your application requirements. If you have a read-mostly database (updates are rarer than searches), then I would suggest a scheme based upon encrypted indexes. If you need to make modifications frequently, or if searching is relatively rare, the other schemes might be preferable.

pg1989
  • 4,636
  • 23
  • 42
D.W.
  • 36,365
  • 13
  • 102
  • 187
  • I'll put this in a comment because it's not directly related: 'Structured Encryption and Controlled Disclosure' Chase and Kamara 2011 – pg1989 Aug 21 '13 at 18:54