IP Library Patent Application 14318758
Patent Application
App. No. 14/318,758

PROGRAM EXECUTION METHOD AND DECRYPTION APPARATUS

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
14/318,758
Abstract

A method for program execution in a system including a decryption apparatus that prevents external referencing and an information processing apparatus communicating therewith and accessing first and third storage areas, includes: the decryption apparatus detecting a series of commands from a command group obtained by decrypting at least a portion of a program stored in the first storage area; obfuscating and storing the series of commands to a second storage area storing the decrypted portion and within the first storage area; assigning, when an execution request is received from the information processing apparatus, the third storage area having a capacity equivalent to any one series of commands; and storing to the third storage area, a series of certain commands stored in the second area and obtained by canceling obfuscation of the commands that correspond to the execution request; and the information processing unit executing the series of certain commands.

Claims (62)

1 . A method for executing a program in a system that includes a decryption apparatus having a structure that prevents external referencing of information stored therein and an information processing apparatus configured to communicate with the decryption apparatus, the method comprising:

detecting, by the decryption apparatus, a series of commands from a command group obtained by decrypting at least a portion of an encrypted program stored in a first storage area, the first storage area being configured to be accessed by the information processing apparatus;

storing, by the decryption apparatus, obfuscated commands to a second storage area that stores a decrypted portion of the encrypted program and is within the first storage area, the obfuscated commands being obtained by obfuscating the detected series of commands;

assigning, by the decryption apparatus, when a first execution request of any one series of commands in the command group is received from the information processing apparatus, a third storage area that is different from the first storage area, the third storage area being configured to be accessed by the information processing apparatus and having a storage amount equivalent to the any one series of commands;

storing, by the decryption apparatus, to the assigned third storage area, a series of certain commands stored in the second area, the series of certain commands being obtained by canceling obfuscation of the obfuscated commands that correspond to the first execution request; and

executing, by the information processing unit, the series of the certain commands stored in the third storage area.

2 . The method according to claim 1 , comprising

canceling, by the decryption apparatus, assignment of the third storage area when an execution request for another series of commands that is different from the certain commands and that is called by the any one series of commands is received from the information processing apparatus.

3 . The method according to claim 1 , wherein

the storing to the second storage area includes storing to the second storage area, the obfuscated commands that are obtained by obfuscating the detected series of commands in accordance with a certain obfuscation format randomly selected from a plurality of obfuscation formats, and

the storing to the assigned third storage area includes storing to the third storage area, when the execution request is received from the information processing apparatus, the series of the certain commands that is obtained by canceling obfuscation of the obfuscated commands that correspond to the first execution request in accordance with the certain obfuscation format.

4 . The method according to claim 3 , further comprising

storing, by the decryption apparatus, to the second storage area, the obfuscated commands that correspond to the execution request and that accordance to the certain obfuscation format randomly selected from the plurality of obfuscation formats.

5 . The method according to claim 1 , comprising

randomly determining, by the decryption apparatus, an address of the third storage area from a first address range, when the execution request is received from the information processing apparatus, and

updating, by the decryption apparatus, based on the determined address, a command that uses a relative address or an absolute address and is among the series of certain commands, wherein

the storing to the assigned third storage area includes storing the updated command to the third storage area.

6 . The method according to claim 1 , comprising

converting, by the decryption apparatus, when the execution request is received from the information processing apparatus, a command for calling another series of commands different from the series of certain commands, into a command for notifying the decryption apparatus of an execution request for the another series of commands, wherein

the storing to the assigned third storage area includes storing the converted command to the third storage area.

7 . The method according to claim 1 , comprising

converting, by the decryption apparatus, when the first execution request is received from the information processing apparatus, a command for returning to a series of caller commands that is a caller of the series of certain commands, into a command for notifying the decryption apparatus of a second execution request for the series of caller commands, wherein

the storing to the assigned third storage area includes storing the converted command to the third storage area.

8 . The method according to claim 1 , comprising

retaining, by the decryption apparatus, digest information of the detected series of commands, and

determining, by the decryption apparatus, when the execution request is received from the information processing apparatus, whether digest information of the series of certain commands that are stored in the second storage area is identical to the retained digest information, wherein

the storing to the assigned third storage area includes not storing to the third storage area, the series of certain commands, when the digest information of the certain commands is determined to be not identical to the retained digest information.

9 . The method according to claim 1 , comprising

determining, by the decryption apparatus, whether the first execution request is received from the information processing apparatus before a first time interval has elapsed since a time when a second execution request for a caller command that is a caller of the series of certain commands is received from the information processing apparatus, wherein

the storing to the assigned third storage area includes not storing to the third storage area, the series of certain commands, when the first execution request is received from the information processing apparatus after the first execution request is determined to be not received from the information processing apparatus before the first time interval has elapsed.

10 . A decryption apparatus configured to communicate with an information processing apparatus and having a structure that prevents external referencing of information stored therein, the apparatus comprising

a processor configured to:

detect a series of commands from a command group obtained by decrypting at least a portion of an encrypted program stored in a first storage area, the first storage area being configured to be accessed by the information processing apparatus;

store obfuscated commands to a second storage area that stores a decrypted portion of the encrypted program and is within the first storage area, the obfuscated commands being obtained by obfuscating the detected series of commands;

assign, when a first execution request of any one series of commands in the command group is received from the information processing apparatus, a third storage area that is different from the first storage area, the third storage area being configured to be accessed by the information processing apparatus and having a storage amount equivalent to the any one series of commands; and

store to the assigned third storage area, a series of certain commands stored in the second area, the series of certain commands being obtained by canceling obfuscation of the obfuscated commands that correspond to the first execution request.

11 . The apparatus according to claim 10 , wherein

the processor cancels assignment of the third storage area when an execution request for another series of commands that is different from the certain commands and that is called by the any one series of commands is received from the information processing apparatus.

12 . The apparatus according to claim 10 , wherein

the processor stores to the second storage area, the obfuscated commands that are obtained by obfuscating the detected series of commands in accordance with a certain obfuscation format randomly selected from a plurality of obfuscation formats, and

the processor stores to the third storage area, when the execution request is received from the information processing apparatus, the series of the certain commands that is obtained by canceling obfuscation of the obfuscated commands that correspond to the first execution request in accordance with the certain obfuscation format.

13 . The apparatus according to claim 12 , wherein

the processor is further configured store to the second storage area, the obfuscated commands that correspond to the execution request and that accordance to the certain obfuscation format randomly selected from the plurality of obfuscation formats.

14 . The apparatus according to claim 10 , wherein

the processor further configured to:

randomly determine an address of the third storage area from a first address range, when the execution request is received from the information processing apparatus, and

update based on the determined address, a command that uses a relative address or an absolute address and is among the series of certain commands, wherein

the processor stores the updated command to the third storage area.

15 . The apparatus according to claim 10 , wherein

the processor is further configured to convert, when the execution request is received from the information processing apparatus, a command for calling another series of commands different from the series of certain commands, into a command for notifying the decryption apparatus of an execution request for the another series of commands, and

the processor stores the converted command to the third storage area.

16 . The apparatus according to claim 10 , wherein

the processor is further configured to convert, when the first execution request is received from the information processing apparatus, a command for returning to a series of caller commands that is a caller of the series of certain commands, into a command for notifying the decryption apparatus of a second execution request for the series of caller commands, and

the processor stores the converted command to the third storage area.

17 . The apparatus according to claim 10 , wherein

the processor is further configured to:

retain digest information of the detected series of commands, and

determine, when the execution request is received from the information processing apparatus, whether digest information of the series of certain commands that are stored in the second storage area is identical to the retained digest information, wherein

the processor does not store to the third storage area, the series of certain commands, when the digest information of the certain commands is determined to be not identical to the retained digest information.

18 . The apparatus according to claim 10 , wherein

the processor is further configured to determine whether the first execution request is received from the information processing apparatus before a first time interval has elapsed since a time when a second execution request for a caller command that is a caller of the series of certain commands is received from the information processing apparatus, and

the processor does not store to the third storage area, the series of certain commands, when the first execution request is received from the information processing apparatus after the first execution request is determined to be not received from the information processing apparatus before the first time interval has elapsed.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE'S ADDRESS PREVIOUSLY RECORDED ON REEL 039331 FRAME 0343. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Oct 13, 2016
From: KAWAKAMI, TATSURO
To: FUJITSU SEMICONDUCTOR LIMITED
Reel/Frame 040350/0608 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 3, 2016
From: KAWAKAMI, TATSURO
To: FUJITSU SEMICONDUCTOR LIMITED
Reel/Frame 039331/0343 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2015
From: FUJITSU SEMICONDUCTOR LIMITED
To: SOCIONEXT INC.
Reel/Frame 035481/0236 →