Microcontroller Firmware Programming Encryption

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing microcontroller chip programming systems lack effective protection mechanisms, leading to potential rights infringement issues such as unauthorized programming and resale of program codes, which undermines the intellectual property rights of manufacturers.

Innovation Solution

A method and apparatus for firmware programming on microcontroller chips that involves generating a seed file with characteristic information, encrypting and decrypting program codes using integrated circuit programmers and microcontroller chips, and storing encrypted data in non-volatile memory, ensuring only authorized programming and preventing unauthorized access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If traditional programming methods are used where a programming service provider programs MCU chips, then programming service can be provided efficiently, but program code protection is insufficient leading to rights infringement

Engineering Contradiction:
Improveprogramming service provisionVSAvoidprogram code protection
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent segments the program code into multiple encrypted portions and distributes encryption keys between the programming service provider's equipment and the MCU chip. This segmentation ensures that no single party possesses the complete unencrypted code, preventing rights infringement while maintaining programming service efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces encryption and decryption mechanisms as intermediaries between the program code and the MCU chip. The encrypted code requires specific decryption keys held by both the programming service provider and the chip, creating a protected intermediary layer that prevents unauthorized access and resale of code.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If program code is stored in plaintext for easy programming, then programming efficiency is high, but the code is vulnerable to reverse engineering and unauthorized access

Engineering Contradiction:
Improveprogramming efficiencyVSAvoidreverse engineering vulnerability
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

The patent applies preliminary encryption to the program code before it is programmed into the MCU chip. The code is encrypted using keys that are pre-distributed to both the programming service provider and the chip, so that even if the chip is compromised, the code remains protected. This preliminary protective action eliminates the need to store plaintext code while maintaining programming efficiency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent changes the state of the program code from plaintext to encrypted form, transforming it from a vulnerable state to a protected state. The encryption process modifies the code's parameters (adding encryption layers) while preserving its functional integrity, allowing efficient programming without exposing the code to reverse engineering.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If multiple encryption layers are applied to protect program code, then code protection is strengthened, but programming process complexity increases

Engineering Contradiction:
Improvecode protection strengthVSAvoidprogramming process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent divides the encryption process into manageable segments: first encrypting the code with a key held by the programming service provider, then encrypting again with a key stored in the MCU chip. This segmentation of the encryption process makes the complex multi-layer protection more manageable and easier to implement without overwhelming complexity.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10565381B2Method and apparatus for performing firmware programming on microcontroller chip, and associated microcontroller chip
Publication Date: 2020.02.18 FARADAY TECH CORP
  • US10565381B2 patent drawing
  • US10565381B2 patent drawing
  • US10565381B2 patent drawing

AI summary

A method and apparatus for performing firmware programming on a microcontroller chip and the associated microcontroller chip are provided. The method includes: utilizing an integrated circuit (IC) programmer to generate a seed file including characteristic information of the IC programmer; utilizing an encoder to encrypt original data representing a program code at least according to the characteristic information, to generate an encryption version of the original data; utilizing the IC programmer to decrypt the encryption version of the original data according to the characteristic information, to generate the original data utilizing the IC programmer to encrypt the original data at least according to predetermined information, to generate another encryption version of the original data; utilizing the microcontroller chip to decrypt the other encryption version at least according to predetermined information stored in the microcontroller chip to generate the original data, and write the original data into a non-volatile (NV) memory.