IP Library Granted Patent US 8,527,756
Granted Patent B2
US 8,527,756 · App. 11/990,720 · Granted Sep 3, 2013

Security device and building block functions

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,527,756
App. No.
11/990,720
Granted
Sep 3, 2013
Kind
B2
Abstract

A method and system of securing content is described, the method including establishing communication between a secure module source and a content rendering device, loading a dynamically generated pseudo-unique secure module to the content rendering device from the secure module source, establishing communication between the secure module source and the dynamically generated pseudo-unique secure module, and transferring a decryption key from the secure module source to the dynamically generated pseudo-unique secure module, thereby enabling decryption of encrypted content, the encrypted content being encrypted according to the decryption key. Related methods and apparatus are also described.

Claims (66)

1. A method of securing content, the method comprising:

establishing communication between a secure module source and a content rendering device;

producing a dynamically generated pseudo-unique secure module by:

providing a plurality of available individual software primitives to the secure module source; and

combining a sequence of software primitives from among the plurality of available individual software primitives, where the sequence may combine any of the available individual software primitives in any order at all, where any of the available individual software primitives may be repeated in the sequence, and where the sequence does not have to include all of the available individual software primitives, so that the sequence thereby can be any one of a large number of possible combinations of the available individual software primitives;

loading the dynamically generated pseudo-unique secure module to the content rendering device from the secure module source, the dynamically generated pseudo-unique secure module comprising the sequence of software primitives;

after the loading step, establishing communication between the secure module source and the dynamically generated pseudo-unique secure module; and

after the step of establishing communication between the secure module source and the dynamically generated pseudo-unique secure module, transferring a decryption key from the secure module source to the dynamically generated pseudo-unique secure module, thereby enabling decryption of encrypted content, the encrypted content being encrypted according to the decryption key,

wherein each one of the sequence of software primitives is sequentially executed, and an output from a first one of the sequence comprises an input to a second one of the sequence.

2. The method according to claim 1 and wherein the secure module source comprises a security device.

3. The method according to claim 1 and wherein the secure module source comprises a remote server.

4. The method according to claim 1 and also comprising establishing a first secure authenticated channel for secure communication between the secure module source and the content rendering device.

5. The method according to claim 4 and wherein the content rendering device also comprises a secure software agent.

6. The method according to claim 5 and wherein the establishing the first secure authenticated channel comprises establishing the first secure authenticated channel between the secure module source and the secure software agent.

7. The method according to claim 1 and also comprising establishing a second secure authenticated channel for secure communication between the secure module source and the dynamically generated

pseudo-unique secure module.

8. The method according to claim 1 and wherein the content rendering device comprises a general purpose computer.

9. The method according to claim 1 and wherein the content rendering device comprises a set top box (STB).

10. The method according to claim 1 and wherein the content rendering device comprises a digital video recorder (DVR).

11. The method according to claim 1 and wherein the content rendering device comprises a DVD player.

12. The method according to claim 1 and further comprising:

inputting an initial input to the first one of the sequence; and

sequentially inputting an output from a prior one of the sequence to a next one of the sequence until a final one of the sequence produces a final output.

13. The method according to claim 1 and wherein the dynamically generated pseudo-unique secure module produces a result based, at least in part, on an initial input.

14. The method according to claim 13 and wherein the result is also based, at least in part, on an order of the plurality of the software

primitives within the sequence.

15. The method according to claim 1 and wherein at least one of the software primitives comprises a hash function.

16. The method according to claim 1 , wherein the dynamically generated pseudo-unique secure module is able to perform content decryption, key management and calculation, content decoding, and license enforcement.

17. The method according to claim 1 , wherein the dynamically generated pseudo-unique secure module comprises a content access

business rule.

18. The method according to claim 1 , wherein the dynamically generated pseudo-unique secure module comprises a content expiration date, after which content may no longer be consumed.

19. The method according to claim 1 , further comprising:

after the step of establishing communication between the secure module source and the dynamically generated pseudo-unique secure module, transmitting a result of a calculation from the dynamically generated pseudo-unique secure module to the secure module source;

wherein the transferring step is performed only if the result of the calculation is transmitted to the secure module source before termination of a limited time window.

20. The method according to claim 1 wherein some of the software primitives are stored encrypted at the secure module source, and some of the software primitives are stored not encrypted.

21. The method according to claim 20 wherein at least one of the software primitives which are stored encrypted at the secure module source are encrypted according to a first encryption key and at least a second one of the software primitives which are stored encrypted at the secure module source are encrypted according to a second encryption key.

22. Apparatus for securing content, the apparatus comprising:

a dynamically generated pseudo-unique secure module loader operative to load a dynamically generated pseudo-unique secure module to a content rendering device from a secure module source, the dynamically generated pseudo-unique secure module comprising a sequence of software primitives from among a plurality of available individual software primitives, where the sequence may combine any of the available individual software primitives in any order at all, where any of the available individual software primitives may be repeated in the sequence, and where the sequence does not have to include all of the available individual software primitives, so that the sequence thereby can be any one of a large number of possible combinations of the available individual software primitives;

a communication mechanism operative (a) to establish communication between the secure module source and the content rendering device, and (b) to establish communication between the secure module source and the dynamically generated pseudo-unique secure module after the dynamically generated pseudo-unique secure module has been loaded to the content rendering device from the secure module source; and

