This is the implementation of the final scheme described in the Practical Techniques for Searches on Encrypted Data. It is a simple, command-line application developed in Python 2.7.
Put the input files in
/raw and run the script. The script applies encryption algorithm and put the encrypted files
/ciphertext. To search, enter a keyword and search algorithm looks into the encrypted files and gives the result back.
There are sample input files and the respective encrypted files. To start, take a look into
/raw/ to get keywords.
$ python scheme.py Enter a word to search: tarantula Not present in input0.enc Present in input1.enc Enter a word to search: rooster Present in input0.enc Not present in input1.enc Enter a word to search: this Present in input0.enc Present in input1.enc Enter a word to search: lion Not present in input0.enc Not present in input1.enc Enter a word to search: // Press Ctrl+D to exit Quitting... $
This work was a part of the master thesis from TU Dresden under the supervision of Dr. Josef Spillner and Martin Beck.
by Dawn Xiaodong Song, David Wagner, and Adrian Perrig.
In this paper, the authors develop a set of algorithms that allow searches over encrypted data. These algorithms provide a linear search (O(n)) for each document and introduce relatively little space overhead. Proofs of the security of their model are also included which show that the server the data is hosted on “cannot learn anything about the plaintext given only the ciphertext”.