United States Patent6971008
Wasilewski , ; et al.November 29, 2005

Title

Authorization of services in a conditional access system

Abstract

A cable television system provides conditional access to services. The cable television system includes a headend from which service "instances", or programs, are broadcast and a plurality of set top units for receiving the instances and selectively decrypting the instances for display to system subscribers. The service instances are encrypted using public and/or private keys provided by service providers or central authorization agents. Keys used by the set tops for selective decryption may also be public or private in nature, and such keys may be reassigned at different times to provide a cable television system in which piracy concerns are minimized.


Inventors:Wasilewski; Anthony J. (Alpharetta, GA), Pinder; Howard G.  (Norcross, GA), Akins, III; Glendon L.  (Gainesville, GA), Banker; Robert O.  (Cumming, GA)
Assignee:Scientific-Atlanta, Inc. (Lawrenceville, GA)
Appl. No.:287913
Filed:November 5, 2002

Current U.S. Class:713/168 380/217 380/229 380/259 713/159 
Field of Search:380/259,229,210,217 713/172,155,159,168

U.S. Patent Documents
4155042May 1979Permut et al.
4358672November 1982Hyatt et al.
4388643June 1983Aminetzah
4405829September 1983Rivest et al.
4531020July 1985Wechselberger et al.
4600921July 1986Thomas et al.
4613901September 1986Gilhousen et al.
4634807January 1987Chorley et al.
4649533March 1987Chorley et al.
4658093April 1987Hellman
4712238December 1987Gilhousen et al.
4712239December 1987Frezza et al.
4736422April 1988Mason
4823385April 1989Hegendorfer
4864615September 1989Bennett et al.
4866770September 1989Seth-Smith et al.
4885777December 1989Takaragi et al.
4887296December 1989Horne
4912762March 1990Lee et al.
4982430January 1991Frezza et al.
4993068February 1991Piosenka et al.
5003591March 1991Kauffman et al.
5018196May 1991Takaragi et al.
5029207July 1991Gammie
5036537July 1991Jeffers et al.
5073935December 1991Pastor
5124117June 1992Tatebayashi et al.
5142578August 1992Matyas et al.
5151782September 1992Ferraro
5155591October 1992Wachob
5175765December 1992Perlman
5231665July 1993Auld et al.
5235643August 1993Anderson et al.
5237610August 1993Gammie et al.
5243652September 1993Teare et al.
5249230September 1993Mihm, Jr.
5270822December 1993Choi
5282248January 1994DeJoy
5282249January 1994Cohen et al.
5285497February 1994Thatcher, Jr.
5301233April 1994Coutrot et al.
5341425August 1994Wasilewski et al.
5343527August 1994Moore
5381477January 1995Beyers, III et al.
5381481January 1995Gammie et al.
5400401March 1995Wasilewski et al.
5402490March 1995Mihm, Jr.
5414773May 1995Handelman
5420866May 1995Wasilewski
5425101June 1995Woo et al.
5432542July 1995Thibadeau et al.
5440633August 1995Augustine et al.
5465299November 1995Matsumoto et al.
5473692December 1995Davis
5481542January 1996Logston et al.
5481613January 1996Ford et al.
5488410January 1996Lieberfarb et al.
5497422March 1996Tysen et al.
5499294March 1996Friedman
5499295March 1996Cooper
5506904April 1996Sheldrick et al.
5509073April 1996Monnin
5519780May 1996Woo et al.
5524052June 1996Augustine et al.
5550984August 1996Gelb
5557678September 1996Ganesan
5557765September 1996Lipner et al.
5559889September 1996Easter et al.
5563950October 1996Easter et al.
5565909October 1996Thibadeau et al.
5568552October 1996Davis
5568554October 1996Eastlake, 3rd
5583939December 1996Chang et al.
5588058December 1996Le Berre
5590202December 1996Bestler et al.
5621793April 1997Bednarek et al.
5671276September 1997Eyer et al.
5675649October 1997Brennan et al.
5740246April 1998Saito
5742677April 1998Pinder et al.
5764770June 1998Schipper et al.
5787172July 1998Arnold
5857020January 1999Peterson, Jr.
5862220January 1999Perlman
5870474February 1999Wasilewski et al.
5920626July 1999Durden et al.
6005938December 1999Banker et al.
6105134August 2000Pinder et al.
6246767June 2001Akins et al.
RE33189March 1990Lee et al.
RE33808January 1992Wright, Jr.
Foreign Patent Documents
0 723 371Jul., 1996EP
0 752 786Jan., 1997EP
WO 94/13107Jun., 1994WO
WO 95/29560Nov., 1995WO
Other References
ISO/IEC 13818-1, "Information Technology--Generic Coding of Moving Pictures and Associated Audio Systems," Draft of: Nov. 13, 1994. .
ISO/IEC JTC1/SC29/WG11, "Universal Multi-Program Multiplex and Transport for MPEG-2 Systems," Jan. 1993. .
ISO/IEC JTC1/SC29/WG11, "An MGEG-2 Multi-Program Multiplex Syntax," Jan. 1993. .
ISO/IEC JTC1/SC2/WG11, "Requirements and Method for High-Level Multiplexing of MPEG and Other Digital Service Bitstreams with Universal Transport Layer," Nov. 1992. .
Whitfield, Diffie, "Authentication and Authenticated Key Exchanges," Designs, Codes and Cryptography, An International Journal, vol. 2, No. 2, Jun. 1992, pp. 107-125. .
Schneier, Bruce, "Applied Cryptography Second Edition: Protocols, Algorithms and Source Code in C," pp. 357-363. .
Menezes, Alfred J., "Handbook of Applied Cryptography," pp. 506-525. .
TM-1244 Rev. 4, "Final Technical Report of the Conditional Access Specialist Group," Nov. 17, 1994. .
Coutrot et al., "A Single Conditional Access System for Satellite-Cable and Terrestrial TV," IEEE Transactions on Consumer Electronics, vol. 35, No. 3, Aug. 1989, pp. 464-468. .
Louis Claude Guillou and Jean-Luc Giachetti, "Encipherment and Conditional Access," SMPTE Journal, 103 (1994) Jun., No. 6, White Plains, NY..~
Primary Examiner: Lamarre; Guy
Assistant Examiner: Khoshnoodi; Nadia

Parent Case Text



CROSS-REFERENCE TO RELATED APPLICATIONS

This is a continuation of application Ser. No. 09/811,085, now U.S. Pat. No. 6,516,412 filed Mar. 16, 2001, presently allowed, which is a continuation of U.S. application Ser. No. 09/488,230, filed Jan. 20, 2000, now U.S. Pat. No. 6,252,964, which is a continuation of U.S. application Ser. No. 09/127,352, now abandoned filed Jul. 31, 1998, which claims the benefit of U.S. Provisional Application No. 60/054,575, filed Aug. 1, 1997, and is a CIP of application Ser. No. 09/111,958, filed Jul. 8, 1998, now abandoned, which claims the benefit of U.S. Provisional Application No. 60/054,578, filed Aug. 1, 1997, and is CIP of application Ser. No. 08/767,535, filed Dec. 16, 1996, now U.S. Pat. No. 6,005,938, and is a CIP of application Ser. No. 08/580,759 filed Dec. 29, 1995, now U.S. Pat. No. 5,870,474, which claims the benefit of U.S. Provisional Application No. 60/007,962, filed Dec. 4, 1995, and is CIP of application Ser. No. 08/415,617, filed Apr. 3, 1995, now U.S. Pat. No. 5,742,677.

RELATED PATENT APPLICATIONS

The present application descends from an application which was one of seven original applications with identical Detailed Descriptions. All of these applications have the same filing date and the same assignee. The serial numbers and filing dates of the six applications follow:

Ser. No. 09/126,783, filed Jul. 31, 1998, presently abandoned, for which a continuation Ser. No. 09/487,076 was filed on Jan. 19, 2000, issued as U.S. Pat. No. 6,292,568; Ser. No. 09/126,921, filed Jul. 31, 1998, issued as U.S. Pat. No. 6,157,719; Ser. No. 09/127,273, filed Jul. 31, 1998, presently abandoned, for which a continuation Ser. No. 09/493,409 was filed on Jan. 28, 2000; Ser. No. 09/127,152, filed Jul. 31, 1998, presently abandoned, for which a continuation Ser. No. 09/488,104 was filed on Jan. 20, 2000, presently allowed, issued as U.S. Pat. No. 6,246,76, for which a continuation Ser. No. 09/881,428 was filed on Jun. 14, 2001; Ser. No. 09/126,888, filed Jul. 31, 1998, presently abandoned, for which a continuation Ser. No. 09/464,794 was filed on Dec. 16, 1999; and Ser. No. 09/126,795, filed Jul. 31, 1998, issued as U.S. Pat. No. 6,105,134.

Claims


What is claimed is:
1. A conditional access apparatus in a receiver for giving a receiver, in a cable television system, conditional access to a given encrypted instance of service of a plurality of encrypted instances of services received in the receiver, the conditional access apparatus comprising: an agent establishment apparatus adapted to establish an entitlement agent in the receiver in response to a first message received in the receiver, wherein the agent establishment apparatus imposes constraints in the receiver on the established entitlement agent, and the established entitlement agent is associated with the given encrypted instance of service; an entitlement specification apparatus in communication with the agent establishment apparatus, the entitlement specification apparatus adapted to specify the one or more service entitlements, wherein specified service entitlements include entitlements of the receiver for instances of services received in the receiver that are associated with the established entitlement agent; and an access granting apparatus in communication with the entitlement specification apparatus, the access granting apparatus adapted to grant access to the given instance of service in response to a second message received in the receiver, the second message includes an entitlement identifier associated with the given encrypted instance of service, wherein the access granting apparatus uses the specified service entitlement and the entitlement identifier to grant access to the given instance of service, and the access granting apparatus grants access to the given instance of service only if the agent establishment apparatus has established the entitlement agent, and the given instance of service includes services including programming that are provided to the cable television system.

2. The conditional access apparatus of claim 1, wherein: the constraints imposed on the established entitlement agent includes a limit for the entitlements the established entitlement agent may offer.

3. The conditional access apparatus of claim 2, wherein: the limit limits the kinds of entitlements the established entitlement agent may offer.

4. The conditional access apparatus of claim 2, wherein: the limit limits the number of entitlements the established entitlement agent may offer.

