IP Library Granted Patent US 11,218,299
Granted Patent B2
US 11,218,299 · App. 16/781,204 · Granted Jan 4, 2022

Software encryption

Inventors: Lukas Hanel (Cambridge, GB); Mehdi Oukacha (Cambridge, GB); Baptiste Gourdin (Cambridge, GB)
Assignee: Trustonic Limited
H04L9/085G06F8/65H04L9/083H04L9/0894H04L9/3247G06F2221/2149
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 11,218,299
App. No.
16/781,204
Filed
Feb 4, 2020
Granted
Jan 4, 2022
Kind
B2
Art Unit
2435
USPC
713/190
Abstract

A software decryption key is injected into a computing device 2 having a secure execution environment 20 and a less secure execution environment 22 . The key 38 is for decryption of software to be run on the computing device. A key injection software component 36 executed within the secure execution environment 20 is used to control storage of the software decryption key 38 in a protected state in which the software decryption key is unreadable in the clear from the key storage location by an external device or by program code executed in the less secure execution environment 22 of the computing device. Software provided to the device is decrypted based on the injected software decryption key 38.

Claims (27)

1. A key injection method for a computing device having a secure execution environment and a less secure execution environment, wherein program code or data associated with the secure execution environment is isolated from access by program code executed in the less secure execution environment; the method comprising:

providing a software decryption key for decryption of software to be run on the computing device, wherein the software decryption key is a class key shared between a class of devices including said computing device;

using a key injection software component executed within the secure execution environment of the computing device, controlling storage of the software decryption key in a protected state in a key storage location accessible to the computing device;

the protected state comprising a state in which the software decryption key is unreadable in the clear from the key storage location by an external device or by program code executed in the less secure execution environment of the computing device,

wherein the key injection method is performed by an original equipment manufacturer of the computing device, the computing device comprising a system-on-chip manufactured by a different manufacturer than the original equipment manufacturer of the computing device; and

wherein the software decryption key is selectively provided to a subset of manufacturers involved in the manufacture of the computing device including the original equipment manufacturer.

2. The method of claim 1 , in which the protected state comprises a state in which the software decryption key is encrypted based on a device key which is private to the computing device and is inaccessible to the program code executed in the less secure execution environment.

3. The method of claim 2 , in which the key storage location is accessible to the external device or to the program code executed in the less secure execution environment.

4. The method of claim 1 , in which the protected state comprises a state in which the software decryption key is stored in a storage region which is accessible to program code executed in the secure execution environment and inaccessible to the external device or the program code executed in the less secure execution environment.

5. The method of claim 1 , in which when the software decryption key is stored in the protected state, the software decryption key is unreadable in the clear by a software component other than a predetermined control software component of the secure execution environment and said key injection software component.

6. The method of claim 5 , in which when stored in the protected state, the software decryption key is also unreadable in the clear from the key storage location by the key injection software component.

7. The method of claim 1 , in which an in-field software image to be provided on the computing device when the device is released for in-field use excludes said key injection software component.

8. The method of claim 1 , in which said key injection software component is prohibited from overwriting a previously injected software decryption key.

9. The method of claim 1 , in which the software decryption key is stored in the protected state in association with a key identifier distinguishing the software decryption key from other software decryption keys.

10. The method of claim 1 , in which the target software is associated with a control portion comprising an encryption status indication indicating that the target software requires decryption, wherein decryption of the target software is dependent on the software decryption key and at least one encryption parameter specified in the control portion.

11. The method of claim 1 , in which the target software is associated with a control portion specifying a key identifier for identifying which software decryption key is to be obtained for decrypting the target software, wherein decryption of the target software is dependent on the software decryption key and at least one encryption parameter specified in the control portion.

12. The method of claim 1 , in which the control software component obtains the software decryption key in an encrypted form from a requesting software component executed in the less secure execution environment, which is requesting execution of the target software.

13. The method of claim 1 , wherein startup of the target software following decryption is dependent on successful verification of a signature associated with the target software, wherein when the target software is associated with a control portion comprising an encryption status indication indicating that the target software requires decryption, the method comprises verification of the signature based on a version of the control portion in which the encryption status indication has been removed or updated to indicate that the target software does not require decryption.

14. A method for a computing device having a secure execution environment and a less secure execution environment and comprising a system-on-chip, wherein program code or data associated with the secure execution environment is isolated from access by program code executed in the less secure execution environment; the method comprising:

using a control software component running within the secure execution environment:

obtaining a software decryption key stored in a key storage location in a protected state, the protected state comprising a state in which the software decryption key is unreadable in the clear from the key storage location by an external device or by program code executed in the less secure execution environment of the computing device, wherein the software decryption key has been previously provided to the computing device by an original equipment manufacturer of the computing device, the original equipment manufacturer of the computing device being a different manufacturer than the manufacturer of the system-on-chip, and wherein the software decryption key is selectively provided to a subset of manufacturers involved in the manufacture of the computing device including the original equipment manufacturer; and

using the obtained software decryption key, decrypting target software to be run on the computing device;

wherein the software decryption key is a class key shared between a class of devices including said computing device.

15. The method of claim 14 , in which the software decryption key is stored in the protected state within a software-writable storage location.

16. The method of claim 14 , in which the protected state comprises a state in which the software decryption key is stored in encrypted form based on a device key which is private to the computing device and is inaccessible to the program code executed in the less secure execution environment; and

the control software component controls decryption of the software decryption key based on the device key.

17. The method of claim 16 , in which the key storage location is accessible to the program code executed in the less secure execution environment, wherein, to decrypt the software decryption key, the control software component copies the software decryption key in encrypted form from the key storage location to a second storage location inaccessible to the program code executed in the less secure execution environment, and decrypts the software decryption key in-place within the second storage location.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2026
From: TT SECURE PLATFORM LIMITED
To: QUALCOMM TECHNOLOGIES, INC.
Reel/Frame 075332/0723 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 2, 2026
From: TRUSTONIC LIMITED
To: TT SECURE PLATFORM LIMITED
Reel/Frame 075325/0627 →
CHANGE OF ASSIGNEE ADDRESS Recorded Apr 14, 2023
From: TRUSTONIC LIMITED
To: TRUSTONIC LIMITED
Reel/Frame 064025/0775 →
CHANGE OF ASSIGNEE ADDRESS Recorded Nov 3, 2020
From: TRUSTONIC LIMITED
To: TRUSTONIC LIMITED
Reel/Frame 054283/0428 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2020
From: HANEL, LUKAS; OUKACHA, MEHDI; GOURDIN, BAPTISTE
To: TRUSTONIC LIMITED
Reel/Frame 052580/0854 →
Priority Claims (1)
GB 1901596 · Feb 5, 2019 · national
Continuity (1)
Related Publication 20200252207A1 · Aug 6, 2020