PUF-Based Opcode Obfuscation for Semiconductor Security

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing security measures for semiconductor devices are inadequate in preventing reverse-engineering and unauthorized access, as hackers can exploit netlists and software to steal proprietary information or insert malware, with existing countermeasures failing to effectively mitigate losses and protect proprietary interests.

Innovation Solution

A method involving opcode obfuscation using a physically unclonable function (PUF) to transform conditional branch commands, where the obfuscated opcode has the same syntax but different semantics, making it harder for attackers to reverse-engineer the code, by generating a key based on the PUF and combining it with an inversion flag using XOR operations to recover the original opcode.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If opcode commands are obfuscated to prevent reverse-engineering, then security against hacking is improved, but the complexity of the system increases due to the need for PUF-based key generation and obfuscation/deobfuscation mechanisms

Engineering Contradiction:
ImprovesecurityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system uses the chip's own physically unclonable function (PUF) characteristics to generate encryption keys, making the security mechanism self-contained and eliminating the need for external key distribution infrastructure. The PUF-based key generation is intrinsic to the chip itself, allowing it to securely obfuscate and deobfuscate opcode commands without requiring additional complex key management systems.

Inventive Principle:
Principle #25Self-service

2Adaptability or versatility

If PUF-based key generation is implemented to enable secure opcode execution, then authorization control is improved, but the manufacturing precision requirements increase due to the sensitivity of PUF characteristics

Engineering Contradiction:
Improveauthorization controlVSAvoidPUF characteristic stability
Core Design Contradiction:
Adaptability or versatilityVSManufacturing precision

Solution Approach 1:

The system changes the operational parameters of the PUF by applying different stimulus conditions (such as varying voltage, temperature, or timing parameters) to elicit different but reproducible responses from the PUF. This allows the system to generate consistent cryptographic keys despite variations in physical manufacturing characteristics, effectively decoupling security from manufacturing precision requirements.

Inventive Principle:
Principle #35Parameter changes

3Difficulty of detecting and measuring

If opcode obfuscation is applied to protect proprietary information, then the difficulty of reverse-engineering increases, but the execution time increases due to the deobfuscation process required before command execution

Engineering Contradiction:
Improvereverse-engineering difficultyVSAvoidcommand execution time
Core Design Contradiction:
Difficulty of detecting and measuringVSLoss of time

Solution Approach 1:

The system performs obfuscation of the opcode commands in advance during the chip manufacturing or initialization process. The obfuscated opcodes are pre-loaded into the chip's memory in their encrypted form, and the corresponding PUF-based keys are generated and stored securely. During execution, the chip simply needs to retrieve the pre-obfuscated commands and apply the deobfuscation transformation, which is a relatively fast operation compared to real-time encryption.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP3907633B1System and method for obfuscating opcode commands in a semiconductor device
Publication Date: 2022.12.14 NXP BV
  • EP3907633B1 patent drawingFigure 1
  • EP3907633B1 patent drawingFigure 2
  • EP3907633B1 patent drawingFigure 3

AI summary

A method for securing an integrated circuit chip includes obtaining a first value from a first storage area in the chip, obtaining a second value from a second storage area in the chip, generating a third value based on the first value and the second value, and converting a first opcode command obfuscated as a second opcode command into a non-obfuscated form of the first opcode command based on the third value. The first value corresponds to a physically unclonable function (PUF) of the chip. The second value is a key including information indicating a type of obfuscation performed to obfuscate the first opcode command as the second opcode command. The third value may be an inversion flag indicating a type of obfuscation performed to obfuscate the first opcode command as the second opcode command.