5. The conditional access apparatus of claim 2, wherein: the entitlement specification apparatus specifies the one or more service entitlements within the limit established by the agent establishment apparatus.

6. The conditional access apparatus of claim 1, wherein: the agent establishment apparatus further disestablishes the established entitlement agent, whereupon the access granting apparatus no longer grants access to an instance of service associated with the disestablished entitlement agent.

7. The conditional access apparatus of claim 1, wherein: the agent establishment apparatus and the entitlement specification apparatus operate in response to further messages received in the receiver.

8. The conditional access apparatus of claim 7, wherein: the agent establishment apparatus and the entitlement specification apparatus respond to the further messages without interruption to currently-granted access to the information.

9. The conditional access apparatus of claim 7, wherein: the agent establishment apparatus and the entitlement specification apparatus include at least first and second keys, employ the at least first and second keys to determine whether a received message is authentic, and respond to the received message only if the received message is authentic.

10. The conditional access apparatus of claim 9, wherein: the agent establishment apparatus, the entitlement specification apparatus, and the access granting apparatus are implemented in a secure element, which includes a processor and storage for the service entitlements and the keys, and the storage is writable and accessible only to the processor of the secure element.

11. The conditional apparatus of claim 9, wherein: the further messages are encrypted; and the conditional access apparatus includes another key and employs the other key to decrypt the further messages.

12. The conditional access apparatus of claim 11, wherein: the receiver has a public key and a private key; the further messages are encrypted with the public key; and the private key is the other key.

13. The conditional access apparatus of claim 9, wherein: the second message includes an authentication token that was processed by the private key of a private key-public key associated with the entitlement agent; the access granting apparatus uses the authentication token with a public key of the established entitlement agent to determine whether the second message is authentic and grants access to the given instance of service only if the second message is authentic.

14. The conditional access apparatus of claim 1, wherein: the receiver includes decryption apparatus for decrypting the instance of service; the second message contains a decryption value; the entitlement specification apparatus contains an additional key for the established entitlement agent; the access granting apparatus employs the additional key and the decryption value to obtain a decryption key for the instance of service; and the receiver uses the decryption key to decrypt the instance of service.

15. The conditional access apparatus of claim 14, wherein: the additional key is a shared secret that the entitlement specification apparatus shares with the established entitlement agent; and the access granting apparatus uses the shared secret to determine whether the second message is authentic and grants access to the instance of service only if the second message is authentic.

16. The conditional access apparatus of claim 7, wherein: the agent establishment apparatus disestablishes the established entitlement agent in response to a third message of the further messages.

17. The conditional access apparatus of claim 16, wherein: the agent establishment apparatus includes a first key representing a conditional access authority; and the agent establishment apparatus employs the first key to determine whether the third message is authentic and disestablishes the established entitlement agent only if the third message is authentic.

18. The conditional access apparatus of claim 7, wherein: the agent establishment apparatus establishes a new entitlement agent in response to a third message of the further messages.

19. The conditional access apparatus of claim 18, wherein: the agent establishment apparatus includes a first key representing a conditional access authority; and the agent establishment apparatus employs the first key to determine whether the third message is authentic and establishes the new entitlement agent only if the third message is authentic.

20. The conditional access apparatus of claim 7, wherein: the entitlement specification apparatus specifies the given service entitlement in response to a fourth message of the further messages.

21. The conditional access apparatus of claim 20, wherein: the entitlement specification apparatus includes a second key representing the entitlement agent; and the entitlement specification apparatus employs, if the third message is authentic, the second key to determine whether the fourth message is authentic and, in response to determining that the fourth message is authentic, further specifies the given entitlement.

22. The conditional access apparatus of claim 7, wherein: the agent establishment apparatus includes other keys representing a conditional access authority; the agent establishment apparatus changes a first key of the plurality of keys in response to at least second and third messages of the further messages, the agent establishment apparatus using the other keys of the plurality of keys to determine whether the at least second and third messages are authentic and changing the other keys only when the at least second and third messages are authentic.

23. The conditional access apparatus of claim 22, wherein the agent establishment apparatus both establishes and disestablishes the conditional access authority in accordance with use of the other keys and authentication of the at least second and third messages.

24. The conditional access apparatus of claim 1, wherein: the agent establishment apparatus, the entitlement specification apparatus, and the access granting apparatus are implemented in a secure element that includes storage for the entitlements and a processor, and wherein the storage is writable and accessible only to the processor of the secure element.

25. The conditional access apparatus of claim 1, wherein: the agent establishing apparatus and the entitlement specification apparatus operate without interruption to currently-granted access to the instance of service.

26. The conditional access apparatus of claim 1, wherein all authentication is performed using RSA digital signatures.

27. The conditional access apparatus of claim 1, wherein the instance of service is a program from the set of programs consisting of video programs, audio programs and audio-video programs.

28. The conditional access apparatus of claim 1, wherein the instance of service is an MPEG program.

29. A method for providing a receiver, in a conditional access system, with an entitlement for an encrypted instance of service, wherein the instance of service is provided by a service provider to the conditional access system, the method comprising the steps of: receiving at the receiver a first message, the first message having an indicator associated with an entitlement agent included therein; processing in the receiver the first message to authenticate the first message and, to establish, in the receiver, the entitlement agent associated with the indicator of the first message, wherein only when the first message is authentic is the entitlement agent established, and the act of establishing the entitlement agent imposes constraints, in the receiver, on the established entitlement agent; receiving at the receiver a second message, the second message having a service service entitlement specifier associated with the instance of service included therein; processing the second message to associate the service entitlement specifier with the established entitlement agent; receiving at the receiver the encrypted instance of service and a third message having an entitlement identifier included therein, wherein the entitlement identifier is associated with the instance of service; and processing in the receiver the third message to determine whether the receiver is entitled to decrypt the encrypted instance of service.

30. The method of claim 29, wherein the entitlement agent is one of a plurality of entitlement agents that are associated with instances of services provided to the receiver, a conditional access authority assigns constraints that are imposed upon the established entitlement agent, the first message, which is from the conditional access authority, includes the constraints for the entitlement agent, and the act of establishing the entitlement agent includes imposing the constraints assigned by the conditional access authority on the established entitlement agent.

31. The method of claim 30, wherein the act of establishing includes the act of configuring at least a portion of the memory of receiver according to a predetermined configuration.

32. The method of claim 31, wherein the predetermined configuration of the receiver memory is determined by the conditional access authority, and the first message includes information related to the predetermined configuration.

33. The method of claim 29, wherein the act of determining further includes using at least the entitlement identifier and the service entitlement specifier to determine whether the receiver is entitled to decrypt the received encrypted instance of service.

34. The method of claim 29, wherein the receiver includes a memory, and the constraints imposed on the established entitlement agent includes allocating a maximum amount of the memory to the established entitlement agent.

35. The method of claim 29, wherein the constraints imposed on the established entitlement agent includes controlling the entitlements offered by the entitlement agent.

36. The method of claim 35, wherein controlling the entitlements includes act of limiting the number of entitlements offered by the established entitlement agent.

37. The method of claim 36, wherein controlling the entitlements includes the act of limiting the types of entitlements offered by the established entitlement agent.

38. The method of claim 29, further including the steps of: receiving a fourth message having a second service entitlement specifier associated with the instance of service; and processing the fourth message to associate the second service entitlement specifier with the established entitlement agent, wherein the second service entitlement specifier specifies that the receiver is not entitled to decrypt the received encrypted instance of service.

39. The method of claim 29, further including the step of: receiving at the receiver a fourth message; processing a fourth message to authenticate the fourth message and, only when the fourth message is authentic, to disestablish the established entitlement agent, whereupon the receiver is not entitled to decrypted the received encrypted instance of service.

40. The method of claim 39, wherein the receiver includes memory, the entitlement agent has a portion of the memory allocated thereto for the established entitlement agent, and the act of disestablishing the established entitlement agent includes allocating none of the memory to the entitlement agent.

41. The method of claim 29, wherein the act of establishing includes storing a public key of a private key-private key pair associated with the entitlement agent in a memory of the receiver.

42. The method of claim 41, wherein the memory of the receiver has a first and at least a second public key stored therein, each public key being half of public key-private key pair, the first public key is associated with a conditional access authority that authorizes the establishment of the entitlement agent in the receiver, the first public key is used to authenticate the first message, the second public key is associated with the entitlement agent and is included in the first message, the second public key is stored in the memory only if the first message is authentic, and the second public key is used to authenticate the second message.

43. The method of claim 42, further including the steps of: receiving at the receiver a fourth message having encrypted content and an authentication token included therein; using at least the authentication token of the fourth message to authenticate the source of the fourth message; decrypting the encrypted content of the fourth only when the source of the fourth message has been authenticated, and wherein the decrypted content of the fourth message includes a long-term key; using the long-term key and a portion of the fourth message to generate a short-term key; and using the short term key to decrypt the encrypted instance of service only when the receiver is entitled to the instance of service.

44. The method of claim 43, wherein the memory of the receiver includes a private key of a public key-private key pair, and the receiver uses the private key to decrypt the encrypted content of the fourth message.

45. The method of claim 43, wherein the source of the fourth message is the entitlement agent.

46. The method of claim 29, wherein the receiver has a memory having a plurality of public keys associated a conditional access authority stored therein, wherein the conditional access authority authorizes the establishment of the entitlement agent, and each public key is part of a public key-private key pair, and further including the steps of: receiving a fourth message at the receiver having a content that includes a particular public key, an authentication token and a key indicator included therein; using a first public key of the plurality of public keys to authenticate the source of the fourth message; associating the key indicator with a given public key of the plurality of keys associated with the conditional access authority; replacing the given public key with the particular public key only when the conditional access authority is authenticated as the source of the third entitlement message.

47. The method of claim 46, further including the steps of: using at least a portion of the content of the fourth message as an input into a hash function to produce an output hash; comparing the output hash with a portion of the authentication token of the fourth message, and wherein the given key is replaced by the particular key only when the compared portion of the authentication token is the same as the output hash.

