Microcontroller Firmware Programming Encryption
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
3Reliability
If multiple encryption layers are applied to protect program code, then code protection is strengthened, but programming process complexity increases
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.
Data Source
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.


