IP Library Granted Patent US 8,661,535
Granted Patent B2
US 8,661,535 · App. 12/086,250 · Granted Feb 25, 2014

Method for making secure the execution of an intermediate language software code in a portable device

View Patent ↗
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 8,661,535
App. No.
12/086,250
Granted
Feb 25, 2014
Kind
B2
Abstract

A method for executing an application compiled in intermediate code on a portable digital appliance equipped with a virtual executing machine for interpreting the intermediate code. The method includes a step of applying a secure execution mode wherein the interpretation of the intermediate code by the virtual machine includes the following steps: for each item of data the code handled for execution of an arithmetic and/or logical operation defined by the code, generating control data, related to the data of the code via a predetermined function; in parallel with the execution of the operation, executing a control operation related to the operation defined by the code via the predetermined function, and acting on the control data.

Claims (20)

1. A method for executing an application compiled in intermediate code, on a portable digital device having a processor and a memory that implement a virtual executing machine for interpreting the intermediate code and executing a first set of arithmetic and/or logical operations on data items, comprising:

storing, in the memory, a second set of operations comprising operations that respectively correspond to each of the arithmetic and/or logical operations in said first set, wherein each operation of the second set is related to its corresponding operation in the first set by a predetermined checksum function;

generating, by the processor, a checksum item for each of a plurality of data items, based on the predetermined checksum function, and storing the checksum items in memory;

during execution of the application in the executing machine implemented by the processor and memory, performing the following security procedure for an operation that is carried out on data items:

a) providing, to the executing machine, at least one data item from said plurality of data items, and operations in said first set that are to be performed on the provided data item;

b) obtaining, by the executing machine, the stored checksum item corresponding to the data item provided to the executing machine, and operations in said second set that correspond to the operations provided in step (a);

c) performing, in parallel, by the executing machine, the operations provided in step (a) on the at least one data item provided in step (a), and the operations obtained in step (b) on the stored checksum item obtained in step (b); and

verifying the integrity of a security procedure at any time during the execution of operations by applying the predetermined checksum function to a result obtained at such time from execution of operations provided in step (a), and determining whether the checksum matches the result obtained at that same time from execution of operations provided in step (b).

2. The method of claim 1 , wherein the executing machine employs a first data structure stored in the memory for the data items and a second data structure stored in the memory for the checksum items.

3. The method of claim 2 , wherein the first and second data structures are respectively organized as first and second stacks in the memory.

4. The method of claim 2 , wherein the first and second data structures are respectively organized as first and second registers in the memory.

5. The method of claim 1 , wherein the executing machine employs a single data structure in the memory to store both the data items and the checksum items.

6. The method of claim 5 wherein the data structure is organized as a stack in the memory.

7. The method of claim 1 , wherein the verifying step is performed on a random basis.

8. The method of claim 1 , wherein the security procedure is performed in response to detection of a predetermined condition.

9. The method of claim 1 , wherein the security procedure is performed in response to interpretation of a predetermined portion of the intermediate code.

10. The method of claim 1 , wherein the security procedure is performed in a random manner.

11. A virtual machine for executing an application compiled in intermediate code on a portable digital device, wherein said virtual machine is stored in a non-volatile memory of the device and is configured to implement the method according to claim 1 .

12. A portable digital device comprising a non-volatile memory which stores the virtual machine according to claim 11 .

13. The device according to claim 12 , wherein said device is a chip card.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2023
From: THALES DIS FRANCE SA
To: THALES DIS FRANCE SAS
Reel/Frame 064770/0615 →
CHANGE OF NAME Recorded Aug 25, 2023
From: GEMALTO SA
To: THALES DIS FRANCE SA
Reel/Frame 064716/0408 →
MERGER Recorded Jan 14, 2014
From: GEMPLUS
To: GEMALTO SA
Reel/Frame 031960/0961 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2008
From: GONZALVO, BENOIT; GIRARD, PIERRE
To: GEMPLUS
Reel/Frame 021114/0418 →