48. The method of claim 47, further including the steps of: receiving a fifth message at the receiver having a content that includes a second particular public key, an authentication token and a second key indicator included therein, wherein the second particular public key is the same as the particular public key included in the fourth message, and the second key indicator is the same as the key indicator included in the fourth message; using a second public key of the plurality of public keys to authenticate the source of the fifth message; using at least a portion of the content of the fifth message as an input into a hash function to produce a second output hash; comparing the second output hash with the first output hash, and wherein the given key is replaced by the particular key only when the second output hash is the same as the first output hash.

49. An entitling apparatus in a receiver, wherein the receiver is in a conditional access system and receives an encrypted instance of service, the instance of service is associated with an entitlement agent that is included in the conditional access system, the apparatus comprising: means for establishing entitlements in the receiver for the entitlement agent, wherein the establishing means establishes the entitlements in response to a first message; means for specifying service entitlements of the receiver, wherein the specifying means specifies the service entitlements of the receiver for the instances of service associated with the entitlement agent, and the service entitlements are specified in response to a second message; means for granting the decryption of the received encrypted instance of service, wherein the encrypted instance of service is associated with an entitlement identifier, and the granting is based at least in part on the entitlement identifier and at least in part on the specified service entitlement of the receiver for the instance of service.

50. The apparatus of claim 49, wherein the establishing means imposes constraints in the receiver on the entitlements for the entitlement agent.

51. The apparatus of claim 50, wherein the constraints in the receiver imposed on the entitlement agent include controlling the types of services associated with the entitlement agent.

52. The apparatus of claim 50, wherein the constraints in the receiver imposed on the entitlement agent include limiting the number of service entitlements.

53. The apparatus of claim 50, further including: a memory, wherein at a portion of the memory is allocated to the entitlement agent, and the imposed constraints includes limiting the memory usage of the entitlement agent to the portion of the memory allocated to the entitlement agent.

54. The apparatus of claim 53, wherein in response to a third message the entitlement agent is allocated none of the memory of the receiver, and thereupon the receiver is not entitled to decrypted instances of service associated with the entitlement agent.

55. The apparatus of claim 53, wherein the memory has a public key of a public key-private key pair stored therein, wherein the public key is used to authenticate the first message, the first message includes a second public key that is associated with the entitlement agent, and when the first message is authentic the second public key is stored in portion of the memory allocated to the entitlement agent.

56. The apparatus of claim 55, wherein the second public key is used to authenticate the second message, and only when the second message is authentic are the service entitlements specified.

57. The apparatus of claim 55, further including: means for generating a decryption key to generate a key for decrypting the encrypted instance of service, wherein the decryption key generating means uses at least a long-term key to generate a short-term decryption key for the decrypting the encrypted instance of service.

58. The apparatus of claim 57, wherein the long-term key is included in a third message, which is authenticated by the second public key, and only when the second message is authentic is the long-term key used by the decryption key generating means.

59. The apparatus of claim 58, wherein the receiver receives a fourth message that is associated with the encrypted instance of service, the fourth message includes the entitlement identifier and a short-term key indicator, wherein the decryption key generating means uses the short-term indicator to generate the short-term decryption key.

60. The apparatus of claim 59, wherein through the duration of the instance of service a plurality of different short term decryption keys are used for decrypting the encrypted instance of service.

Description

FIELD OF THE INVENTION

The invention concerns systems for protecting information and more particularly concerns systems for protecting information that is transmitted by means of a wired or wireless medium against unauthorized access.

BACKGROUND OF THE INVENTION

One way of distributing information is to broadcast it, that is, to place the information on a medium from which it can be received by any device that is connected to the medium. Television and radio are well-known broadcast media. If one wishes to make money by distributing information on a broadcast medium, there are a couple of alternatives. A first is to find sponsors to pay for broadcasting the information. A second is to permit access to the broadcast information only to those who have paid for it. This is generally done by broadcasting the information in scrambled or encrypted form. Although any device that is connected to the medium can receive the scrambled or encrypted information, only the devices of those users who have paid to have access to the information are able to unscramble or decrypt the information.

A service distribution organization, for example a CATV company or a satellite television company, provides its subscribers with information from a number of program sources, that is, collections of certain kinds of information. For example, the History Channel is a program source that provides television programs about history. Each program provided by the History Channel is an "instance" of that program source. When the service distribution organization broadcasts an instance of the program source, it encrypts or scrambles the instance to form encrypted instance. An encrypted instance contains instance data, which is the encrypted information making up the program.

An encrypted instance is broadcast over a transmission medium. The transmission medium may be wireless or it may be "wired", that is, provided via a wire, a coaxial cable, or a fiber optic cable. It is received in a large number of set top boxes. The function of set-top box is to determine whether encrypted instance should be decrypted and, if so, to decrypt it to produce a decrypted instance comprising the information making up the program. This information is delivered to a television set. Known set top boxes include decryptors to decrypt the encrypted instance.

Subscribers generally purchase services by the month (though a service may be a one-time event), and after a subscriber has purchased a service, the service distribution organization sends the set top box belonging to the subscriber messages required to provide the authorization information for the purchased services. Authorization information may be sent with the instance data or may be sent via a separate channel, for example, via an out-of-band RF link, to a set top box. Various techniques have been employed to encrypt the authorization information. Authorization information may include a key for a service of the service distribution organization and an indication of what programs in the service the subscriber is entitled to watch. If the authorization information indicates that the subscriber is entitled to watch the program of an encrypted instance, the set-top box decrypts the encrypted instance.

It will be appreciated that "encryption" and "scrambling" are similar processes and that "decryption" and "descrambling" are similar processes; a difference is that scrambling and descrambling are generally analog in nature, while encryption and description processes are usually digital.

The access restrictions are required in both analog and digital systems. In all systems, the continued technological improvements being used to overcome the access restrictions require more secure and flexible access restrictions. As more systems switch from an analog format to a digital format, or a hybrid system containing both analog and digital formats, flexible access restrictions will be required.

Restricting access to broadcast information is even more important for digital information. One reason for this is that each copy of digital information is as good as the original; another is that digital information can be compressed, and consequently, a given amount of bandwidth carries much more information in digital form; a third is that the service distribution organizations are adding reverse paths which permit a set-top box to send a message to the service distribution organization, thereby permitting various interactive services.

Thus, the service distribution organizations require access restrictions which are both more secure and more flexible than those in conventional systems

BRIEF DESCRIPTION OF THE DRAWING

FIG. 1 is a block diagram of a conditional access system;

FIG. 2A is a block diagram of the service instance encryption techniques disclosed herein;

FIG. 2B is a block diagram of the service instance decryption techniques disclosed herein;

FIG. 3 is a more detailed block diagram of the service instance encryption and decryption techniques disclosed herein;

FIG. 4 is a block diagram of the techniques used to dynamically provide entitlement agents to a DHCT;

FIG. 5 is a block diagram of a digital broadband delivery system in which the conditional access system is implemented;

FIG. 6 is a block diagram of the conditional access system in the digital broadband delivery system of FIG. 5;

FIG. 7 is a diagram of an MPEG-2 transport stream;

FIG. 8 is a diagram of how EMMs are mapped into an MPEG-2 transport stream;

FIG. 9 is a diagram of how EMMs are mapped into an IP packet;

FIG. 10 is a diagram of how ECMs are mapped into a MPEG-2 transport stream;

FIG. 11 is a detailed diagram of an EMM.

FIG. 12 is a detailed diagram of a preferred embodiment of DHCTSE 627;

FIG. 13 is a diagram of the contents of memory in DHCTSE 627;

FIG. 14 is a diagram of how NVSCs are allocated to entitlement agents in a preferred embodiment;

FIG. 15 is a diagram of an EAD NVSC;

FIG. 16 is a diagram of other kinds of NVSCs;

FIG. 17 is a diagram of an event NVSC;

FIG. 18 is a diagram of a global broadcast authenticated message (GBAM);

FIG. 19 is a detail of the contents of one kind of GBAM;

FIG. 20 is a diagram showing how GBAMs may be used generally to provide data to a client application;

FIG. 21 is a diagram of a forwarded purchase message;

FIG. 22 is a diagram of the entitlement unit message in an ECM;

FIG. 23 is a diagram of a code message;

FIG. 24 is a diagram showing the relationship between TEDs and the rest of conditional access system 601;

FIG. 25 is a detailed diagram of a TED;

FIG. 26 is an illustration of the coordinate system used for spotlight and blackout;

FIG. 27 shows how an area is computed in the coordinate system of FIG. 26;

FIG. 28 is a description of a public key hierarchy; and

FIG. 29 is a description of an EMM generator according to the present invention.

The reference numbers in the drawings have at least three digits. The two rightmost digits are reference numbers within a figure; the digits to the left of those digits are the number of the figure in which the item identified by the reference number first appears. For example, an item with reference number 203 first appears in FIG. 2.

DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT

The following Detailed Description will first provide a general introduction to a conditional access system and to encryption and decryption, will then describe how service instance encoding and decoding is done in a preferred embodiment, and will thereupon describe the techniques used in the preferred embodiment to authenticate the ECMs and EMMs of the preferred embodiment. Next, the Detailed Description will describe how EMMs can be used to dynamically add and remove access to services and the role of encryption and authentication in these operations. Finally, there will be a detailed exposition of how the techniques described in the foregoing are employed in a broadcast data delivery system with a node structure and a reverse path from the set top box to the head end, of how secure processors and memory are employed in the preferred embodiment to protect keys and entitlement information, and of how certain operations are performed in the preferred embodiment.

Conditional Access System Overview

FIG. 1 provides an overview of a system 101 for limiting access to broadcast information. Such systems will be termed in the as "conditional access systems". A service distribution organization 103, for example a CATV company or a satellite television company, provides its subscribers with information from a number of services, that is, collections of certain kinds of information. For example, the History Channel is a service that provides television programs about history. Each program provided by the History Channel is an "instance" of that service. When the service distribution organization broadcasts an instance of the service, it encrypts or scrambles the instance to form encrypted instance 105. Encrypted instance 105 contains instance data 109, which is the encrypted information making up the program, and entitlement control messages (ECM) 107. The entitlement control messages contain information needed to decrypt the encrypted portion of the associated instance data 109. A given entitlement control message is sent many times per second, so that it is immediately available to any new viewer or a service. In order to make decryption of instance data 109 even more difficult for pirates, the content of the entitlement control message is changed every few seconds, or more frequently.

