Distributed Encryption Key Storage in Semiconductor Devices

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvesecurity levelVSAvoidkey storage structure
Core Design Contradiction:
ReliabilityVSDevice complexity

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

Inventive Principle:
Principle #1Segmentation

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

Inventive Principle:
Principle #7Nested doll (Nesting)

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

Engineering Contradiction:
Improvesecurity levelVSAvoidkey restoration process
Core Design Contradiction:
ReliabilityVSEase of operation

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

Inventive Principle:
Principle #10Preliminary action

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

Inventive Principle:
Principle #25Self-service

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

Engineering Contradiction:
Improvefirmware secrecyVSAvoidreverse engineering attack effectiveness
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

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

Inventive Principle:
Principle #1Segmentation

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

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP2728509B1Semiconductor Device and Encryption Key Writing Method
Publication Date: 2019.04.10 RENESAS ELECTRONICS CORP
  • EP2728509B1 patent drawingFigure 1
  • EP2728509B1 patent drawingFigure 2
  • EP2728509B1 patent drawingFigure 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.