This repository contains doubly oblivious data structures. The open-source is based on our following paper:
Ghareh Chamani, Javad , Ioannis Demertzis, Dimitrios Papadopoulos, Charalampos Papamanthou, and Rasool Jalili. "GraphOS: Towards Oblivious Graph Processing." accepted in VLDB 2023
Our schemes were tested with the following configuration
- 64-bit Ubuntu 18.04
- g++ = 7.5
- SGX SDK = 2.4
- SGX Driver = 2.6
Install IntelSGX Driver from https://github.com/intel/linux-sgx-driver/archive/refs/tags/sgx_driver_2.6.zip Install SGX SDK 2.4: https://github.com/intel/linux-sgx/archive/refs/tags/sgx_2.4.zip Install the above binary file in /opt/intel Execute the following command to allow the app to find libsample_crypto.so: sudo cp sample_libcrypto/libsample_libcrypto.so /usr/lib
Oblix++, Omix++, GraphOS, and GraphOS parallel version are provided in four separate subfolders. Use the following instruction to build them:
Compiling: Make Running: ./app
For a sample test case, create a file (e.g., V13E-256.in) in the datasets folder and describe the graph in the following format:
source destination (1 for vertex and 0 for edge)
for example, a full graph with 4 nodes will be like this:
1 1 1
2 2 1
3 3 1
4 4 1
1 2 0
1 3 0
1 4 0
2 3 0
2 4 0
3 4 0
Be careful not add an extra newline at the end of the file
Feel free to reach out to me to get help in setting up our code or any other queries you may have related to our paper: [email protected]