Encrypted instance 105 is broadcast over a transmission medium 112. The medium may be wireless or it may be "wired", that is, provided via a wire, a coaxial cable, or a fiber optic cable. It is received in a large number of set top boxes 113(0
. . . n), each of which is attached to a television set. It is a function of set-top box 113 to determine whether encrypted instance 105 should be decrypted and if so, to decrypt it to produce decrypted instance 123, which is delivered to the television set. As shown in detail with regard to set top box 113(0), set top box 113 includes decryptor 115, which uses a control word 117 as a key to decrypt encrypted instance 105. Control word 117 is produced by control word generator 119 from information contained in entitlement control message 107 and information from authorization information 121 stored in set-top box 113. For example, authorization information 121 may include a key for the service and an indication of what programs in the service the subscriber is entitled to watch. If the authorization information 121 indicates that the subscriber is entitled to watch the program of encrypted instance 105, control word generator 119 uses the key together with information from ECM 107 to generate control word 117. Of course, a new control word is generated for each new ECM 107.

The authorization information used in a particular set top box 113(i) is obtained from one or more entitlement management messages 111 addressed to set top box 113(i). Subscribers generally purchase services by the month (though a service may be a one-time event), and after a subscriber has purchased a service, service distribution organization 103 sends set top box 113(i) belonging to the subscriber entitlement management messages 111 as required to provide the authorization information 121
required for the purchased services. Entitlement management messages (EMMs) may be sent interleaved with instance data 109 in the same fashion as ECMs 107, or they may be sent via a separate channel, for example via an out-of-band RF link, to set top box 113(i), which stores the information from the entitlement management message (EMM) 111 in authorization information 121. Of course, various techniques have been employed to encrypt entitlement management messages 111.

Encryption and Decryption Generally

The encryption and decryption techniques used for service instance encoding and decoding belong to two general classes: symmetrical key techniques and public key techniques. A symmetrical key encryption system is one in which each of the entities wishing to communicate has a copy of a key; the sending entity encrypts the message using its copy of the key and the receiving entity decrypts the message using its copy of the key. An example symmetrical key encryption-decryption system is the Digital Encryption Standard (DES) system. A public key encryption system is one in which each of the entities wishing to communicate has its own public key-private key pair. A message encrypted with the public key can only be decrypted with the private key and vice-versa. Thus, as long as a given entity keeps its private key secret, it can provide its public key to any other entity that wishes to communicate with it. The other entity simply encrypts the message it wishes to send to the given entity with the given entity's public key and the given entity uses its private key to decrypt the message. Where entities are exchanging messages using public key encryption, each entity must have the other's public key. The private key can also be used in digital signature operations, to provide authentication. For details on encryption generally and symmetrical key and public key encryption in particular, see Bruce Schneier, Applied Cryptography, John Wiley and Sons, New York, 1994.

The design of an encryption system for a given application involves a number of considerations. As will be seen in the following, considerations that are particularly important in the broadcast message environment include the following:

key security: A symmetrical key system is useless if a third party has access to the key shared by the communicating parties, and a public key system is also useless if someone other than the owner of a given public key has access to the corresponding private key.

key certification: how can the recipient of a key be sure that the key he or she has received is really a key belonging to the entity to which the recipient wishes to send an encrypted message and not a key belonging to another entity which wishes to intercept the message?

message authentication: how can the recipient of a message be sure that the message is from the party it claims to be from, and/or that the message has not been altered?

speed of encryption and decryption: in general, symmetrical key encryption systems are faster than public key encryption systems and are preferred for use with real-time data.

key size: in general, the longer the key used in an encryption system, the more resources will be required to break the encryption and thereby gain access to the message.

All of the foregoing considerations are influenced by the fact that the environment in which a conditional access system operates must be presumed to be hostile. Many customers of broadcast services see nothing wrong with cheating the service provider and have nothing against tampering physically with the portion of the conditional access system that is contained in the receiver or using various cryptographic attacks to steal keys or to deceive the receiver about the source of the messages it receives. Moreover, the providers of the systems that actually broadcast the services do not necessarily have the same interests as the providers of the service content, and therefore need to control not only who can access a given instance of a service, but also what entities can offer services to a given receiver.

Service Instance Encryption and Decryption: FIGS. 2A and 2B

In overview, the encryption system of the present invention uses symmetrical key encryption techniques to encrypt and decrypt the service instance and public key encryption techniques to transport a copy of one of the keys used in the symmetrical key techniques of the key from the service provider to the set-top box.

In FIG. 2A, clear services such as the elementary digital bit streams which comprise MPEG-2 programs are sent through a 1.sup.st level encryption called the Program Encrypt function 201, which is preferably a symmetric cipher such as the well-known DES algorithm. Each elementary stream may be individually encrypted and the resulting encrypted streams are sent to MUX 200 to be combined with other elementary streams and private data, such as conditional access data. The key used in the Program Encrypt function 201 is called the Control Word (CW) 202. The CW 202 is generated by control word Generator 203 which can be either a physically random number generator or can use a sequential counter with a suitable randomization algorithm to produce a stream of random CWs. A new CW is generated frequently, perhaps once every few seconds and is applied to each elementary stream on the same time scale. Each new CW is encrypted by Control Word Encrypt & Message Authenticate function 204 using a Multi-Session key (MSK) 208 provided by Multi-Session Key generator 205. The CW is then combined into an ECM 107 with other service-related information. The ECM 107 is authenticated by Control Word Encrypt & Message Authenticate function 204 which produces a message authentication code using a keyed-hash value derived from the message content combined with a secret which can be shared with the receiving set-top box 113. This secret is preferably part or all of the MSK 208. The message authentication code is appended to the rest of the ECM 107. The CW 202 is always encrypted before being sent along with the other parts of the ECM to MUX 200. This encryption is preferably a symmetric cipher such as the Triple-DES algorithm using two distinct 56-bit keys (which taken together comprise MSK 208).

The MSK 208 has a longer lifetime than CW 202. The MSK lifetime is typically hours to days in length. MSK 208 is both encrypted and digitally signed by MSK Encrypt & Digital Signature function 206 before being sent to MUX 200 encapsulated in EMM 111. MSK 208 and other parts of EMM 111 are preferably encrypted using a public key algorithm, such as the well-known RSA algorithm, with a public key associated with the specific set-top box 113 to which the EMM is addressed. The public keys of all set-top boxes 113 in a system 101 are stored in Public Key Data Base 207. The public keys in this data base are preferably certified by a certificate authority. The digital signature function in 206 is preferably the RSA digital signature method, although others could be used. In the case of an RSA digital signature, the private key which is used to make the signature belongs to the entitlement agent within service distribution organization 103 responsible for authorizing the associated service.

In FIG. 2B, the corresponding DHCT private key and associated DHCT public secure micro serial number are stored in memory 232 of decoder 240. Public secure micro serial number is provided so that demultiplexer 230 can select an encrypted multi-session key addressed to decoder 240 from transport data stream (TDS). Encrypted multi-session key E.sub.Kpr (MSK) is decrypted in decryptor 234 using DHCT private key from memory 232 to provide multi-session key MSK. Demultiplexer 230 also selects from transport data stream TDS encrypted control word (CW) E.sub.MSK (CW). The encrypted CW is processed in decryptor 236 using multi-session key MSK as the decryption key to provide the unencrypted CW. The unencrypted CW preferably changes at a high rate, for example, once every few seconds. Demultiplexer 230 also selects from transport data stream TDS encrypted service E.sub.CW (SERVICE). The encrypted service is processed in decryptor 238 using the CW as the decryption key to recover the unencrypted service.

Detailed Implementation of the Encryption System of FIG. 2: FIG. 3

FIG. 3 presents more details about a preferred implementation of the system of FIG. 2. Encryption/decryption system 301 has two main components: service origination component 305 and service reception component 333. The two are connected by a transmission medium 331, which may be any medium which will carry a message from service origination component 305 to service reception component 333. Service reception component 333 is implemented in a set-top box, termed hereinafter a digital home communications terminal (DHCT). It may, however be implemented in any device which has the necessary computation power, for example, a personal computer or work station or an "intelligent" television set. In the service origination component, at least the portion labeled 306 is typically implemented in equipment located at the head end of a broadcasting system such as a cable television (CATV) or satellite TV system. In some embodiments, however, the head end may be provided with already-encrypted instances of the service. The remaining portion 308 may also be located at the head end, but may also be located anywhere which has access of some kind to head end 306 and service reception component 333. The latter is particularly the case if the EMMs are sent out of band, for example by way of a wide-area network such as the Internet. Also, the transmission medium may be storage media, where the service origination point is the manufacturer of the media, and the service reception component may be the element which reads the storage media. For example, the transmission medium can be a CD-ROM, DVD, floppy disk, or any other medium that can be transferred, physically, electronically, or otherwise.

Beginning with service origination portion 305, random number generator 307 is used to generate MSK 309. Next, an EMM 315 containing MSK 309 and related information is produced. EMM 315 also includes a sealed digest. The sealed digest has two purposes: to ensure that the information placed in EMM 315 by service origination 305 is the same information that arrives at DHCT 333 and to ensure that the information has in fact come from an entity which is empowered to give access to the service.

The sealed digest is made in two stages: first, a digest of the EMM's contents (here, MSK 309 and the related information) is made by hashing the contents in a secure one-way hash function to produce a relatively short bit string. The secure one-way hash function has three properties:

the contents that were hashed to produce the short bit string cannot be determined from the short bit string; and

any change in what is hashed produces a change in the short bit string; and

it is computationally infeasible to construct a different message which produces the same short bit string as the EMM.

The short bit string output of the hash function can thus be used to determine whether the contents of the EMM have changed in transit without disclosing those contents. The preferred embodiment uses the Message Digest 5 one way hash function, as indicated by the notation MD5. For details on one-way hash functions, see the Schneier reference, supra. The digest is a sealed digest because it is encrypted with a private key SP Kr 310 belonging to the entitlement agent (EA) that has the right to give the DHCT access to the service for which the MSK is used to produce the key. Before the sealed digest can be used to check whether the EMM was transmitted correctly, it must be decrypted using the entitlement agent's public key. The sealed digest thus confirms to the DHCT both that the contents of the EMM have been transmitted correctly and that the source of the EMM is the entitlement agent.

Once the sealed digest is made, the contents of the EMM (here, MSK 309 and the related information) are encrypted with the public key DHCT Ku 312 of the DHCT 333 to which EMM 315 is addressed and EMM 315, containing the encrypted contents and the sealed digest, is sent via transmission medium 331 to the DHCT 333. In the following, the notation Kr is used to indicate a private key and Ku is used to indicate a public key. The notation RSA indicates that the encryption is done using the well-known RSA public key encryption algorithm.

As shown in DHCT 333, EMM 315 can only be decrypted by the DHCT 333 whose private key 337 (DHCT Kr) corresponds to the public key used to encrypt EMM 315. DHCT 333 decrypts EMM 315 and uses the sealed digest to determine whether the EMM 315 was correctly transmitted. The determination is made by using public key SP Ku 335 for the entitlement agent to decrypt the sealed digest. Then the contents of EMM 315 are hashed using the same secure one-way hash function that was used to make the digest. If the results of this hash are identical to the decrypted sealed digest, the determination succeeds. The check with the sealed digest will fail if the transmission to the DHCT 333 was corrupted in transit, if DHCT 333 does not have the private key corresponding to the public key used to encrypt the EMM (i.e., is not the DHCT 333 for which EMM 315 was intended), or if DHCT 333 does not have public key 335 (SP Ku) corresponding to the private key of the EA that was used to make the sealed digest. The latter will be the case if that DHCT 333 has not been given access to services provided by the entitlement agent. EMMs 315 addressed to DHCT 333 are sent repeatedly; consequently, if the problem was corruption in transit, an uncorrupted EMM 315 will be received shortly and the determination will succeed. How DHCT 333 comes to have SP Ku 335 needed to decrypt the sealed digest will be explained in more detail later.

The next stage in service origination 305 is generating control word 319 used to actually encrypt service instance 325 and generating the ECM 323 which carries the information needed to decrypt the service instance to DHCT 333. The control word
319 is generated by random number generator 317. This can be a true random number generator, whose output is the result of some basic underlying random physical process, or some other means, for example, the result of encrypting a value, called a "counter" (which increments by one after each use) with 3DES, using the MSK as the key. In the case of a true random number, the encrypted control word is transmitted in the ECM. In the case of the counter-based control word generation, the clear version of the "counter" is used in the transmitted ECM. As mentioned above, the control word is a short-term key, i.e, it has a life time of a few seconds or less. Included in the ECM 323 is a digest of the contents plus the MSK which is made using the MD5 one-way hash just described. The inclusion of the MSK in making the digest gives the entitlement agent to which the ECM 323 belongs a shared secret with the DHCTs 333 that are entitled to receive service instances from the entitlement agent and consequently prevents "spoofing" of ECMs 323, that is, provision of ECMs 323 from a source other than the entitlement agent. As will be seen in more detail later, the preferred embodiment uses the shared secret technique generally to authenticate messages which contain messages that have real-time value with regard to an instance of a service.

ECM 323 is sent together with encrypted content 329 to DHCT 333. The first ECM 323 for a given portion of encrypted content 329 must of course arrive at DHCT 333 before the encrypted content does. In the preferred embodiment, content 325 and ECM 323 are encoded according to the MPEG-2 standard. The standard provides for a transport stream which includes a number of component streams. Some of these carry content 329, another carries the ECMs 323, and a third carries the EMMs 315. Only the streams carrying content 329 are encrypted according to DES 329; since the control words in ECMs 323 and the contents of EMMs 315 have already been encrypted, no further encryption is needed when they are sent in the MPEG-2 transport stream. The manner in which EMMs and ECMs are transported in the MPEG-2 transport stream will be described in more detail later.

When an ECM 323 is received in DHCT 333, control word 319 is either decrypted or found by encrypting the counter value at 343 using the MSK. The integrity of the contents of the ECM 323 is checked by comparing the value resulting from hashing the contents plus some or all of the MSK (based on cryptographic principles) in the one-way hash function with the message digest contained in ECM 323. Included in the contents are control word 319 and information identifying the service instance 325
which ECM 323 accompanies. The identifying information is used together with the authorization information received with EMM 315 to determine whether DHCT 333 is authorized to receive the service instance 325. If it is, control word 319 is used in service decryptor 347 to decrypt encrypted content to produce original content 325.

System 301 offers a number of advantages with regard to security. It takes advantage of the speed of symmetrical encryption systems where that is needed to decrypt encrypted content 329 and the control word in ECM 323. The control word is protected by encrypting it using the MSK, and ECM 323 is authenticated by using some or all of MSK 309 as a shared secret between the entitlement agent and DHCT 333. MSK 309 is protected in turn by the fact that it is sent in an EMM which is encrypted using the DHCT's public key and by the fact that the EMM includes a sealed digest which is encrypted using the entitlement agent's private key. Further security is provided by the fact that service identification information from ECM 323 must agree with the authorization information received in EMM 315 before control word 319 is provided to service decryptor 347. For example, as described in detail in the Banker and Akins parent patent application supra, one use of the information in ECM 323 and EMM
315 is to prevent what are termed "replay attacks" on the encrypted services. In addition to being secure, system 301 is flexible. The authorization information contained in EMM 315 and the service identification information contained in ECM 323
together permit a wide range of access to service instances received in DHCT 333.

Dynamic Provision of Multiple Entitlement Agents to DHCT 333: FIG. 4

The use of the sealed digest in EMM 315 means that DHCT 333 will not respond to EMM 315 unless it has a public key for the entitlement agent that has the power to give entitlements to the service to be decrypted by the MSK in EMM 315. This is part of a broader arrangement which makes it possible to dynamically provide DHCT 333 with one or more entitlement agents and to dynamically remove provided entitlement agents from DHCT 333.

The entity which provides and removes entitlement agents is called the conditional access authority (CAA). The arrangement further permits entitlement agents that have been provided to DHCT 333 to dynamically modify their authorization information in DHCT 333. All of the information needed to perform these operations is sent via EMMs, with the sealed digests being used to ensure that only the CAA may add or remove entitlement agents and that only the entitlement agent to which authorization information belongs may modify the authorization information.

The above arrangement has a number of advantages:

It permits multiple entitlement agents.

It permits dynamic addition and removal of entitlement agents.

It places limits on the services to which an entitlement agent may grant entitlements, but otherwise permits entitlement agents to manage their own authorization information.

It separates the business of providing entitlements to services and service instances from the business of actually providing instances of the service; consequently, a CATV operator may simply run as a distribution utility.

It separates the business of giving an entity the right to be an entitlement agent from the business of being an entitlement agent.

It provides an easy way of permitting a customer to change entitlement agents as he or she sees fit.

It provides a secure arrangement whereby a DHCT 333 may communicate by means of a reverse path with an entitlement agent, a conditional access authority, or potentially the provider of the instances of the service.

FIG. 4 shows how the arrangement is implemented in a preferred embodiment. FIG. 4 is best understood as an extension of FIG. 3. Both FIG. 4 and FIG. 3 have the same major components: service origination 305, DHCT 333, and transmission medium
331 for coupling the two. Further, encryptor 313 and decryptor 339 are used in both figures. Moreover, as indicated by reference number 308, the EMMs may be either sent together with a service instance or by another channel. FIG. 4 further shows an additional component of DHCT 333, namely EMM manager 407. EMM manager 407 is implemented in software executed in a secure processor in DHCT 333. The task of EMM manager 407 is to respond to EMMs which add or remove entitlement agents and to EMMs which modify the authorizations for an entitlement agent. EMM manager 407 further provides messages by means of which DHCT 333 may communicate with an entitlement agent or a conditional access authority.

Initially, EMMs that modify an entitlement agent's authorization information are made in response to modification information 403 provided by the entitlement agent or required by the network operator. As shown at 313, the modification information is encrypted using the public key 312 for DHCT 333 and has a sealed digest that is encrypted using the private key 310 for the entitlement agent. The resulting authorization modification EMM 405 is sent via transmission medium 331 to decryptor 339 in DHCT 333, where it is decrypted and checked in the manner described above for EMMs 315 containing an MSK. The EA modification information 403 contained in the EMM goes, however, to EMM manager 407, which uses the information to modify the authorization information for the entitlement agent in DHCT 333. Examples of modifications include adding or canceling services provided by the entitlement authority and changing the conditions under which access to instances of a given service will be granted.

As indicated above, the sealed digest is encrypted using the private key of the entitlement agent. Consequently, the validity of the EMM can only be determined if DHCT 333 has the entitlement agent's public key. The public key for an entitlement agent is provided to DHCT 333 by an EA allocation EMM 413 from a conditional access authority. EMM 413 contains entitlement agent allocation information 409 from the conditional access authority; at a minimum, entitlement agent allocation information 409 contains the public key for the entitlement agent; it may also contain information about the amount of memory an entitlement agent may have in DHCT 333 and about classes of service that an entitlement agent may offer. For example, the entitlement agent may not be permitted to offer interactive services. Information 409 is encrypted with the public key 312 of DHCT 333, and the sealed digest is encrypted with private key 411 of the conditional access authority.

In DHCT 333, EMM 413 is decrypted using private key 337 belonging to DHCT 333 and the sealed digest is decrypted using CAA public key 415. If the digest confirms the correctness of the contents of the EMM, EMM manager 407 allocates storage for the entitlement agent whose public key is contained in EMM 413. That done, EMM manager 407 places the entitlement agent's public key in the storage. The storage provides a place to store the entitlement agent's public key, the authorization information for the services and service instances provided by the entitlement agent, and the MSKs provided by the entitlement agent. Once DHCT 333 has the entitlement agent's public key and storage for the entitlement agent's authorization information and MSK, EMM manager 407 can respond to EMMs from the entitlement agent. Of course, in order to decrypt the sealed digest, DHCT 333 must have public key 415 for the conditional access authority. As will be explained in more detail later on, in a preferred embodiment, public key 415 and the public and private keys for DHCT 333 are installed in DHCT 333 at the time that DHCT 333 is manufactured.

