FPGA Security IC Coupling via Encrypted Netlist Key

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Field-Programmable Gate Arrays (FPGAs) lack the capability to securely store and manage cryptographic keys and establish secure communication sessions due to the absence of internal non-volatile storage and complex cryptographic algorithms, which violates Federal Information Processing Standards Publication 140 (FIPS 140) requirements, especially for bulk media decryption applications.

Innovation Solution

A shared secret key is incorporated into the FPGA net list, generated and encrypted with a password key, allowing secure authentication and communication between the FPGA and security IC, with the key stored in volatile memory to meet FIPS 140 zeroization requirements, using a coupling device that encrypts and decrypts the key for secure operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If an FPGA is coupled to a security IC for bulk media decryption, then decryption throughput is improved, but security compliance with FIPS 140 deteriorates due to lack of secure key storage

Engineering Contradiction:
Improvedecryption throughputVSAvoidsecurity compliance
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

A coupling device is introduced as an intermediary component between the FPGA and security IC. This coupling device includes a volatile memory interface that enables the FPGA to access encrypted shared secret keys stored in the security IC's non-volatile memory, thereby bridging the security requirements with the throughput capabilities.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system is segmented into distinct functional components: the security IC handles key generation and secure storage, the coupling device manages key encryption/decryption and volatile memory operations, and the FPGA performs bulk decryption operations. This segmentation allows each component to fulfill its specific role while maintaining overall security compliance.

Inventive Principle:
Principle #1Segmentation

2Reliability

If cryptographic keys are stored in volatile memory in FPGA, then FIPS 140 zeroization requirements are met, but key persistence and availability deteriorate

Engineering Contradiction:
Improvezeroization complianceVSAvoidkey persistence
Core Design Contradiction:
ReliabilityVSDuration of action of stationary object

Solution Approach 1:

The system performs preliminary actions by encrypting shared secret keys with a password key before storing them in the security IC's non-volatile memory. When the FPGA needs keys, it retrieves and decrypts them through the coupling device into volatile memory, ensuring they are available when needed but automatically zeroized when power is lost.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system changes the state of cryptographic keys between encrypted form (stored in non-volatile memory in security IC) and decrypted form (temporarily held in volatile memory in FPGA). This parameter change allows keys to maintain persistence in encrypted form while enabling temporary availability in decrypted form for operations, with automatic zeroization when transitioning back to encrypted state or losing power.

Inventive Principle:
Principle #35Parameter changes

3Ease of repair

If FPGAs use internal volatile memory for key storage, then key zeroization capability is improved, but security against unauthorized access deteriorates

Engineering Contradiction:
Improvekey zeroization capabilityVSAvoidunauthorized key access
Core Design Contradiction:
Ease of repairVSObject-affected harmful factors

Solution Approach 1:

The system uses a composite security architecture combining the security IC's secure non-volatile memory (with tamper-resistant properties) and the FPGA's volatile memory (with automatic zeroization). The coupling device bridges these two different memory types, allowing the system to leverage the security advantages of non-volatile storage while maintaining the automatic zeroization capability of volatile storage.

Inventive Principle:
Principle #40Composite materials

Solution Approach 2:

The coupling device acts as an intermediary that enforces security protocols between the FPGA and security IC. It controls access to encrypted shared secret keys, ensuring that keys are only made available to the FPGA through authenticated communication channels, thereby preventing unauthorized access while maintaining zeroization capability.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Reliability

If a shared secret key is encrypted with a password key and incorporated into FPGA net list, then authentication security is improved, but system complexity deteriorates

Engineering Contradiction:
Improveauthentication securityVSAvoidkey management system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system merges the key generation, encryption, and authentication functions into the security IC, while the coupling device combines key management and volatile memory interface functions. This consolidation reduces overall system complexity by centralizing security-critical functions in dedicated hardware modules rather than distributing them across multiple components.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS7792302B2Securely coupling an FPGA to a security IC
Publication Date: 2010.09.07 DOLBY LABORATORIES LICENSING CORP
  • US7792302B2 patent drawing
  • US7792302B2 patent drawing
  • US7792302B2 patent drawing

AI summary

Disclosed is a mechanism for securely coupling a security IC and an FPGA. This mechanism creates a shared secret key; creates a password key; generates an encrypted shared secret key by encrypting the “shared secret key” with the password key; incorporates the “encrypted shared secret key” into an FPGA net list; programs the FPGA using the “FPGA net list”; transmits the “password key” from the security IC to the FPGA; allowing the FPGA to: obtain the “shared secret key” by decrypting the “encrypted shared secret key”; and store the “shared secret key” in at least one volatile memory location.