FPGA Virtualization Manager Digital Signature Verification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional virtualization techniques are expensive, vulnerable to security breaches, and tied to specific host-device hardware configurations, limiting their widespread adoption and exposing host devices to vulnerabilities when allowing virtual machines to program field-programmable gate arrays (FPGAs).

Innovation Solution

Implementing a digital signature verification process for FPGA programs to ensure only trusted programs are loaded and executed on FPGAs, using unique identifiers or encryption keys to verify the integrity and trustworthiness of FPGA programs before allowing them to configure FPGAs, thereby preventing malicious or accidental crashes and security breaches.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If conventional virtualization techniques are used to allow virtual machines to program FPGAs, then functionality and versatility are improved, but security vulnerabilities and host device exposure increase

Engineering Contradiction:
ImproveFPGA programmabilityVSAvoidsystem security
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent applies preliminary action by verifying the digital signature of the FPGA program before allowing it to be loaded onto the FPGA device. The virtual machine manager checks the signature in advance, ensuring the program is authenticated and authorized before execution, thereby preventing security breaches while maintaining FPGA programmability

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary mechanism in the form of a digital signature verification process that acts as a mediator between the virtual machine and the FPGA programming process. This intermediary layer authenticates programs before they reach the FPGA, protecting the host device while enabling versatile FPGA configuration

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If digital signature verification is implemented for FPGA programs, then security and reliability are improved, but system complexity increases

Engineering Contradiction:
Improveprogram trustworthinessVSAvoidverification process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies self-service by having the virtual machine manager automatically perform the digital signature verification process without requiring manual intervention. The system autonomously checks signatures, authenticates programs, and manages the verification workflow, reducing operational complexity while maintaining high security standards

Inventive Principle:
Principle #25Self-service

3Reliability

If signature verification is performed before loading FPGA programs, then security breaches are prevented, but processing time increases

Engineering Contradiction:
Improvesecurity protectionVSAvoidprogram loading time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by performing digital signature verification in advance before the FPGA program is loaded and executed. This upfront authentication ensures security is established before resource allocation, preventing security breaches while enabling efficient subsequent execution without repeated verification delays

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP3800566B1Signature verification of field-programmable gate array programs
Publication Date: 2024.02.21 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP3800566B1 patent drawingFigure 1
  • EP3800566B1 patent drawingFigure 2
  • EP3800566B1 patent drawingFigure 3A~3B

AI summary

Techniques for signature verification of field-programmable gate array (FPGA) programs are described herein. In one or more implementations, an FPGA virtualization manager of a host device receives a request from a virtual machine for an FPGA program to program FPGAs of the host. The FPGA program is configured to program the FPGAs to provide functionality of a hardware-implementation of a respective program (e.g., a machine-learning algorithm) or of a respective device (e.g., a graphics processing unit). Before allowing the FPGA program to program the FPGAs, however, the FPGA virtualization manager determines whether the FPGA program is trusted to do so. To do so, the FPGA virtualization manager verifies a digital signature associated with the FPGA program. When the signature is verified the FPGA program is determined to be trusted. Based on such a determination, the FPGA virtualization manager loads the FPGA program to program the FPGAs to provide the functionality.