When a customer orders a service, the arrangements just described interact as follows: 1. If the service is provided by an entitlement agent for which the customer's DHCT 333 does not have the public key, the conditional access authority must first send EA allocation EMM 413 to DHCT 333; EMM manager 407 responds by allocating storage for the entitlement agent. Only the conditional access authority can send EA allocation EMM 413, and consequently, the conditional access authority (CAA) can control access by entitlement agents to customers of a particular service distribution organization. 2. If DHCT 333 has the entitlement agent's public key, either because step (1) has just been performed or was performed at some time in the past, the entitlement agent sends modification EMM 405 with the authorization information for the newly-ordered service or service instance to DHCT 333. EMM manager 407 responds thereto by storing the authorization information in the allocated space. 3. Once step (2) is done, DHCT 333 can receive EMM 315 with the MSK for the service from the entitlement agent. EMM manager 407 stores the MSK in the allocated space. 4. When the actual service instance is sent, it is accompanied by ECMs containing the current control word. The MSK is used to decrypt the ECMs and the control words obtained from the ECMs are used to decrypt the instance of the service.

The above use of EMMs and ECMs to control access to instances of a service thus guarantees that no entitlement agent will have access to DHCT 333 without permission of the conditional access authority and that no DHCT 333 will have access to an instance of a service without permission of the entitlement agent for the service. It also makes it possible for the entitlement agent to be in complete control of the service. Access to the service is defined by the EMMs 405 and 315, and these may be sent by the entitlement agent to DHCT 333 independently of the service distribution organization. Further, it is the entitlement agent which provides the MSK used to generate control words and decrypt the ECM to both the service distribution organization and DHCT 333. Indeed, if the entitlement agent wishes to do so, it can itself provide encrypted instances of the services to the service distribution organization, which, in such a case, merely functions as a conduit between the entitlement agent and DHCT 333.

Secure Transmission of Messages via the Reverse Path

FIG. 4 also shows how the techniques used to ensure the security of EMMs are also used to ensure the security of messages sent from DHCT 333. The example shown in FIG. 4 is a forwarded purchase message (FPM). The forwarded purchase message is used for the interactive purchase of an instance of a service. One example of such a purchase is what is called impulse pay-per-view, or IPPV. In such a system, the beginning of an event, for example, a baseball game, is broadcast generally and customers can decide whether they want to see all of it. In that case, they must provide input to DHCT 333 that indicates that they wish to see the entire event. EMM manager 407 responds to the input by making the FPM and sending it to the entitlement agent so that the entitlement agent can charge the customer for the event and send an EMM 315 confirming that DHCT 333 may continue to decrypt the event. The information needed by the entitlement agent is forwarded entitlement information 417; to ensure the privacy of the customer, this information is encrypted using the 3DES algorithm with a key 420, as shown at 343, to produce encrypted forward entitlement information 419. The key 420 is composed of two 56-bit DES keys. The 3DES encryption operation is a sequence of three DES operations: encryption using the first DES key, decryption using the second DES key, and encryption using the first DES key Then key 420 is encrypted using the public key 335 of the entitlement agent and the sealed digest is made using the private key of DHCT 333. All of these parts together make up forwarded purchase message 421, which is addressed to the entitlement agent.

At the entitlement agent, key 420 is decrypted using the entitlement agent's private key 310, and the sealed digest is decrypted using the public key 312 of the DHCT. If the Encrypted Forwarded Entitlement Information (EFEI) 419 contained in the FPM 421 is determined not to have been tampered with, it is passed to 3DES decryption 443, which decrypts it using key 420 and provides forwarded entitlement information 417 to the entitlement agent. As will be immediately apparent, the same technique, with or without the 3DES encryption of the contents of the message, can be used to send messages to any entity for which DHCT 333 has the public key. At a minimum, this includes the CAA and any entitlement agent which has been allocated memory in DHCT
333.

Authentication of Global Broadcast Messages

A global broadcast message is one which is not addressed to any individual DHCT 333 or to any group of DHCTs 333. In a preferred embodiment, global broadcast messages accompany instances of services and contain information that is relevant to the instance they accompany. Consequently, the encryption and authentication techniques used in the global broadcast messages must permit rapid decryption and authenticity checking. One example of a global broadcast message is the ECM. Other examples are the different types of global broadcast authenticated messages, or GBAMs. As with ECMs, it is necessary to prevent global broadcast messages from being spoofed, and it is done in the same fashion as with the ECMs. More specifically, the digest is made using some or all of the MSK together with the content of the global broadcast message. The MSK thus functions as a shared secret between the entitlement agent and DHCT 333. When EMM manager 407 receives the global message, it makes a digest using the contents of the received message and the MSK and responds to the received message only if the digest agrees with the one contained in the message. An advantage of using a digest made with the MSK to authenticate the global broadcast message is that the digest may be both made and checked very quickly.

Implementation of the Conditional Access System in a Digital Broadband Delivery System

The foregoing has described the conditional access system in terms of ECMs, EMMs, and other messages and in terms of the manner in which the messages and their digests are encrypted and decrypted. The conditional access system as just described will work with any communications arrangement which permits an instance of a service to be delivered to a DHCT together with ECMs and other broadcast messages and which permits the DHCT to receive EMMs from a conditional access authority and one or more entitlement agents. The conditional access system is, however, particularly well-suited for use in a modern digital broadband delivery system, and the following will describe how the conditional access system is implemented in such a delivery system.

Overview of the Digital Broadband Delivery System: FIG. 5

FIG. 5 provides an overview of digital broadband delivery system (DBDS) 501. DBDS 501 includes service infrastructure 503, a headend 515, a transport infrastructure 517, hubs 519(0 . . . n), access networks 521(0 . . . n), and Digital Home Communications Terminals (DHCTs) 333. The service infrastructure consists of Value-Added Service Provider (VASP) systems 509, which are systems that provide services to the broad band delivery system, the Digital Network Control System (DNCS) 507, which manages and controls services provided by means of DBDS 501, the Administrative Gateway (AG) 505, which is a source of service provisioning and authorization information in DBDS 501, Network Management System (NMS) 511, which maintains a database of system status and performance information, and the Core Network 513, which interconnects other Service Infrastructure 503 components with headend 515. In a preferred embodiment, Core Network 513 consists of ATM-based switching and transmission facilities. Headend 515 provides an interface between service infrastructure 503 and transport infrastructure 517. Transport infrastructure 517 provides a high-bandwidth interconnection from headend 515 to hubs 519(0 . . . n). Each hub 519(i) serves an access network 521(i), which consists of hybrid fiber coax (HFC) nodes 523 connected via a coax bus network to DHCTs 333. A given DHCT 333(k) in DBDS 501 thus belongs to an HFC node 532(j) in an access network 521(i). Transport infrastructure 517
and access network 523 may provide only a forward channel from head end 515 to a given DHCT 333(k), but preferably provide both a forward channel and a reverse path. Each instance of a DBDS 501 generally provides service to a metropolitan area.

DBDS 501 can be implemented in a variety of configurations to fit the circumstances of a particular service environment. For example, headend equipment may be deployed within headend 515, within a hub 519(i), or as part of a VASP system 509. DNCS components 506 may be deployed within headend 515 or distributed among the hubs 519. Transport infrastructure 517 may utilize SONET add/drop multiplexing, analog fiber technology, or other transmission technologies.

Overview of the Conditional Access System: FIG. 6

FIG. 6 shows the components of a preferred embodiment of conditional access system 601 in DBDS 501. Conditional access system 601 is a collection of components DNCS 507, headend 515, and DHCT 333 that together provide security and conditional access services.

The components of conditional access system 601 perform the following functions: 1. encrypting the service content 2. encrypting the control words used for service encryption 3. authenticating the ECMs that contain the encrypted control words
4. passing the ECMs to DHCTs 5. managing a subscriber authorization database 6. encrypting and authenticating EMMs containing subscriber entitlement information 7. passing the EMMs to DHCTs 8. decrypting the EMMs and checking their authenticity at the DHCTs 9. responding to the EMMs by modifying entitlement information in the DHCTs 10. responding to the ECMs by authenticating them, decrypting the control word, and checking entitlement at DHCT 333, and 11. if the ECM is authentic and the authorizations permit, decrypting the service content.

These requirements are met by the following components of conditional access system 601:

Stream Encryption & ECM Streamer Modules 620 in head end 515;

Control Suite 607 in DNCS 507; I. Transaction Encryption Device 605 in head end 515, with secure link to DNCS 507; II. Service Decryptor Module 625 in DHCT 333; III. Security Manager Module 626 in DHCT 333; and IV. DHCTSE 627 in DHCT 333.

FIG. 6 depicts a typical configuration of these components for securing digital services within DBDS 501. In the following, the components will be described in more detail.

Service Encryption & ECM Streamer Module 620

Service Encryption and ECM Streamer (SEES) module 620 is a component of QAM Modulator 619 that operates under direction of control suite 607 to encrypt the MPEG-2 transport stream packets that are employed in the preferred embodiment to transmit service content 325. As shown in FIG. 6, service content 325 may be received from sources such as a digital satellite distribution system 613, a digital terrestrial distribution system 611, or a media server 609. Media server 609 may be connected to head end 515 by a broadband integrated gateway 615. SEES 620 uses MSK 309 to generate the control words 319 used for service encryption and creates ECMs 323 for transporting the control words together with encrypted service content 329 within the outgoing MPEG-2 Transport Stream. SEES 620 encrypts the control words in the ECMs 323 with MSKs 309. The MSKs are generated by TED 603 and are sent to SEES 620 in encrypted form in EMM-like messages.

DHCT 333

DHCT 333 is connected between the HFC network 521 and the customer's television set. DHCT 333 receives and interprets EMMs, ECMs, and GBAMs and decrypts instances of services. DHCT 333 further provides the customer interface for DBDS 501 and receives customer input 628 from the customer. In response to the customer input, DHCT 333 may generate FPMs or other messages that travel via the reverse path to the CAA or to EAs. In a preferred embodiment, DHCT 333 is implemented using a combination of general purpose processors, ASICs, and secure elements (which may be implemented discretely or integrated). For purposes of the present discussion, DHCT 333 has three important components: service decryption module 625, security manager 626, and DHCT secure element (DHCTSE) 627. Service decryption module 625 is preferably implemented in an ASIC, and security manager 626 is preferably implemented in software. DHCTSE 627 is a secure element for performing security and conditional access-related functions.

Service Decryptor Module 625

Service decryptor module 625 is the component of DHCT 333 that decrypts the encrypted MPEG-2 transport stream packets. Service decryptor 625 receives the control words to be used for service decryption from DHCTSE 627. DHCTSE 627 controls which transport stream packets are decrypted by only passing the control words for authorized services to service decryptor 625.

