IP Library › Granted Patent US 10,552,588
Granted Patent B2
US 10,552,588 · App. 15/874,930 · Granted Feb 4, 2020

Enabling a software application to be executed on a hardware device

Inventor: Jeroen Mathias Doumen (Hoofddorp, NL)
Assignee: IRDETO B.V.
G06F21/12G06F21/121G06F21/123G06F21/125G06F21/72
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 10,552,588
App. No.
15/874,930
Granted
Feb 4, 2020
Kind
B2
Abstract

The invention provides a method, a hardware circuit and a hardware device for enabling a software application to be executed on a hardware device in dependence of the hardware circuit, while preventing the execution of a binary copy of the application in another hardware device. Challenge data originating from the software application is input to a hardware circuit of the hardware device, wherein the hardware circuit is configured to perform a deterministic function. Response data is generated by the hardware device, which is used to manipulate at least a part of the software application to thereby enable the software application to be executed.

Claims (25)

1. A computer-implemented method for enabling a software application to be executed on a hardware device, said execution dependent on a hardware circuit of the hardware device, the computer-implemented method comprising:

inputting challenge data to the hardware circuit of the hardware device, wherein the software application comprises a first part and an encrypted second part, wherein the challenge data comprises some or all of the first part, wherein the hardware circuit is configured to perform a deterministic function;

generating response data using the deterministic function, with the challenge data used as input to the deterministic function; and

using the response data as a decryption key to decrypt said encrypted second part to thereby enable the software application to be executed.

2. The computer-implemented method according to claim 1 , wherein the deterministic function is unique to the hardware circuit.

3. The computer-implemented method according to claim 1 , wherein the deterministic function is a cryptographic function.

4. The computer-implemented method according to claim 3 , wherein the cryptographic function uses a cryptographic key, wherein the cryptographic key is (a) preconfigured in a memory of the hardware circuit, or (b) derived by the hardware circuit from a unique key preconfigured in a memory of the hardware circuit, or (c) derived by the hardware circuit from a key loading message received from an external source.

5. The computer-implemented method according to claim 4 , wherein a key loading mechanism for deriving the key from the key loading message is unique to the hardware device.

6. A hardware circuit for a hardware device, the hardware circuit enabling a software application to be executed on the hardware device, wherein said execution is dependent on the hardware circuit, wherein the software application comprises a first part and an encrypted second part, wherein the hardware circuit is configured to perform a deterministic function that uses challenge data that comprises some or all of the first part as input to the deterministic function to generate response data for use as a decryption key to decrypt said encrypted second part to thereby enable the software application to be executed.

7. The hardware circuit according to claim 6 , wherein the deterministic function is unique to the hardware circuit to enable the software application to be executed on the hardware device.

8. The hardware circuit according to claim 6 , wherein the deterministic function is a cryptographic function.

9. The hardware circuit according to claim 8 , wherein the cryptographic function uses a cryptographic key, wherein the cryptographic key is (a) preconfigured in a memory of the hardware circuit, or (b) derived by the hardware circuit from a unique key preconfigured in a memory of the hardware circuit, or (c) derived by the hardware circuit from a key loading message received from an external source.

10. The hardware circuit according to claim 6 , wherein the hardware circuit is embedded in one of a central processing unit (CPU), a graphics processing unit (GPU) or programmable input/output (I/O) peripheral.

11. A hardware device comprising:

a hardware circuit for enabling a software application to be executed on the hardware device, said execution dependent on the hardware circuit, wherein the software application comprises a first part and an encrypted second part, wherein the hardware circuit is configured to perform a deterministic function that uses challenge data that comprises some or all of the first part as input to the deterministic function to generate response data for use as a decryption key to decrypt said encrypted second part to thereby enable the software application to be executed; and

a processor arranged to provide a challenge to said hardware circuit and execute the software application.

12. The hardware device according to claim 11 , wherein the hardware device is one of a digital television receiver, a personal computer, a tablet computer, a smart phone, an Internet server, a cloud server or a graphics card.

13. A non-transitory computer readable medium having instructions encoded thereon which, when the instructions are processed by a processor, enable a software application to be executed on a hardware device, said execution dependent on a hardware circuit of the hardware device, by:

inputting challenge data to the hardware circuit of the hardware device, wherein the software application comprises a first part and an encrypted second part, wherein the challenge data comprises some or all of the first part, wherein the hardware circuit is configured to perform a deterministic function;

generating response data using the deterministic function, with the challenge data used as input to the deterministic function; and

using the response data as a decryption key to decrypt said encrypted second part to thereby enable the software application to be executed.

14. The non-transitory computer readable medium according to claim 13 , wherein the deterministic function is unique to the hardware circuit.

15. The non-transitory computer readable medium according to claim 13 , wherein the deterministic function is a cryptographic function.

16. The non-transitory computer readable medium according to claim 15 , wherein the cryptographic function uses a cryptographic key, wherein the cryptographic key is (a) preconfigured in a memory of the hardware circuit, or (b) derived by the hardware circuit from a unique key preconfigured in a memory of the hardware circuit, or (c) derived by the hardware circuit from a key loading message received from an external source.

17. The non-transitory computer readable medium according to claim 16 , wherein a key loading mechanism for deriving the key from the key loading message is unique to the hardware device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2018
From: DOUMEN, JEROEN
To: IRDETO B.V.
Reel/Frame 044722/0521 →
Priority Claims (1)
EP 11160420 · Mar 30, 2011 · regional
Continuity (2)
Continuation 14008419
Related Publication 20180232502A1 · Aug 16, 2018
Cited By (1)
US 12,254,116