Programmable Device Bitstream Authentication via Pre-Execution MAC Verification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current bitstream authentication mechanisms for programmable devices are vulnerable to tampering, as they authenticate after instructions are executed, allowing attackers to alter the bitstream and bypass encryption and authentication.

Innovation Solution

A method and apparatus that involves receiving a bitstream with embedded message authentication codes (MACs), storing instructions in memory without executing them, computing actual MACs using a hash algorithm, and comparing them with embedded MACs to ensure authenticity before executing instructions, with additional checks for consistency and checksum validation to prevent unauthorized execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If bitstream authentication is performed after instructions are executed, then configuration speed is improved, but security is worsened because attackers can tamper with instructions before execution

Engineering Contradiction:
Improveconfiguration speedVSAvoidbitstream security
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent performs authentication of the bitstream instructions before they are executed by the configuration logic. The embedded MACs are computed and stored with the instructions, and the configuration logic validates these MACs before carrying out any configuration operations. This preliminary authentication prevents tampered instructions from being executed, resolving the security issue while maintaining configuration speed.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If embedded MACs are computed and stored in the bitstream, then authentication capability is improved, but bitstream size is worsened

Engineering Contradiction:
Improveauthentication capabilityVSAvoidbitstream size
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent embeds MACs selectively at specific locations within the bitstream where authentication is most critical, rather than adding MACs to every instruction. This targeted approach provides sufficient authentication capability to prevent tampering while minimizing the additional size overhead in the bitstream.

Inventive Principle:
Principle #3Local quality

3Reliability

If all instructions are stored in memory without execution for authentication, then security is improved, but configuration time is worsened

Engineering Contradiction:
ImprovesecurityVSAvoidconfiguration time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent stores instructions in configuration memory and performs authentication before execution, but the authentication process is integrated into the configuration flow rather than being a separate sequential step. The configuration logic reads instructions from memory, authenticates them using embedded MACs, and executes validated instructions, all within the normal configuration timing framework. This minimizes additional configuration time while ensuring security.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8966253B1Method and apparatus for authenticating a programmable device bitstream
Publication Date: 2015.02.24 XILINX INC
  • US8966253B1 patent drawing
  • US8966253B1 patent drawing
  • US8966253B1 patent drawing

AI summary

A method and apparatus for authenticating a bitstream used to configure programmable devices are described. In an example, the bitstream is received via a configuration port of the programmable device, the bitstream including instructions for programming configuration registers of the programmable device and at least one embedded message authentication code (MAC). At least a portion of the instructions is initially stored in a memory of the programmable device without programming the configuration registers. At least one actual MAC is computed based on the bitstream using a hash algorithm. The at least one actual MAC is compared with the at least one embedded MAC, respectively. Each instruction stored in the memory is executed to program the configuration registers until any one of the at least one actual MAC is not the same as a corresponding one of the at least one embedded MAC, after which any remaining instructions in the memory are not executed.