The Symmetric Search Over Encrypted Data (SSOED) project is a personal endeavor aimed at implementing the scheme proposed by Dawn Xiaodong Song, David Wagner, and Adrian Perrig in their paper. The project focuses on enabling symmetric search operations over encrypted data, offering a practical solution for secure data retrieval and manipulation while preserving privacy.
-
Symmetric Search: Allows users to perform search operations over encrypted data without compromising data security.
-
Robust Encryption: Implements strong encryption algorithms to ensure that sensitive data remains protected against unauthorized access.
-
Secure Decryption: Provides secure decryption capabilities, ensuring that only authorized users can access decrypted data.
-
Install the Sodium library by following the instructions provided on the official website.
-
Set the environment variables
INCLUDE_DIR
andLIB_DIR
to point to the directory containing the header files and the directory containing the Sodium library, respectively. For example:export INCLUDE_DIR=/path/to/libsodium/include export LIB_DIR=/path/to/libsodium/lib
-
Clone the repository from GitHub:
git clone https://github.com/K0ntr4/Symmetric-Search-Over-Encrypted-Data-C.git
-
Navigate to the project directory:
cd ssoed
-
Compile the program using the provided Makefile:
make all
-
Run the compiled executable:
./ssoed.out
- Sodium Library: A modern, easy-to-use software library for encryption, decryption, signatures, password hashing, and more.
Contributions to the project are welcome! If you have ideas for new features, improvements, or bug fixes, feel free to submit a pull request. Please adhere to the established coding conventions and follow the project's code of conduct.
Contributors are encouraged to follow the style guides enforced by clang-tidy and clang-format. Makefile actions are provided for both tools, but contributors will need to install both packages and run bear make all to generate the configuration file. The bear package is also required for this setup.
To ensure memory safety and detect memory errors, contributors are also encouraged to use the checkmemory
command in the Makefile, which utilizes Valgrind for memory error checks on the compiled program.
Additionally, please ensure that any new code or changes are in line with the principles outlined in the research paper by Dawn Xiaodong Song, David Wagner, and Adrian Perrig, titled "Practical Techniques for Searches on Encrypted Data", as this project aims to implement their scheme for Symmetric Search Over Encrypted Data (SSOED).
This project is licensed under the MIT License. See the LICENSE file for details.
- Special thanks to the developers of the Sodium library for providing a powerful and reliable cryptographic toolkit.
- This project is based on the scheme proposed by Dawn Xiaodong Song, David Wagner, and Adrian Perrig in their paper titled "Practical Techniques for Searches on Encrypted Data."