Programmable Device Bitstream Authentication via Pre-Execution MAC Verification
Find Innovative SolutionsGenerate 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
Engineering 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
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.
2Reliability
If embedded MACs are computed and stored in the bitstream, then authentication capability is improved, but bitstream size is worsened
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.
3Reliability
If all instructions are stored in memory without execution for authentication, then security is improved, but configuration time is worsened
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.
Data Source
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.


