Program Conversion Device for Confidential Decryption

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing program decryption methods expose secret information, such as decryption keys, in memory during execution, making them vulnerable to analysis by tools like debuggers and ICEs, which compromises confidentiality.

Innovation Solution

A program conversion device splits secret information into pieces and uses these pieces for operations, generating an execution result identical to the original program without exposing the secret information in memory, employing self-dual functions and combining operations to obscure the secret information's presence.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a program for decrypting encrypted data using secret information is executed, then the decryption function is achieved, but the secret information is exposed in memory during execution

Engineering Contradiction:
ImproveconfidentialityVSAvoidexposure of secret information
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The secret information is divided into multiple pieces, and the decryption operation is split into multiple sub-operations. Each sub-operation uses a different piece of the secret information, so that no single piece reveals the complete secret. The results of sub-operations are combined to produce the final decryption result, preventing exposure of the full secret information in memory during execution.

Inventive Principle:
Principle #1Segmentation

2Reliability

If the program is split into pieces and encrypted to prevent analysis, then confidentiality is improved, but the program can still be restored when executed

Engineering Contradiction:
ImproveconfidentialityVSAvoidprogram restoration
Core Design Contradiction:
ReliabilityVSStability of the object's composition

Solution Approach 1:

The secret information is pre-divided into multiple pieces before program execution. The program structure is designed in advance to use these pieces in separate sub-operations, ensuring that the secret information remains fragmented throughout execution and cannot be easily restored or analyzed in its complete form.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP1873676B1Program converting device, secure processing device, computer program, and recording medium
Publication Date: 2013.11.20 PANASONIC HOLDINGS CORP
  • EP1873676B1 patent drawingFigure 1
  • EP1873676B1 patent drawingFigure 2
  • EP1873676B1 patent drawingFigure 3~4

AI summary

To provide a program conversion device capable of executing a program that includes a secret operation for decrypting encrypted data using secret information without exposure of the secret information in a memory thereby to improve confidentiality in execution of the program. In an execution program generation device 10, with respect to an original program that includes secret operation processing that is an operation performed between each bit value of operand information and a corresponding bit value of secret information that is in the same bit position as the bit value of the operand information, a combining function generation unit 107 generates combining function processing for applying a bitwise self-dual function to an input value, a split secret information generation unit 102 generates pieces of split secret information by performing an inverse operation of the self-dual function on the secret information, a program conversion unit 106 generates pieces of split secret operation processing each for performing the operation between each bit value of the operand information and a corresponding bit value of a different piece of the split secret information that is in the same bit position as the bit value of the operand information, and replaces the secret operation processing included in the original program with the pieces of the split secret operation processing and the combining function processing.