FoundationDB (FDB) is a distributed key-store with strong ACID guarantees (Atomicity, Consistency, Isolation, Distributed). It is widely used to store users' documents in the cloud. The users want to store and query their documents in encrypted form since they do not trust the server. Preventing leakage of documents and query results is the purpose of the project.
The core vision of this project is to develop a search algorithm that can search documents on the cloud (in FDB) without leakage.
The project is divided into the following steps:
The idea system can:
If the project is successful, the open source project will hopefully become a safe service for users of FDB.
Users of our project are people who want to store their data/files in the cloud (FDB to be exact) without being leaked during server-side searches. Our users need a search scheme that is efficient while protecting search access patterns.
Specifically, when a user perform a search for a keyword over the files within a folder, the server learns only that a search happens in that folder, but does not learn which documents match the search, the number of documents that match, or other information about the keyword.
The project will have a Java interface to FDB. The project will implement the Clusion encrypted search algorithm with Java and FDB.The project will have a Go interface to FDB. The project will implement the Dory encrypted search algorithm with Go and FDB.
The project scope includes testing the two encryption search algorithms on our local machines. We will also test the algorithms on MOC. We will have an analysis comparing the two algorithms in terms of their space, speed, and security. We will compare them using varying dataset sizes, number of parallel FDB queries, storage schemes, cluster sizes, and query complexities.
Encripted search is becoming more necessary for security in this day and age.
FDB works as follows:
Client loads the data into the FDB database which is then encrypted and is readily available for parsing.
1. user loads a file (ex. apple) ______________________________________ Client --------------------> | Foundation Data Base (FDB) | | | | | |______________________________________| 2. The file gets encrypted and FDB becomes indexable ______________________________________ Client --------------------> | Foundation Data Base (FDB) | | a p | | p l l e | |______________________________________| 3. The file is stored in the FDB
Our job is to: 1) Load Files into FDB 2) Update Files (delete, upload) 3) Search Files
We then have to evaluate the algorithm for its:
By the end of the project, we as a team expect to test the encrypted search algorithms on MOC and deliver the following results:
1) Load files (the dataset to search) into FDB 2) Load index into FDB 3) Update index with new files 4) Query for token, return files
Remember that you can always add features at the end of the semester, but you can't go back in time and gain back time you spent on features that you couldn't complete.
For more help on markdown, see https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet