FPGA Key Storage Register Access Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for storing and using decryption keys in programmable logic devices (PLDs) are insecure, as they can be vulnerable to piracy through 'Trojan-horse' configuration boot programs that access and steal decryption key data.

Innovation Solution

A system and method that securely manages decryption keys by using a microcontroller with a key storage register and a decryptor, where only the decryptor can read from the key storage register, and access to the configuration data register is restricted after the decryptor is used, employing hardware or software decryptors and logic circuitry to limit access using specific memory addresses.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If decryption keys are stored in a memory-mapped register accessible to the microcontroller, then the microcontroller can easily read and use the keys for decryption, but the system becomes vulnerable to piracy and Trojan-horse configuration boot programs that can steal key data

Engineering Contradiction:
Improveease of key accessVSAvoidsecurity of key storage
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The system divides the key storage function into separate components: a dedicated key storage register that is physically separated from the microcontroller's general memory space, and a decryptor module that acts as an intermediary. This segmentation prevents direct access to key data while maintaining the ability to perform decryption operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The decryptor serves as an intermediary between the key storage register and the microcontroller. Instead of the microcontroller directly accessing the key register, all key access goes through the decryptor, which validates permissions and performs decryption operations securely without exposing the raw key data to the microcontroller.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If the microcontroller can read from the configuration data register, then the configuration process is simple and fast, but the microcontroller can steal decrypted design data after configuration

Engineering Contradiction:
Improveconfiguration speedVSAvoiddata theft vulnerability
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The system performs the decryption operation before the configuration data is made accessible to the microcontroller. The decryptor decrypts the configuration data in advance and loads it into a protected register, ensuring that the microcontroller only receives decrypted data that cannot be stolen, rather than allowing access to encrypted or plaintext data that could be copied.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system extracts the decryption function from the microcontroller and places it in a dedicated decryptor module. This separation ensures that the microcontroller never holds the encryption keys or access to the configuration data register, removing the capability for data theft while maintaining efficient configuration operations.

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If a hardware decryptor is embedded in the integrated circuit with the PLD, then security is improved by limiting access to key data, but the device complexity increases

Engineering Contradiction:
Improvesecurity of key storageVSAvoidcomplexity of decryptor implementation
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The decryptor is designed as a multi-functional module that handles multiple tasks: storing encryption keys, performing decryption operations, validating access permissions, and interfacing with both the microcontroller and configuration memory. By combining these functions into a single integrated module, the system achieves high security without proportionally increasing overall device complexity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS7653820B1System and method for securing using decryption keys during FPGA configuration using a microcontroller
Publication Date: 2010.01.26 XILINX INC
  • US7653820B1 patent drawing
  • US7653820B1 patent drawing
  • US7653820B1 patent drawing

AI summary

A system for securely using decryption keys during FPGA configuration includes a FPGA having a microcontroller for receiving a bitstream having an encrypted bitstream portion as well as a configuration boot program. The configuration boot program can be code that runs on an embedded hardware microcontroller or a software microcontroller. The system further includes a key storage register coupled to the microcontroller for storing key data from the microcontroller, a decryptor coupled to the key storage register, and a configuration data register in the FPGA. Preferably, only the decryptor can read from the key storage register and the configuration data register cannot be read by the microcontroller after the decryptor is used.