a decryption key transferring mechanism operative to transfer a decryption key from the secure module source to the dynamically generated pseudo-unique secure module after the dynamically generated pseudo-unique secure module has been loaded to the content rendering device from the secure module source, thereby enabling decryption of encrypted content, the encrypted content being encrypted according to the decryption key,

wherein the dynamically generated pseudo-unique secure module comprises the sequence of software primitives, each one of the sequence of software primitives being capable of being sequentially executed, and an output from a first one of the sequence comprises an input to a second one of the sequence.

23. Apparatus for securing content, the apparatus comprising:

means for loading a dynamically generated pseudo-unique secure module to a content rendering device from a secure module source, the dynamically generated pseudo-unique secure module comprising a sequence of software primitives from among a plurality of available individual software primitives, where the sequence may combine any of the available individual software primitives in any order at all, where any of the available individual software primitives may be repeated in the sequence, and where the sequence does not have to include all of the available individual software primitives, so that the sequence thereby can be any one of a large number of possible combinations of the available individual software primitives;

a communication means (a) for establishing communication between the secure module source and the content rendering device, and (b) for establishing communication between the secure module source and the dynamically generated pseudo-unique secure module after the dynamically generated pseudo-unique secure module has been loaded to the content rendering device from the secure module source; and

means for transferring a decryption key from the secure module source to the dynamically generated pseudo-unique secure module after the dynamically generated pseudo-unique secure module has been loaded to the content rendering device from the secure module source, thereby enabling decryption of encrypted content, the encrypted content being encrypted according to the decryption key,

wherein each one of the sequence of software primitives is sequentially executed, and an output from a first one of the sequence comprises an input to a second one of the sequence.

24. A method of securing content, the method comprising:

establishing communication between a secure module source and a content rendering device;

loading a dynamically generated pseudo-unique secure module to the content rendering device from the secure module source, the dynamically generated pseudo-unique secure module comprising a sequence of software primitives from among a plurality of available individual software primitives, where the sequence may combine any of the available individual software primitives in any order at all, where any of the available individual software primitives may be repeated in the sequence, and where the sequence does not have to include all of the available individual software primitives, so that the sequence thereby can be any one of a large number of possible combinations of the available individual software primitives;

after the loading step, establishing communication between the secure module source and the dynamically generated pseudo-unique secure module; and

after the step of establishing communication between the secure module source and the dynamically generated pseudo-unique secure module, transferring a decryption key from the secure module source to the dynamically generated pseudo-unique secure module, thereby enabling decryption of encrypted content, the encrypted content being encrypted according to the decryption key;

wherein each one of the sequence of the software primitives can be sequentially executed, and an output from a first one of the sequence comprises an input to a second one of the sequence.

25. The method according to claim 24 and further comprising:

inputting an initial input to the first one of the sequence; and

sequentially inputting an output from a prior one of the sequence to a next one of the sequence until a final one of the sequence produces a final output.

26. The method according to claim 25 and wherein the dynamically generated pseudo-unique secure module produces a result based, at least in part, on the initial input.

27. The method according to claim 26 and wherein the result is also based, at least in part, on an order of the plurality of the software

primitives.

28. The method according to claim 24 and wherein at least one of the software primitives comprises a hash function.

29. The method according to claim 24 and wherein all of the available software primitives comprising the plurality of the available software primitives must be used in order to form the dynamically generated pseudo-unique secure module.

30. The method according to claim 29 and wherein each one of the plurality of the available software primitives must be used once and only once in order to form the dynamically generated pseudo-unique secure module.

31. The method according to claim 29 and wherein each one of the plurality of the available software primitives may be used more than once in order to form the dynamically generated pseudo-unique secure module.

32. The method according to claim 24 and wherein a minimum number of the available software primitives comprising the plurality of the available software primitives are used in order to form the dynamically generated pseudo-unique secure module.

33. The method according to claim 24 and wherein the secure module source comprises a security device.

34. The method according to claim 24 and wherein the secure module source comprises a remote server.

35. The method according to claim 24 , wherein one individual primitive among the plurality of the available software primitives comprises different programming code than another individual primitive among the plurality of the available sol, ware primitives comprises, but each of said one and said other individual primitives comprises a function producing the same result.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 22, 2013
From: NDS LIMITED
To: CISCO TECHNOLOGY, INC.
Reel/Frame 030258/0465 →
RELEASE OF PATENT SECURITY INTERESTS Recorded Mar 29, 2011
From: J.P.MORGAN EUROPE LIMITED
To: NDS LIMITED; NEWS DATACOM LIMITED
Reel/Frame 026042/0124 →
RELEASE OF INTELLECTUAL PROPERTY SECURITY INTERESTS Recorded Mar 11, 2011
From: NDS HOLDCO, INC.
To: NDS LIMITED; NEWS DATACOM LIMITED
Reel/Frame 025940/0710 →
SECURITY AGREEMENT Recorded May 18, 2009
From: NDS LIMITED; NEWS DATACOM LIMITED
To: NDS HOLDCO, INC.
Reel/Frame 022703/0071 →
SECURITY AGREEMENT Recorded May 14, 2009
From: NDS LIMITED; NEWS DATACOM LIMITED
To: J.P. MORGAN EUROPE LIMITED
Reel/Frame 022678/0712 →