🖥️

What is Intel SGX

2020/11/19に公開

Summary

TEE is trusted enclaved environment. SGX is one of the implementations of TEE. SGX enables execution of code in protected and private environment. Encrypted programs are executed inside SGX so even if the owner of SGX can't see the data. SGX returns the result which is called report and hash of the program with their unique signature.

Client verify signature through Attestation Service (REST API service provided by Intel).

Process

  1. Client send encrypted request
  2. Server send their programs and encrypted data(without decrypting) to SGX
  3. SGX decrypt encrypted data and execute code and return data
    • Data returned by SGX includes hash of the program, result value and signature
    • SGX cannot be accessed by server because protected by Hardware.
  4. Server return data to client
  5. Client verify signature through API provided by Intel.
  6. Client verify hash by comparing hash of source code.
    • Client should be accessible to the source code and binary.

Applicability

  • When you want to prove validity of data without revealing the detail.

Current state of development

  • Not yet fully tested by real usages
  • There are lot of issued to overcome

Corda: Intro to SGX: from HTTP to enclaves
https://www.corda.net/blog/intro-to-sgx-from-http-to-enclaves/

Lepidum: Intel SGX / Open Enclave SDK

https://lepidum.co.jp/blog/2020-04-07/intel-sgx/

Stack overflow: What is the link, if any, between Zero Knowledge Proof (ZKP) and Homomorphic encryption?

https://crypto.stackexchange.com/questions/57747/what-is-the-link-if-any-between-zero-knowledge-proof-zkp-and-homomorphic-enc

Qiita: Intel SGX入門 - SGX基礎知識編
https://qiita.com/Cliffford/items/2f155f40a1c3eec288cf

Discussion