IP Library Granted Patent US 8,495,383
Granted Patent B2
US 8,495,383 · App. 11/638,405 · Granted Jul 23, 2013

Method for the secure storing of program state data in an electronic 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,495,383
App. No.
11/638,405
Granted
Jul 23, 2013
Kind
B2
Abstract

The invention relates to a method in which program information is obtained to an execution environment in an electronic device. The program information comprises at least a program code. A key is computed of the program information and a device specific secret value. The key is used to decrypt program specific state data in the execution environment and to encrypt modified state data after the execution.

Claims (89)

1. A method comprising:

obtaining a program record to an execution environment comprised in an electronic device, said program record comprising at least executable computer program code;

computing a confidentiality key of at least part of said program record and a unique device secret specific to said electronic device;

using at least the confidentiality key, decrypting first state information associated with said executable computer program code, said first state information associated with said executable computer program code prior to execution of said executable computer program code;

using at least said decrypted first state information, performing said execution of said executable computer program code to produce second state information and an output data element; and

using at least the confidentiality key, encrypting said second state information associated with said executed computer program code.

2. The method according to claim 1 , wherein:

performing said execution further comprises performing said execution of said executable computer program code with an input data element and said decrypted first state information to produce said output data element in said execution environment;

the method further comprises:

computing a hash of said input data element, said output data element and said program record; and

encrypting said hash with a private key to produce a result signature, said private key being associated with said execution environment.

3. The method according to claim 2 , the method further comprising:

obtaining said program record to a network node;

producing said input data element in said network node;

providing said program record and said input data element to said electronic device;

obtaining said output data element from said electronic device to said network node; and

verifying said result signature in said network node to determine that the executable computer program code comprised in said program record has been executed in said electronic device.

4. The method according to claim 3 , the method further comprising:

said network node extracting control information from said output data element;

said network node controlling a device with said control information.

5. The method according to claim 2 , wherein the hash is a first hash and wherein:

the method further comprises:

providing to said execution environment in said program record said executable computer program code, a first public key, a name of said executable computer program code, a version number of said executable computer program code and a signature;

checking said signature with said first public key associated with a first private key;

computing a second hash from at least said first public key, said program name and said version number;

providing said decrypted first state information to said execution environment for the execution of said executable computer program code; and

modifying said decrypted first state information in said execution environment to create said second state information; and where computing the confidentiality key further comprises computing the confidentiality key from said second hash and said unique device secret specific to said electronic device with a one-way function.

6. The method according to claim 1 , wherein:

the method further comprises:

providing to said execution environment in said program record said executable computer program code, a first public key, a name of said executable program code, a version number of said executable program code and a signature;

checking said signature with said first public key associated with a first private key;

computing a first hash from at least said first public key, said program name and said version number;

providing said decrypted first state information to said execution environment for the execution of said executable computer program code; and

modifying said decrypted first state information in said execution environment to create said second state information; and

computing the confidentiality key further comprises computing the confidentiality key from said hash and said unique device secret specific to said electronic device with a one-way function.

7. The method according to claim 6 , the method further comprising:

obtaining said executable computer program code; and

signing said executable computer program code with said first private key to obtain said signature.

8. The method according to claim 1 , wherein said confidentiality key is a symmetric key.

9. The method according to claim 1 , wherein said execution environment is a secure environment in a mobile node.

10. An apparatus comprising:

at least one processor; and

at least one memory including computer program code,

the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus to perform at least the following:

provide a program record to an execution environment formed in the apparatus, said program record comprising at least executable computer program code;

compute a confidentiality key of at least part of said program record and a unique device secret specific to said electronic device;

decrypt, using at least the confidentiality key, first state information associated with said program record, said first state information associated with said executable computer program code prior to execution of said computer program code;

execute, using at least said decrypted first state information, said computer program code to produce second state information and an output data element; and

encrypt, using at least the confidentiality key, said second state information associated with said executed program code.

11. The apparatus according to claim 10 , wherein:

execution of said executable computer program code further comprises performing said execution of said computer program code with an input data element and said decrypted first state information to produce said output data element in said execution environment;

the at least one memory and the computer program code are further configured to, with the at least one processor, cause the apparatus to:

compute a hash of said input data element, said output data element and said program record; and

encrypt said hash with a private key to produce a result signature, said private key being associated with said execution environment.

12. The apparatus according to claim 11 , wherein the hash is a first hash and wherein:

the at least one memory and the computer program code are further configured to, with the at least one processor, cause the apparatus to:

provide to said execution environment in said program record said executable computer program code, a first public key, a name of the executable computer program code, a version number of the executable computer program code and a signature;

check said signature with said first public key associated with a first private key;

compute a second hash from at least said first public key, said program name and said version number;

provide said decrypted first state information to said execution environment for the execution of said executable computer program code; and

modify said decrypted first state information in said execution environment to create said second state information; and where computing the confidentiality key further comprises computing the confidentiality key from said second hash and said unique device secret specific to said electronic device with a one-way function.

13. The apparatus according to claim 10 , wherein:

the at least one memory and the computer program code are further configured to, with the at least one processor, cause the apparatus to:

provide to said execution environment in said program record said executable computer program code, a first public key, a name of the executable computer program code, a version number of said executable computer program code and a signature;

provide said decrypted first state information to said execution environment for the execution of said program code;

check said signature with a first public key associated with a first private key;

compute a first hash from at least said first public key, said program name and said version number;

modify said decrypted first state information in said execution environment to create said second state information; and where computing the confidentiality key further comprises computing the confidentiality key from said first hash and said unique device secret specific to said electronic device with a one-way function.

14. The apparatus according to claim 13 , the at least one memory and the computer program code are further configured to, with the at least one processor, cause the apparatus to:

obtain said executable computer program code; and

sign said executable computer program code with said first private key to obtain said signature.

15. The apparatus according to claim 10 , wherein said confidentiality key is a symmetric key.

16. The apparatus according to claim 10 , wherein said execution environment is a secure environment in a mobile node.

17. A computer program embodied on a non-transitory computer readable memory medium, the computer program comprising code for controlling a processor to execute the following:

obtaining a program record, said program record comprising at least executable computer program code;

computing a confidentiality key of at least part of said program record and a unique device secret specific to an electronic device that comprises said processor;

using at least the confidentiality key, decrypting first state information associated with said executable computer program code, said first state information associated with said executable computer program code prior to execution of said computer program code;

using at least said decrypted first state information, executing said computer program code in an execution environment to produce second state information and an output data element; and

using at least the confidentiality key, encrypting said second state information associated with said executed computer program code.

18. The computer program according to claim 17 , wherein said computer readable medium is a removable memory card.

19. The computer program according to claim 17 , wherein said computer readable medium is a magnetic or an optical disk or a holographic memory.

20. The computer program according to claim 17 , wherein the hash is a first hash and wherein:

the code for controlling the processor further causes execution of the following:

providing to said execution environment in said program record said executable computer program code, a first public key, a name of said executable computer program code, a version number of said executable computer program code and a signature;

checking said signature with said first public key associated with a first private key;

computing a second hash from at least said first public key, said program name and said version number;

providing said decrypted first state information to said execution environment for the execution of said executable computer program code; and

modifying said decrypted first state information in said execution environment to create said second state information; and where

computing the confidentiality key further comprises computing the confidentiality key from said second hash and said unique device secret specific to said electronic device with a one-way function.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2015
From: NOKIA CORPORATION
To: NOKIA TECHNOLOGIES OY
Reel/Frame 035603/0543 →