What is Intel SGX

2 min read読了の目安(約1900字

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