Confidential FPGA Code Verification via Trusted Execution Environment

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current FPGA implementations lack isolation between codes from different users, leading to potential interference and security risks, such as permanent denial of service (pDOS) and intellectual property exposure, which hinders the adoption of FPGA cloud services due to vulnerabilities in malicious or buggy code and the need to protect sensitive user data.

Innovation Solution

A trusted execution environment (TEE) is established to encrypt and integrity protect FPGA code using a policy-defined framework, ensuring confidentiality and integrity through secure attestation and authentication, allowing only compliant code to be loaded onto the FPGA while maintaining user control over code exposure.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If FPGA code from different users is allowed to run without isolation, then resource utilization and service efficiency are improved, but security risks and intellectual property exposure increase

Engineering Contradiction:
Improveservice efficiencyVSAvoidsecurity risks
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

The patent segments the FPGA configuration process into separate encrypted code streams, each protected with unique encryption keys. Multiple users' code is divided into isolated configuration segments that are individually encrypted and authenticated, preventing interference and security breaches while allowing concurrent execution on the same FPGA device.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a trusted execution environment (TEE) as an intermediary between code upload and FPGA configuration. The TEE performs confidential verification, encryption, and authentication of code before it reaches the FPGA, acting as a security mediator that enables multi-tenant usage while preventing pDOS attacks and IP exposure.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If code verification and security checks are performed, then security and reliability are improved, but processing time and system complexity increase

Engineering Contradiction:
Improvecode securityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent performs code encryption and authentication in advance during the code upload phase, before the code is loaded onto the FPGA. The trusted execution environment completes all security verification, signing, and integrity protection beforehand, so that the FPGA itself only needs to perform simple verification of authentication tags, significantly reducing on-device complexity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates authenticated copies of the original code with attached authentication tags and encryption. Instead of modifying the FPGA hardware to perform complex verification, the system generates verified copies of the code that contain built-in security metadata, allowing simple verification processes while maintaining high reliability.

Inventive Principle:
Principle #26Copying

3Loss of information

If encryption and integrity protection are applied to FPGA code, then confidentiality and integrity are improved, but processing overhead and energy consumption increase

Engineering Contradiction:
Improvecode confidentialityVSAvoidprocessing overhead
Core Design Contradiction:
Loss of informationVSUse of energy by moving object

Solution Approach 1:

The patent performs the computationally intensive encryption and integrity protection operations in advance during code upload, before the code is deployed to the FPGA. The trusted execution environment completes all heavy cryptographic processing beforehand, so that the FPGA only needs to perform lightweight verification of authentication tags during configuration, significantly reducing on-device energy consumption and processing overhead.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10972277B2Confidential verification of FPGA code
Publication Date: 2021.04.06 ALTERA CORP
  • US10972277B2 patent drawing
  • US10972277B2 patent drawing
  • US10972277B2 patent drawing

AI summary

The present disclosure provides confidential verification for FPGA code. Confidential verification for FPGA code can include receiving the policy from a cloud service provider (CSP) computing device, wherein the policy comprises a plurality of policy requirements used to determine whether to configure the FPGA using the code, receiving the code and the code encryption key from the user computing device, determining whether the code fulfills the plurality of policy requirements, and when the code fulfills the plurality of policy requirements encrypting and integrity protect the code using the code encryption key and providing the encrypted and integrity protected code to an accelerator loader to configure the FPGA using the code.