-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Some questions about the use of enclave #161
Comments
Hi @DylanWangWQF, thanks for your interest in our project! Regarding loading files inside the enclave, we load the host file system module when initializing an enclave, which enables us to call functions like For some more information on the oblivious primitives we use, please see section 6 of our paper. |
Many thanks for your help! @chester-leung I will study this and figure out how it works. |
Hi @chester-leung , Sry for reopening this issue, I have another question. Now, I want to link the NTL and GMP library inside the enclave. Could you tell me how do you use other libraries inside the enclave in this project? For the Thank you in advance! |
@DylanWangWQF in general, if you want to link other libraries into the enclave, you can link them in CMakeLists.txt. See here for an example of how we linked an external library (spdlog) for usage within the enclave. Some libraries may not be completely compatible to work inside the enclave, e.g. some syscalls aren't supported, so you may have to go in and remove/modify those functions if you don't need them. My colleague @podcastinator will answer your question about AVX2 instructions. What is your use case here? Maybe we can work with you to build something if you're willing to contribute back to the open source. |
Hi @DylanWangWQF, yes, you can use the AVX2 instructions directly inside the enclave. Please see https://github.com/mc2-project/secure-xgboost/blob/master/include/enclave/obl_primitives.h for examples. (You will need to set the CMake flag USE_AVX2 to enable the use of AVX instructions inside the enclave -- this causes the enclave target to be compiled with the requisite |
@podcastinator @chester-leung |
@DylanWangWQF Out of curiosity, if you can tell, why are you using homomorphic encryption inside of an enclave? I haven't seen such a use-case before. |
@ryanleh I'd like to do some pre-computation based on HE outside the enclave. Then decrypt it inside the enclave. May I ask how can I use the module |
@DylanWangWQF See here for more info on |
Got it! Thank you! Line 30 in 96eb1a9
|
@chester-leung Line 27 in 96eb1a9
This is much larger than what existing SGX1 hardware can provide. And in your paper, it's 112Mb enclave page cache. So is this available in the project for the large program? BTW, I'm wondering how does the enclave process large datasets, e.g, much large than 128MB? |
I propose this question is because the enclave image is too big after compiling inside the enclave.
|
@DylanWangWQF the 112MB limit only applies to the physical memory (i.e., the portion of the RAM dedicated to the EPC). This does not restrict the amount of virtual memory available to the enclave application, and the selected heap size determines the amount of virtual memory that the app has its disposal. |
Hi, everyone!
I have a question about the operations inside the enclave.
As far as I know, OpenEnclave currently does not support
fstream
inside the enclave. So how should we load the file content inside the enclave? (C/C++). And for other functions which are not supported in OpenEnclave? Are there some Docs to introduce these codes?BTW, are there any Docs to introduce the use of Oblivious Primitives such as
oassign()
,osort()
in secure-XGBoost?Thank you in advance!
The text was updated successfully, but these errors were encountered: