FPGA Memory Initialization Encryption for Secure IP Loading

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The vulnerability of RAM-based on-chip memory in integrated circuits, such as FPGAs, to cloning and reverse-engineering due to volatile nature and predictable memory initialization data patterns, which exposes proprietary IP information during configuration and programming phases.

Innovation Solution

Encrypting memory initialization files using various encryption algorithms before assembling them into a configuration bit stream, which is then stored in non-volatile memory and decrypted upon loading, ensuring secure initialization and protection of IP data within the on-chip memory.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If RAM-based on-chip memory is used for its volatile nature, then memory can be reconfigured and updated, but the memory content is wiped out every time the IC is powered down requiring re-loading of configuration bit stream which exposes IP information

Engineering Contradiction:
ImprovereconfigurabilityVSAvoidconfiguration bit stream exposure
Core Design Contradiction:
Adaptability or versatilityVSLoss of information

Solution Approach 1:

The patent applies preliminary action by encrypting the configuration bit stream before it is stored or transmitted. The encryption is performed in advance during the configuration phase, so that when the bit stream is later loaded into the RAM-based on-chip memory, it remains protected. This resolves the contradiction by maintaining reconfigurability while preventing information exposure through pre-encryption of the configuration data.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If configuration bit stream is transferred from on-board memory to IC during programming phase, then IC can be configured, but design data is exposed and can be duplicated or reverse-engineered

Engineering Contradiction:
Improveconfiguration capabilityVSAvoidcloning and reverse-engineering
Core Design Contradiction:
Ease of operationVSObject-affected harmful factors

Solution Approach 1:

The patent applies parameter changes by transforming the configuration bit stream from a readable, unprotected state to an encrypted, protected state. The encryption modifies the parameters of the data (adding cryptographic protection) while maintaining its functional integrity. This allows the IC to be configured normally while preventing cloning and reverse-engineering, as the encrypted data cannot be easily analyzed or duplicated.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If memory initialization data is placed at predictable locations in configuration bit stream, then initialization is efficient, but IP information can be extracted by examining these predictable locations

Engineering Contradiction:
Improveinitialization efficiencyVSAvoidIP information extraction
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent applies asymmetry by introducing encryption that creates an asymmetric relationship between the encrypted configuration bit stream and the decryption key. The predictable locations of memory initialization data remain in the encrypted stream for efficient initialization, but the encryption layer creates an asymmetric barrier that prevents extraction of IP information. The data structure maintains its organizational efficiency while the cryptographic protection adds asymmetry that blocks analysis and extraction attempts.

Inventive Principle:
Principle #4Asymmetry

Data Source

PatentUS7952387B1Securing memory based IP in FPGAs
Publication Date: 2011.05.31 ALTERA CORP
  • US7952387B1 patent drawing
  • US7952387B1 patent drawing
  • US7952387B1 patent drawing

AI summary

A memory initialization file and one or more design files associated with configuring an IC are identified. The memory initialization file is encrypted using one or more encryption algorithms. A configuration bit stream is generated by compiling and assembling the encrypted memory initialization file and the one or more design files. During the programming phase, the configuration bit stream is received at the IC, decoded and logic design and content of encrypted memory initialization file are loaded into the respective logic elements and memory arrays of the IC. The IC then transitions into a user phase where the contents of the encrypted memory initialization file in the memory arrays are decrypted and validated at the on-chip memory within the IC to ensure that the integrity of the content is maintained. Upon successful verification of the integrity of the content, the content within the on-chip memory is available for processing.