Security Manager 626

Security manager 626 is a software module of the DHCT that provides an interface between applications running on DHCT 333 which use the conditional access system and DHCTSE 627. It also coordinates processing between the service decryptor module and DHCTSE 627.

DHCTSE 627

DHCTSE 627 stores keys, interprets EMMs and ECMs, and produces FPMs. With the EMMs and ECMs, it does the decryption and authentication required for interpretation and with FPMs, it makes the sealed digest and encrypts the FPM. Thus, in the preferred embodiment, EMM manager 407 is implemented in secure element 627. In addition, DHCTSE 627 provides encryption, decryption, digest, and digital signature services for other applications executing on DHCT 333. Secure element (DHCTSE) 627
includes a microprocessor and memory that only the microprocessor may access. Both the memory and the microprocessor are contained in tamper-proof packaging. In interpreting EMMs, DHCTSE 627 acquires and stores keys and entitlement information; in interpreting ECMs, DHCTSE 627 uses the entitlement information to determine whether DHCT 333 receiving the ECM has an entitlement for the instance of the service which the ECM accompanies; if it does, DHCTSE 627 processes the ECM, and provides the control word to service decryptor module 625 in a form that it may use to decrypt or descramble services. DHCTSE 627 further records purchase information for impulse-purchasable services such as IPPV and stores the purchase data securely until the data is successfully forwarded via a forwarded purchasing message to control suite 607. DHCTSE 627 maintains MSK for the EAs, the private/public key pairs for DHCT 333, and the public keys of the conditional access authorities and the entitlement agents.

Control Suite 607

Control suite 607 is a member of the DNCS family of software. Control suite 607 controls the encryption of services performed by a SEES module 620 based upon input from the DNCS broadcast control suite component. Control Suite 607 also maintains a database of subscriber authorizations based upon transactions received from Administrative Gateway 511. Control suite 607 generates EMMs for communicating subscriber authorizations and other conditional access parameters to the DHCTSE 627. Control suite 607 acts on behalf of entitlement agents. The EMMs generated by control suite 607 for communicating subscriber authorizations and other conditional access parameters to DHCTSE 627 are encrypted with the public keys of the DHCTs 333 to which they are directed and are authenticated with the private key of the EA, which is maintained by transaction encryption device (TED) 603. DHCTSE 627 maintains the public key of the EA and uses it to confirm the authenticity of EMMs generated by control suite 607 for the EA.

Control Suite 607 further enables the establishment of a conditional access authority (CAA). Control suite 607 generates EA allocation EMMs 413 which pass the public key of the EA to a DHCTSE 627. These EMMs 413 are encrypted as described above, but are authenticated using a digital signature made with the private key of the CAA, which is maintained by TED 603. DHCTSE 627 is pre-provisioned with the public key of the CAA for use in confirming the authenticity these EMMs 413.

Communications between control suite 607 and the rest of conditional access system 601 are by means of LAN interconnect devices 605 and 617. Device 605 connects Control Suite 607 to Administrative Gateway 505, from which it receives the information necessary to make ECMs and EMMs, and device 617 connects it to the SEES modules 620 in the QAM modulators and to QPSK modulator 621 and QPSK demodulator 623, which are in turn connected to HFC network 521. The connection between Control Suite 607 and DHCT 333 via LAN interconnect device 617, modulator 621, demodulator 623, and HFC network 521 implements the reverse path needed for messages such as FPM 421 and also implements a forward channel to DHCT 333. This forward channel is independent of the forward channel used to provide the services. In conditional access system 601, Control Suite 607 can send EMMs or broadcast messages to DHCT 333 either by the forward channel just described or by sending them together with an instance of a service.

Transaction Encryption Device 603

Transaction Encryption Device (TED) 603 serves as a peripheral to Control Suite 607. TED 603, under the direction of Control Suite 607, encrypts and makes sealed digests of various conditional access system messages, including EMMs. TED 603 may also generate and store (MSKs) which are used by SEES 620 to encrypt the control words in the ECMs and to decrypt the control words in DHCTSE 627. TED 603 further uses the MSKs to authenticate the global broadcast message class of conditional access system messages. Authentication is done by hashing the contents of the message together with some or all of the MSK. TED 603 decrypts and verifies the authenticity of Forwarded Purchase Messages 421 sent from the DHCTs 333 as well as other messages sent using the reverse path. TED 603 maintains the private keys of the CAA and the EA and receives from the DNCS the public keys of the DHCTs from which it receives messages. As will be explained in more detail below, TED 603 receives the public keys from a source that confirms the authenticity of each key. TED 603 finally makes a sealed digest for the EMMs using the private key of the CAA and EA as appropriate for the EMM.

Using the Conditional Access System to Support Services and Programs Executing in DHCT 333 or Service Infrastructure 507

The conditional access system can be utilized to secure the provisioning of a service or to provide security services to programs executing on DHCT 333 or programs in Control Suite 607. Secure service provision does not require that the DHCT programs that support the service be secure. The reason for this is that the following may be done only by DHCTSE 627 in DHCT 333 or by a TED 603:

generation of the MSK;

storage of the MSK;

storage of the keys needed to encrypt and/or decrypt EMMs and to make and check sealed digests;

storage of the entitlement information received from the EAs;

encryption and/or decryption of EMMs;

encryption or decryption of the control word;

provisioning of the MSK to SEES module 607 and the decrypted control word to service decryption module 625;

making and checking digests with shared secrets;

making and checking sealed digests;

confirming that a DHCT 333 is entitled to receive a service.

A program executing on DHCT 333 or a program in control suite 607 has no access to any of the information stored in DHCTSE 627 or TED 603 and can thus do nothing with EMMs and ECMs beyond asking DHCTSE 627 or TED 603 to generate or interpret them. For example, when DHCT 333 receives an EMM, it simply passes the EMM to DHCTSE 627 for processing; when it receives an ECM, it does the same; if the authorization information contained in the ECM and stored in the DHCTSE 627 indicates that DHCT
333 is entitled to the service, DHCTSE 627 provides the decrypted control word to service decryption module 625.

The conditional access system can also do security checking for programs generally. For example, a program executing on DHCT 333 that requires downloaded information from a server application may expect that a sealed digest was added to the information before it was downloaded, and the program may use DHCTSE 627 to check the sealed digest and determine whether the information is authentic, but it is up to the program to decide what to do with the information when DHCTSE 627 indicates that it is not authentic.

Details of Messages in Conditional Access System 601

In conditional access system 601, the ECM, the EMM, the FPM, and the GBAM are all different types of conditional access messages. The conditional access messages all have a common format, namely a header, the message itself, and a message authentication code, or MAC. The header contains the following information:

the type of the message, i.e., whether it is an ECM, EMM, GBAM, or something else;

the length of the message;

an identifier for the conditional access system;

an identifier for the type of security algorithm used with the message, including encryption of the message and authentication of its contents; and

the length of the message content.

The header is followed by the encrypted message and the MAC, which, depending on the message type, may be a sealed digest or a digest made with some or all of the MSK together with the message.

In digital broadband delivery system 501, CA messages may travel either in a MPEG-2 data stream or in an IP packet, that is, a packet made according to the rules of the Internet Protocol. Also, other transport protocols such as ATM may be used. In the preferred embodiment, messages from control suite 607 to DHCT 333 may travel in MPEG-2 or IP packets; messages from DHCT 333 to control suite 607 travel as IP packets on the reverse path provided by QPSK demodulator 623 and LAN interconnect device
617. In general, messages to DHCT 333 which are closely associated with particular instances of services, such as ECMs and GBAMs, travel in the MPEG-2 data stream; EMMs may travel either in the MPEG-2 transport stream or as IP packets via LAN interconnect device 617 and QPSK modulator 621.

CA Messages in the MPEG-2 Transport Stream: FIG. 7

FIG. 7 is a schematic representation of an MPEG-2 transport stream 701. An MPEG-2 transport stream is made up of a sequence of 188-byte long transport packets 703. The packets 703 in the stream carry information that, when combined at DHCT 333, defines an instance of a service and the access rights of a given DHCT 333 to the service. There are two broad categories of information: program 709, which is the information needed to produce the actual pictures and sound, and program specific information (PSI) 711, which is information concerning matters such as how the transport stream is to be sent across the network, how the program 709 is packetized, and what data is used to limit access to the program 709. Each of these broad categories has a number of subcategories. For example, program 709 may include video information and several channels of audio information.

Each transport packet 703 has a packet identifier, or PID, and all of the packets 703 that are carrying information for a given subcategory will have the same PID. Thus, in FIG. 7, the packets carrying Video 1 all have PID (a), and the packets belonging to that subcategory are identified by 705(a). Similarly, the packets carrying Audio 1 all have PID (b), and the packets belonging to that category are identified by 705(b). A subcategory of information can thus be identified by the PID of its packets. As shown at output packets 707, the output from mux 704 is a sequence of contiguous individual packets from the various subcategories. Any part or all of MPEG-2 transport stream 701 may be encrypted, except that packet headers and adaptation fields are never encrypted. In the preferred embodiment, the sets of packets making up program 709 are encrypted according to the DES algorithm, with the control word as a key.

Two of the subcategories are special: those identified by PID 0 (705(e)) and PID 1 (705(c)) list the PIDs of the other packets associated with the service(s) and thus can be used to find all of the information associated with any service. The packets in PID 1 705(c) have as their contents a conditional access table 710, which lists the PIDs of other packets that contain EMMs. One set of such packets appears as EMM packets 705(d), as indicated by the arrow from CAT 710 to packets 705(d). Each packet 703 in packets 705(d) contains private information, that is, information which is private to conditional access system 601. As will be explained in more detail below, private information 713, for the purposes of this invention, is a sequence of CA messages, each of which contains an EMM, and private information 719, is a sequence of messages, each of which contains an ECM.

The packets in PID 0 705(e) contain a program association table which lists PIDs of packets that are associated with a particular instance of a service. One such set of packets is program maps packets 705(f), which contain a program map table
717 that lists, amongst other things, the PIDs of transport packets 703 containing ECMs for the program. One such set of packets is shown at 705(g). Each of the transport packets contains private information 719, which in this case is a sequence of CA messages, each of which contains an ECM.

