Details can be found in here.
Project:
- App/App.cpp contains the untrusted code.
- Enclave/Analytics/ contain the data analytics used in various experiments in the paper.
Settings (in App/App.cpp):
- basedir: Directory of input data files.
- Experiments settings on chunk/minibatch size, proportion of dummy data instances, number of clusters in K-Means clustering.
- Class label prediction analytics include Decision Tree, Naive Bayes and K-means. Each classifier can be run by choosing appropriate code, as given in App.cpp under ocall_manager function.
- Install Intel(R) SGX SDK for Linux* OS
- Specify data directory in basedir of App/App.cpp.
- Also specify appropriate settings in App/App.cpp file.
- Build the project with the prepared Makefile: a. Hardware Mode, Debug build: $ make SGX_MODE=HW SGX_DEBUG=1 b. Hardware Mode, Pre-release build: $ make SGX_MODE=HW SGX_PRERELEASE=1 c. Hardware Mode, Release build: $ make SGX_MODE=HW d. Simulation Mode, Debug build: $ make SGX_DEBUG=1 e. Simulation Mode, Pre-release build: $ make SGX_PRERELEASE=1 f. Simulation Mode, Release build: $ make
- Execute the binary directly: $ ./app