Distributed Encryption Key Storage in Semiconductor Devices
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing security technologies for IC cards fail to effectively protect encrypted programs from reverse engineering attacks, as advancements in analysis devices can decipher scramble circuits and encryption keys, compromising the secrecy of firmware stored in ROMs.
Innovation Solution
A semiconductor device with a CPU, electrically rewritable EEPROM, and non-rewritable ROM, featuring an encryption area, non-encryption area, and a decrypter that splits the encryption key into distributed bit strings stored in the EEPROM's system area, with an encryption key reading program in the ROM's non-encryption area to restore the key for decryption.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If encryption key is stored in a single location in EEPROM, then key management is simple, but security level is low and key can be easily read out by reverse engineering
Solution Approach 1:
The encryption key is divided into multiple split keys and stored in distributed address areas within the system area of the EEPROM. This segmentation prevents attackers from retrieving the complete key through simple reverse engineering, as they would need to access multiple distributed locations and combine the split keys, thereby enhancing security while maintaining manageable key storage structure
Solution Approach 2:
The split keys are stored within the system area of the EEPROM, which itself is nested within the broader memory structure of the semiconductor device. The CPU accesses these nested storage areas through controlled operation modes (system mode vs. user mode), creating layers of protection that improve security without significantly complicating the overall device architecture
2Reliability
If encryption key is divided into split keys and stored in distributed areas, then security level is improved, but key restoration process becomes more complex
Solution Approach 1:
The encryption key is pre-divided into multiple split keys during the key generation phase, and these split keys are stored in their respective distributed address areas in the EEPROM system area before execution. This preliminary segmentation simplifies the runtime operation, as the CPU only needs to retrieve and combine the pre-prepared split keys rather than performing complex division operations during key restoration
Solution Approach 2:
The CPU automatically performs the key restoration process by reading the split keys from their distributed locations in the EEPROM system area and combining them to reconstruct the encryption key. This self-service mechanism reduces the need for external intervention or complex manual restoration procedures, thereby improving ease of operation despite the distributed storage structure
3Reliability
If ROM contains encrypted program, then firmware secrecy is protected, but reverse engineering attacks can still decode the program if encryption key is compromised
Solution Approach 1:
The encryption key is segmented into multiple split keys stored in distributed areas of the EEPROM system area, which is a separate storage device from the ROM containing the encrypted program. This physical and logical separation means that even if attackers successfully reverse engineer the ROM and obtain the encrypted program, they cannot decrypt it without also compromising the distributed key storage in the EEPROM, thereby neutralizing the effectiveness of reverse engineering attacks
Solution Approach 2:
The EEPROM system area acts as an intermediary storage device that holds the split keys separately from the encrypted program in the ROM. This intermediary structure creates an additional security layer: the encrypted program in ROM remains protected because the decryption keys are not stored in the same location and are accessed through controlled operation modes, preventing attackers from obtaining both the encrypted program and its decryption key through a single reverse engineering effort
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A microcomputer employed for an IC card, etc. is provided, in which the security level to an attack which tries to read an encrypted program illegally is improved. A semiconductor device is provided with a CPU, an EEPROM, and a ROM. The ROM is provided with an encryption area and a non-encryption area and the encrypted firmware is stored in the encryption area. The semiconductor device is provided with a decrypter which holds the encryption key, decrypts the encrypted firmware, and supplies the decrypted firmware to the CPU. The EEPROM is provided with a system area to which an access from the CPU is forbidden in a user mode. The encryption key is divided into split keys of plural bit strings, and stored in the distributed address areas in the system area. An encryption key reading program which is not encrypted is stored in the non-encryption area of the ROM. Executing the encryption key reading program, the CPU reads and reconfigures plural split keys stored in the EEPROM in a distributed manner to restore the encryption key. The CPU supplies the restored encryption key to the decrypter.