FIG. 8 shows in detail how EMMs are carried in transport packets 703. The payload space 719 in the packets carries data from a CA.sub.-- PRIVATE.sub.-- SECTION layer 803, which in turn contains a sequence of CA messages 805, each of which contains an EMM 807. In the sets of packets 705(g) carrying ECMs, the control words in the ECMs are encrypted using the 3DES algorithm with the MSK as key; in the sets of packets 705(d) carrying EMMs, the EMMs are encrypted using the public key of DHCT
333 for which they are intended. As will be immediately apparent, the techniques just described can be employed to transmit any CA message 805 as part of an MPEG-2 transport stream.

Mapping CA Messages into IP Protocol Packets: FIG. 9

FIG. 9 shows how EMMs are mapped into the Internet Protocol (IP) packets used to communicate between control suite 607 and DHCT 333 via LAN device 617 and QPSK modulator 621 and demodulator 623. An IP packet 903 is a variable-length packet that consists simply of a header and a payload. The header contains source and destination IP addresses for the packet. With an EMM, the source address is the IP address of the CA or EA, and the destination address is the IP address of DHCT 333. In the preferred embodiment, the IP address of DHCT 333 is constructed using its serial number. The IP addresses in DBDS 501 are partitioned by HFC node 523. The payload of the IP packet is a packet 905 belonging to the User Datagram Protocol (UDP) which has as its payload a CA.sub.-- PRIVATE.sub.-- SECTION 803, which in turn contains a sequence of CA messages 805, each of which contains an EMM 807.

ECM Structure Details: FIG. 10

FIG. 10 shows details of the structure of an ECM 1008 and shows the mapping 1001 from an ECM 1008 to a set 705(e) of MPEG-2 transport packets 703. As before, the data of a CA.sub.-- PRIVATE.sub.-- SECTION 803 is carried in a set of MPEG-2
transport packets 703 with the same PID. The data is a header 1003 for private section 803 and a sequence of CA messages 805, each of which includes a CA message header 1005, a CA ECM message 1007, and an ECM MAC 1013. CA ECM message 1007 and ECM MAC
1013 together make up ECM 1008.

FIG. 10 also shows how the control word is protected in ECM 1008 and how ECM MAC 1013 is produced. The control word is a random value that is either encrypted using 3DES encryption or created by encrypting a counter value using 3DES encryption, using the MSK as the key. In either case, the preferred embodiment calls for an MSK which is made up of two 56-bit DES keys, and the 3DES encryption operation is a sequence of three DES operations: encryption using the first DES key, decryption using the second DES key, and encryption using the first DES key. The control word, too, may have even or odd parity. As shown at 1013, the odd control word (after suitable encryption) becomes part of ECM.sub.-- entitlement.sub.-- unit.sub.-- message 1011, and, in its non-encrypted form, is used together with some or all of the MSK as input to the MD5 one-way hash function to produce ECM MAC 1013. The same procedure is used with the even-parity control word. The contents other than the control word of ECM.sub.-- entitlement.sub.-- unit.sub.-- message 1011 will be examined in more detail later.

EMM Structure Details: FIG. 11

FIG. 11 shows a CA message 805 which contains an EMM 1112. CA message 805 has a header 1003, a CA EMM message 1101, and a sealed digest 1103. CA EMM message 1101 consists of CA EMM message header 1105, EMM message 1107, and CRC error detection code 1109. EMM message 1107 in its turn contains EMM header 1113 and EMM.sub.-- inside.sub.-- data 1115. EMM.sub.-- inside.sub.-- data 115 is encrypted using the public key of the DHCT 333 for which it is intended. The data which is encrypted is EMM data 1129, which in turn is made up of EMM.sub.-- inside.sub.-- header 1123 and EMM command.sub.-- data 1125 together with padding 1127. EMM data 1129 is also input to the MD5 one-way hash function to produce EMM MAC 1119 and sealed digest 1103 is made by encrypting EMM.sub.-- signing.sub.-- header 1117, EMM MAC 1119, EMM.sub.-- signing header 1117, and padding 1121 with the private key of either an entitlement agent or a conditional access authority, depending on what kind of EMM it is.

The EMM.sub.-- signing.sub.-- header is information from the EMM.sub.-- inside.sub.-- header. This information is particularly sensitive and is consequently encrypted by both the public key of DHCT 333, for privacy reasons, and the private key of the entitlement agent or the conditional access authority, to apply a digital signature. Upon reception, and after the privacy decryption, if the signature verification fails, the EMM is discarded by DHCT 333. Included in this information are an ID for the conditional access system, the type of the CA message, the serial number of the microprocessor in the DHCT's DHCTSE 627, an identifier for the CAA or EA which is the source of the EMM, an indication of which of the three public keys for the CAA in DHCT 333's secure element is to be used to decrypt the sealed digest, and an indication of the format of the EMM. The contents of EMM command.sub.-- data 1125 will be explained in more detail in the discussion of the operations performed using EMMs.

Details of DHCTSE 627: FIGS. 12-14

DHCTSE 627 has five main functions in conditional access system 601:

It securely stores keys including the public and private keys for DHCT 333, public keys for the CAA, public keys for EAs from which DHCT 333 is authorized to receive services, and MSKs provided by those EAs.

It securely stores entitlement information sent by the EAs.

It decrypts, authenticates, and responds to EMMs.

It decrypts the control words in the ECMs, authenticates the ECMs, and when DHCT 333 is authorized to receive the service instance to which the ECM belongs, it provides the control word to service decryptor 625.

It provides encryption, decryption, and authentication services to applications running on DHCT 333.

DHCTSE 627 includes a microprocessor (capable of performing DES), specialized hardware for performing RSA encryption and decryption, and secure memory elements. All of the components of DHCTSE 627 are contained in a single tamper-proof package, such as a package that upon attempting to access the information contained within the information is destroyed. Only the components of DHCTSE 627 have access to the information stored in the secure memory elements. Any attempt by a user to gain access to any of the parts of DHCTSE 627 renders DHCTSE 627 unusable and its contents unreadable. DHCTSE 627 may be an integral part of DHCT 333 or it may be contained in a user-installable module such as a "smart card". The user "personalizes" the DHCT 333
by installing the module in it.

FIG. 12 provides an overview of the components of DHCTSE 627. As shown, the components of DHCTSE 627 are all connected to a bus 1205. Beginning with interface 1203 to the general purpose processor upon which applications execute in DHCT 333, interface 1203 permits passage of data between the remaining components of DHCT 333 and DHCTSE 627, but does not permit components in the remainder of DHCT 333 to address and read the contents of secret values in memory in DHCTSE 627. Microprocessor
1201 executes the code for doing encryption, decryption, and authentication and interpreting EMMs and ECMs; RSA hardware 1217 is special hardware performing the calculations involved with RSA encryption and decryption. Memory 1207 contains the code executed by microprocessor 1201, the keys, and the entitlement information. In a preferred embodiment, there are two kinds of physical memory in memory 1207: ROM 1219, which is read-only memory whose contents are fixed when DHCTSE 627 is manufactured, and non-volatile memory (NVM) 1209, which can be read and written like normal random-access memory, but which retains its current values when DHCTSE 627 is without power. Non-volatile memory 1209 is organized as a set of non-volatile storage cells (NVSCs) 1211(0 . . . n), as described in U.S. Pat. No. 5,742,677, Pinder, et al., Information Terminal Having Reconfigurable Memory, filed Apr. 3, 1995.

As will be explained in greater detail below, code executing in microprocessor 1201 dynamically allocates NVSCs 1211 to entitlement agents. In the preferred embodiment, NVM 1209 is used for the storage of information which can be rewritten by means of EMMs, and ROM 1219 is used for code which will not change during the life of DHCTSE 627.

FIG. 13 is a schematic overview of the contents of memory 1207 in DHCTSE 627. The memory is divided into two main parts: read-only storage 1301, which contains code and other information that does not change as a result of the interpretation of EMMs, and NVA storage 1303, which is non-volatile storage that changes as a result of the interpretations of EMMs. RO storage 1301 contains code 1305.

Code 1305 falls into four categories: code 1307 for the encryption, decryption, and authentication operations performed by DHCTSE 627, code for interpreting EMMs 1313, code for interpreting ECMs 1321, and code for handling other CA messages such as the FPM and the GBAM. Code 1307 includes code 1308 for the MD5 one-way hash algorithm, the code 1309 for the RSA public key algorithm, and the code 1311 for the 3DES algorithm. EMM code 1313 falls into three classes: code 1315 which interprets EMMs received from a conditional access authority, code 1317 which interprets EMMs employed by the entitlement agents to configure the storage allocation they receive from the CAA, and code 1319 which interprets EMMs containing MSKs and entitlements. Code
1315, 1317 and 1319 thus implements EMM manager 407 in a preferred embodiment. The code for interpreting ECMs 1321 decrypts the control word contained in the ECM and checks whether DHCT 333 is permitted to access the instance of the service that the ECM accompanies; if so, the code provides the decrypted control word to service decryption module 625. The code for other CA messages 1323 deals with messages such as the FPM and GBAM.

NVA storage 1303 has two main components: administrative storage 1330 and EA storage 1331. Administrative storage 1330 contains DHCT keys 1325, CAA keys 1329, and CAA data 1330. Beginning with DHCT keys 1325, each DHCT 333 has two public-private key pairs. The public key of one of the pairs serves as the public key used to encrypt EMMs sent to DHCT 333, and the private key is used in DHCT 333 to decrypt the messages; the private key of the other of the pairs is used to encrypt the sealed digests of messages sent by DHCT 333, and the public key is used by other network elements to decrypt the sealed digests of messages received from DHCT 333. The pairs of keys are installed in DHCTSE 627 when DHCTSE 627 is manufactured.

In a preferred embodiment, the manufacturer of DHCT 333 maintains a certified database which has the serial number of each DHCT together with the pair of public keys belonging to it. When a CAA or EA wishes to begin sending EMMs to a DHCT 333, it sends a message to control suite 607 with the serial number of the DHCT. Control suite 607 responds to the request by requesting the public key for the DHCT from a database maintained by the manufacturer of DHCT 333. The database responds to the message by sending control suite 607 certified copies of the public keys for the DHCT. The manufacturer thus functions as the certification authority for the keys. Control suite 607 stores the public keys in a database of its own. For details on key certification, see Schneier, supra, pages 425-428. Getting the public keys for the DHCT from t