Method and apparatus for portably binding license rights to content stored on optical media

A method and system for portably binding license rights to content stored on an optical media is disclosed. Media player controllers include a secret that is used in conjunction with indelible media identifiers and digital certificates provided via a key issuance center to permit decryption of content initially distributed and freely copyable in encrypted form.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to systems and methods for disseminating content to users for, and in particular to a system and method for portably binding license rights to content stored in optical media

2. Description of the Related Art

The digitization of audio visual media content such as television shows and movies has enabled viewers to purchase their own copies of such media content for personal enjoyment. Such media content may be disseminated via tangible media such as optical discs, or may be disseminated by downloading the digital media from a content server or kiosk to a writable medium for later playback. Unfortunately, the digitalization of such media content has also permitted large scale and widespread unauthorized dissemination and/or use. Such unauthorized dissemination and/or use deprive providers of the audio visual media content the economic benefit of authoring such material.

How to reduce such “piracy,” while retaining the benefits of widespread and easy dissemination of digital media content remains a challenge. However, the ubiquitous nature of digital communications and other technologies permit the definition of new dissemination and protection paradigms that can permit widespread dissemination of digital media, while suppressing unlicensed use of such digital media. The disclosure that follows describes an apparatus and method employing such a paradigm.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

FIG. 1is a diagram depicting an architectural representation of one embodiment of the content provisioning system (CPS)100. Digital content (C)120is prepared from a media program such as a movie title by authoring module102. Before dissemination for playback, the content is provided to encryption module108, and the content120is encrypted according so as to be decryptable by an encryption keys Ke, thus generating the encrypted content EKe[C]120E. In one embodiment, the content is encrypted so as to be decryptable by a single key Ke, however, other encryption schemes may also be used, including schemes where different portions of the content are encrypted such that multiple different keys, potentially in different combinations, are required to decrypt the content.

Once encrypted, distribution of the content may be accomplished in either by tangible or intangible means. Typical content distribution via intangible means comprises transmitting the content via a communications channel such as the Internet, cable, satellite, or public switched telephone network (PSTN) to a storage device or memory that is accessible to a playback device.

Typical content distribution via tangible means comprises distributing a tangible media or memory device storing the content to the user for playback on a compatible device. Tangible media may be further classified according to whether data can be only read from the media (read only memory (ROM)) or written to the media as well (read-writable media (RWM)), and still further classified according to whether the physical media storing the data is physically separable from the hardware controller used to read or read and write the data from/to the media. Hereinafter, media that can be removed from its associated controller is referred to as “removable media” and media that cannot be removed from its associated controller is referred to as “non-removable” media

Removable ROM Device

Returning toFIG. 1, the CPS100may include a read only memory (ROM) device154and/or a read/write memory (RWM) device152. The ROM device154comprises a ROM controller138having a ROM secure controller memory142and a ROM license memory140that is used to store license information provided by the license server106. The ROM controller138and associated ROM secure controller memory142work together to read data from the removable ROM media134. As is set forth further below, a license key KSROM150B may be provisioned to the ROM controller secure memory142for secure storage therein. This license key KSROM150B is used to decrypt content licenses116provided by the license server106to the ROM controller138, as set forth further below. This key KSROM150B is alternatively referred to as the ROM controller secret. The ROM controller secure memory142also stores ROM controller certificates provisioned by the Key Issuance Center104.

Examples of removable ROM media134may include optical discs such as a DVDs, Blu-Ray discs, or firmware. Removable ROM media134may produced by a mastering and replication process122that replicates the encrypted version of the content120E from a master to a copy that is sold or otherwise provided to customers or potential customers. Although it is possible to create some optical discs having the encrypted content120E by a process analogous to the ripping and writing process used with read and writeable DVDs (R/WDVDs), DVDs and BluRay disks prepared for large scale commercial dissemination are essentially “stamped” from a master, much the same as 33⅓ long playing (LP) records are stamped from masters, and are therefore identical.

As discussed further below, each removable ROM media134may include a globally unique identifier of the removable ROM (ROM ID136) that is typically unremovable and unchangeable. The ROM ID136allows identification of the removable ROM media134for purposes of granting and revoking specific rights associated with the content (including, for example, the right to play or copy the content).

One example of the ROM ID136is a portable media serial number (PMSN) that can be added to the removable ROM media134using a process distinct from the stamping process described above. This PMSN is similar to, but distinguished from the playback device serial number used with the PMSN service that is available on some WINDOWS operating systems.

Unlike the WINDOWS PMSN, the PMSN used in the CPS100shown inFIG. 1is not a serial number associated with the media player, but rather, a unique and indelible identifier associated with the ROM media itself.

RWM Device

The CPS100may also comprise a RWM device152that can store the encrypted content EKe[C]120E. The RWM device152comprises a RWM controller132is used to read and write data from and to RWM media128. The RWM controller132may also include a RWM secure memory130that stores a license key150A and one or more RWM controller digital certificate118A securely provisioned by the license server106. This RWM controller digital certificate118A is used to enable secure communications between the RWM controller132and other entities of the CPS100, including the player module144and the license server106. The license key KSROM150A, also known as the RWM controller secret, is used to decrypt the encrypted content key Keneeded to decrypt the encrypted content120E.

Examples of non-removable RWM128include hard disk drives (HDDs) which typically include an integrated HDD controller, and flash drives having built in controller circuitry and software. Examples of removable RWM include, for example, flash drives without built-in controller circuitry and software and CD-RW optical disks. Importantly, the foregoing “removable” and “non-removable” designation refers to whether the memory media can be physically separated from the controller used to read from or read and write from/to the media. Hence, a backup drive that is used with a desktop computer via a universal serial bus (USB) connector is still a non-removable RWM device152, because even when the backup drive is removed from the host computer (e.g. by disconnecting the USB connector) the controller that manages the storing and reading of data from the media in the drive itself remains integrated with the memory media.

In one example, the encrypted content120E is downloaded to the RWM media via a communication link with a distribution device124such as a content server storing the encrypted content120E. For example, the non-removable RWM media128may comprise a hard disk drive (HDD) of a computer, and the encrypted content120E may simply be downloaded from a content server to the HDD of the computer via the Internet. In another example, the non-removable RAM media128may comprise a flash drive or a portable hard drive with an integral controller module. Content can be stored on such devices either by coupling the device to a host computer and downloading the encrypted content120E from a content server to the non-removable RWM media128, or by coupling the non-removable RWM device152to a kiosk or similar device

As discussed further below, it is possible for each RWM controller132to include a globally unique identifier or RAM controller ID. The RAM controller ID allows identification of the RWM device152for purposes of granting and revoking specific rights associated with the content (including, for example, the right to play or copy the content).

Content Playback

FIGS. 2-3are flow charts illustrating exemplary processes for remotely enabling playback of content on a removable read only memory such as an optical disc.

In block202, the license server106is provided with the ROM controller secret KSROM150B associated with the ROM controller138and the RWM controller secret KSRWM150A associated with the RWM controller132. The ROM controller secret KSROM150B and the RWM controller secret KSRWM150A are typically installed by the manufacturer of the ROM controller138and RWM controller130respectively in secure memories142and130, but may be provided by the key issuance center104or other entity.

In block204, the key issuance center104provisions certificates118A-118C to elements of the CPS100. RWM controller certificate118A is provisioned to the RWM secure controller memory130for storage, and ROM controller certificate118B is provisioned to the ROM secure controller memory142for storage.

Block204also provisions a player certificate118C to each content player module144(FIG. 1illustrates a single content player module144, whileFIG. 2includes two content player modules,144A and144B) to permit secure communications between the content player module(s)144and the controller providing the content to the player module144for playback, as described further below. The certificate118C may be provided directly from the player certification authority110, rather than through the player security application program interface (API)160. Otherwise, the API160provides an interface between player module(s)144and the RWM device152and the ROM device154.

The RWM disc controller132and ROM disc controller138may each also comprise a globally unique identifier. This identifier permits the RWM disc controller132and the ROM disc controller138to be uniquely identified, allowing the license server106pair the content with the controller used to play back the content, as further described below. The controller IDs may be simple serial numbers, read from a secure memory, or may be indelibly applied to the controllers132,138, for example, by burning fusible links in the controller circuitry. Once burned, the fusible links cannot be unburned, and a JTAG (Joint Test Action Group) fuse can be used to prevent further burning of additional fuses.

In block214, a removable ROM media134having the encrypted content120E is accepted in the ROM device154. The removable ROM media134comprises an indelible ROM ID136.

In block216, a command is received to play the content on the removable ROM134. The command may be a user command accepted by the ROM device154, or can be the result of auto-play functionality. If the command is a command to play back the removable ROM, processing is routed to block218.

In block218, the ROM playback module144B transmits a request to establish a secure communications session with the ROM controller138, using the ROM controller certificate118B and the playback module certificate118C previously provisioned by the key issuance center104. If the ROM playback module144B is verified, a secure communication link is established between the ROM memory controller138and the ROM playback module144B, as shown in blocks218and220. As shown in block222, the ROM controller138then reads the ROM ID224from the removable ROM media134. In block226, a determination is made (using the ROM ID136) as to whether there is an existing content license116already stored in license memory140that can be used to playback the encrypted content120E. If the license memory140includes an existing license, processing proceeds to block318as described further below. If the license memory140does not include a suitable license, processing is passed to block228. In block228, the ROM playback module144B connects the ROM memory controller138to the license server106. The ROM controller138then transmits a ROM playback license request to the license server106, as shown in block230.

In one embodiment, the ROM controller138and the license server106exchange certificates to establish the secure communications link as shown in blocks230and232, and then the ROM controller136transmits a ROM playback license request that includes the ROM ID136and ROM controller ID. However, either or both of the ROM ID136and the ROM controller ID may be included with or embedded within the certificate transmitted in block220if desired. In any case, the license server106and the ROM controller138establish a secure communications link between each other, as shown in blocks234and236(optionally, via ROM playback module144B), and use this link to request and provide the ROM playback license116.

Turning now toFIG. 3, the license server106determines whether to provide the requested license, as shown in block301. In one embodiment, the license server106will not provide a license if the ROM controller ID and/or the ROM ID136are not recognized, or if the ROM certificate118B and ROM controller ID are inconsistent (e.g. the ROM certificate118B associated with the secure session was not issued to a ROM controller138having the ROM controller ID received with the playback license request).

If it is determined not to provide a license, a message indicating that no license may be provided can be transmitted from the license server106to the playback module114B via the ROM controller138, and a the playback module114B can then present a suitable message to the user indicating that no license can be provided. If it is determined that a license can be provided, processing passes to block302, where the license server106generates or retrieves a license including the requested playback license for the content associated with ROM ID136.

The license server then binds the license116for the provided ROM ID136to the ROM controller certificate118B, so that the license can only be decrypted by the ROM controller138whose certificate was used to request the license.

In one embodiment, this is implemented by encrypting the decryption keys Kenecessary to decrypt the encrypted content with the ROM controller secret KSROM150B, with the ROM controller certificate118B, or both. In block302, the license server106generates a content license including a license to playback the content. In block304, the license server106determines the ROM controller secret150B that is associated with the ROM controller138that requested the license1116, as determined by the provided ROM controller ID. In block306, the key(s) Keneeded to decrypt the encrypted content120E is encrypted using the ROM controller secret KSROM150B, and this encrypted keyis included in the ROM playback license116. In blocks308and310, the playback license is encrypted using the ROM digital certificate118B and transmitted to the ROM controller138for unwrapping (decryption) and use.

In block312, the ROM controller138receives the encrypted license, and unwraps (decrypts) it using the ROM controller certificate118B, thus providing the ROM controller138with access to the playback license needed to decrypt the requested encrypted content. As shown in blocks314and315, the license116B can be stored in the ROM controller secure memory142for later use. The license116B may be stored in its wrapped (encrypted) or unwrapped (unencrypted) state. If stored in the encrypted state, decryption and playback may be disabled by revoking the certificate of the ROM controller138, as described further below.

The key(s) KSneeded to decrypt the requested content is retrieved from the decrypted license and decrypted, using the ROM controller secret150B as shown in block318. In block320, the ROM controller138fetches the encrypted content120E from the removable ROM media136, and provides the encrypted content120E and the key(s) Keneeded to decrypt that content to the ROM playback module144B, as shown in blocks320and322. The ROM playback module144B then decrypts and plays the requested content, as shown in block324.

It is important that the decryption key(s) Kebe provided to the ROM playback module144B via a secure communication path (as shown by the wide lines in the illustration), because each copy of the content is encrypted according to the same encryption key and hence, anyone in possession of that key Kecan decrypt the encrypted content of any identical copy of the ROM media134. However, the encrypted content itself can be transmitted from the ROM controller138via an unsecured communication link, as this information is encrypted.

The potential cost of compromising the decryption key Kemay be ameliorated by issuing a number of different editions of the removable ROM, each having the content encrypted so as to be decryptable using a different decryption key Keor different combination of decryption key(s).

Preferably, the decryption keys Ke are stored non-persistently. In other words, the decryption key(s) exist in memory accessible to the playback module144B only long enough for use in decrypting the content and are thereafter deleted or otherwise made unavailable for use. In embodiments in which the unwrapped license116is stored in the secure license memory140, playing back the same content at a later time is accomplished by obtaining the encrypted decryption key from the unwrapped license, and decrypting the key(s) using the ROM controller secret150B. In embodiments in which the licenses are stored in a wrapped state, the license must be unwrapped (decrypted) using the ROM certificate118B before the encrypted decryption key(s) EKsROM[Ke] may be obtained.

Generally speaking, the ROM device154described above can be any device that reads data from a removable ROM media136. The ROM device154may be incorporated within a home computer or may be a separate stand-alone device such as a Blu-Ray optical disc player. To account for the possibility for standalone devices that have separate playback modules,FIGS. 2-5illustrate the use of both a ROM playback module144B and a RWM playback module144A. However, it should be understood that if the ROM device154and RWM device152are both integrated into the same processing device, a single playback module may be used to decrypt and playback content from both the ROM media134and the RWM media128.

FIG. 4is a diagram of how the content stored on the removable ROM143may be copied to a RWM device152for subsequent storage and playback. The RWM device152can be any device for reading and writing data to media that has an integral (non-removable) controller, but in the illustrated embodiment, it is presumed that the ROM device154and RWM device152are both coupled to a processing device such as a home computer.

In block402, a request to copy the content to the RWM device152is received in the RWM playback module144A. In block404, RWM playback module144A requests that the encrypted content120E be copied from the removable ROM media134to the RWM media128. The request is processed by the operating system (OS) of the computer, which generates a request for the ROM device154to provide the encrypted content120E and the ROM ID136for storage elsewhere. Responding to such OS commands, the ROM controller138reads the encrypted content and the ROM ID136from the removable ROM media134, and provides the encrypted content120E and ROM ID136to the RWM playback module144A, as shown in block406. The RWM playback module144A receives the encrypted content120E and ROM ID136, and instructs the RWM controller132to write the encrypted content to the RWM media128, as shown in blocks410and412. The ROM ID136may also be written to the RWM media128, either as a separate data value, or by watermarking the encrypted content with the ROM ID136, thus binding the ROM ID136to the encrypted content120E. The ROM ID136may also be stored in the RWM controller secure memory130or in another secure memory accessible to the RWM controller132as well.

Since the encrypted content120E cannot be decrypted without the appropriate decryption key(s), the foregoing steps may be repeated to copy the encrypted content120E to other RWM devices152as well.

After or while the encrypted content120E is copied to the RWM124, the RWM playback module144A receives a request to play the encrypted content120E from the RWM media128, as shown in block414. In response to such a request, the RWM playback module144A and the RWM controller132establish a secure communication link, as shown in blocks416and418. The ROM ID is then retrieved as shown in blocks420and422. The RWM controller132checks to determine if there is an existing license to play the encrypted content. If such a license exists, processing is routed to block512(for licenses stored “wrapped”), and block516ofFIG. 5(for licenses stored “unwrapped”). If not, processing is routed to block426, in which the RWM playback module144A initiates the process to connect the RWM controller132to the license server106.

Turning toFIG. 5, the RWM controller132transmits its RWM controller certificate118A to the license server106to request the establishment of a secure communications link, as shown in block501. As the phrase is used herein, a “secure communications link” is implemented by one or more measures to render the transmitted message indecipherable to any entity other than the intended entity. Typically, this is accomplished by encrypting messages before transmission using symmetric or asymmetric encryption techniques, or by use of a shared secret. The license server106verifies the RAM controller certificate118A, and if found valid, establishes a secure communications link with the RWM controller132, as shown in blocks502-504. If a license request having the RWM controller ID and the ROM ID136were not implicit in the secure communications request, the RWM controller132then transmits a request for a license to playback the content from the RWM media128, as shown in block508. The license server106receives the request, determines the RWM controller secret150A associated with the identified RWM controller ID, and generates an encrypted license, as shown in blocks508and510. As was the case in generating the playback license for the ROM device154, this can comprise encrypting the key(s) needed to decrypt the encrypted content120E with the RWM controller secret150A and wrapping (encrypting) the result according to the RWM controller certificate118A before transmitting the result to the RWM memory controller132.

The RWM memory controller132unwraps the license using its RWM certificate118A, as shown in block512. As was the case with the ROM device154, the wrapped (encrypted) license may be stored in the RWM controller secure memory130, or the unwrapped license may be stored in the RWM controller secure memory130for later use, as shown in block514. The RWM controller132then decrypts the encrypted content decryption key Kerecovered from the license to recover the key(s) themselves, as shown in block516. The RWM controller132then fetches the encrypted content120E from the RWM media128, and provides the fetched content and the keys to the RWM playback module144A, as shown in block520. The RWM playback module144A then decrypts the content using the provided key(s), and plays the decrypted content, as shown in block522. As was the case with the ROM device154playback, it is important that the decryption key(s) be provided via a secure communication path, to assure that they are not compromised. However, the encrypted content120E may be provided on an unsecure communications link, as the content is already encrypted.

Since the RWM device152has a limited memory and content files are typically large, the RWM secure memory130need not be large in order to accommodate all of the content files likely to be stored on the same RWM media. However, the ROM device154, by virtue of the removability of the media itself, may need to store a large number of licenses for each optical disc inserted. The foregoing paradigm allows the ROM controller secure memory142to delete licenses on a first-in-first-out or “least frequently used” basis to accommodate this difference, since a replacement license may be obtained from the license server106if needed.

Applications

The foregoing technique of portably binding license rights to the controller reading the content and binding the controller to the media storing the content takes advantage of the reality that devices for playing such media have almost uniform access to license servers via emerging ubiquitous communication means such as Wi-Fi, 3G, 4G and LTE and other networks offering Internet connectivity.

In the basic paradigm, the viewer purchases a removable ROM136such as an optical disc that they would like to be able to play on any optical disc player. At the same time, the content distributor would like to prevent unauthorized viewing of the content. In the above described paradigm, the content is distributed in encrypted form, and therefore cannot be played back until the player is able to obtain the key(s) necessary to play back the media. When the customer inserts the purchased optical disc into their optical disc player at home, the optical disc player controller138reads the unique ROM ID associated with the optical disc, and provides this ROM ID along the an ID of the controller of the optical disc player to a licensing server106, which looks up a secret shared with the controller132of the optical disc player, encrypts the decryption key(s) with that secret, and transmits a license with that encrypted decryption key to the optical disk player. Only that particular optical disc player will be able to replay the content from the inserted media, because only the particular optical disc player will have the correct secret enabling it to decrypt the encryption keys and use them for playback. The optical disk player may also store the license (along with the encrypted decryption keys) for later use.

The customer may then take the same optical disc to a second home. Following the same paradigm as noted above, the customer inserts the optical disk into a second optical disc player, which provides a second ROM controller ID and the same ROM ID to the license server. The license server may check to determine if any licenses have been issued in connection with the ROM ID, and decide, based upon purchases made by the consumer or other factors, whether to issue another license and whether to cancel existing licenses or set an expiration date for such existing licenses. In the above example, if the user has paid for playback on only one optical disc player, the request for a license may be denied, or the license issued to the first optical disc player may be canceled, and a second license issued to the controller of the second optical disk player.

If the first optical disc player has stored the license for later use, a message from the licensing center may be issued having a list of revoked licenses, which may include the first license issued to the first optical disc player. Using the revoked license feature, licenses may also be granted for a limited time or with other limitations. This may require at least occasional communication between the original optical disk player and the license server106. While this revocation may be circumvented by communicatively disconnecting the optical disk player and the license server106, the user will be unable to play any other optical disks (with other content encrypted and secured as described above) until such communication connectivity is re-established. Further, the optical disk controller may be configured such that any stored license must be reconfirmed via communication with the license server106before playback can commence (or require occasional reconfirmation). This prevents any playback using an expired license.

The paradigm also permits the customer to make copies of the content, for example on a HDD of a personal computer or memory of another processing device. The ROM ID and the HDD controller ID are transmitted to the license server. Using the HDD controller ID, the license server looks up the HDD controller secret KSRWM, and encrypts the encryption keys Keneeded to decrypt the content so as to be decryptable only by the HDD controller secret KSKWM, thus preparing a license for playback by the HDD controller. As was the case with playback by the second optical disc player, the license server may cancel or restrict the already issued licenses, or may offer an additional license to the customer at an additional cost.

If an unauthorized user attempts to copy the copy made on the HDD on another media, that copy will not be playable unless the player has the appropriate decryption key. To obtain the key, the unauthorized copy will be required to present its ROM ID and the ID of the unauthorized HDD to the license server, at which time the license server may grant the request, or deny it. In most situations, since it is desirable to restrict copying and dissemination of digital data to a plurality of HDDs, the license will be denied unless further payment is made, and any further playback on an optical disc player is denied, or the license to the initially licensed HDD may be revoked before providing a license to the second HDD.

This paradigm has a benefit of providing “super-distribution” of the content on the media. Typically, the content itself is large and difficult to transmit remotely, even in communication links with high bandwidth. Also, the storage of such programs requires a lot of memory. Because it is encrypted, the tangible copies of the content may be widely disseminated, and hence, convenient for customers to copy and pass on to others, or keep for themselves. Only when the customer wants to play the content is a license required.

Hence, this paradigm supports unique distribution models. For example, patrons of a movie may be given free copies of the encrypted content on tangible media. They may then bring these copies home and using the steps outlined above, obtain a license to the media and play it at home for an additional fee or other compensation. Some of the content on the media may also comprise content in addition to the movie title, such as games, or deleted scenes. Such additional content may be provided in encrypted or plaintext for as desired. The recipients of such tangible media may copy the content to their HDD and provide the tangible media to others to do the same, thus “super-distributing” the content and avoiding the high bandwidth communication links that would otherwise be required (the license and data exchange required to play back the media is several orders of magnitude less than the content itself).

The foregoing distribution model also has the benefit of using a single file structure for all copies, no matter how distributed. Currently, content owners typically distribute content in different protocols, and each has to be created and supported by the content provider. For example, iTunes may use a different file structure or digital rights management protocol than Amazon. The foregoing ameliorates this problem because every copy of the content itself (but not the ROM ID) is identical to the others.

Hardware Environment

FIG. 6is a diagram illustrating an exemplary computer system600that could be used to implement elements of the present invention. The computer602comprises a general purpose hardware processor604A and/or a special purpose hardware processor604B (hereinafter alternatively collectively referred to as processor604) and a memory606, such as random access memory (RAM). The computer602may be coupled to other devices, including input/output (I/O) devices such as a keyboard614, a mouse device616and a printer628.

In one embodiment, the computer602operates by the general purpose processor604A performing instructions defined by the computer program610under control of an operating system608. The computer program610and/or the operating system608may be stored in the memory606and may interface with the user and/or other devices to accept input and commands and, based on such input and commands and the instructions defined by the computer program610and operating system608to provide output and results.

Output/results may be presented on the display622or provided to another device for presentation or further processing or action. In one embodiment, the display622comprises a liquid crystal display (LCD) having a plurality of separately addressable pixels formed by liquid crystals. Each pixel of the display622changes to an opaque or translucent state to form a part of the image on the display in response to the data or information generated by the processor604from the application of the instructions of the computer program610and/or operating system608to the input and commands. Other display622types also include picture elements that change state in order to create the image presented on the display622. The image may be provided through a graphical user interface (GUI) module618A. Although the GUI module618A is depicted as a separate module, the instructions performing the GUI functions can be resident or distributed in the operating system608, the computer program610, or implemented with special purpose memory and processors.

Some or all of the operations performed by the computer602according to the computer program610instructions may be implemented in a special purpose processor604B. In this embodiment, some or all of the computer program610instructions may be implemented via firmware instructions stored in a read only memory (ROM), a programmable read only memory (PROM) or flash memory within the special purpose processor604B or in memory606. The special purpose processor604B may also be hardwired through circuit design to perform some or all of the operations to implement the present invention. Further, the special purpose processor604B may be a hybrid processor, which includes dedicated circuitry for performing a subset of functions, and other circuits for performing more general functions such as responding to computer program instructions. In one embodiment, the special purpose processor is an application specific integrated circuit (ASIC).

The computer602may also implement a compiler612which allows an application program610written in a programming language such as COBOL, C++, FORTRAN, or other language to be translated into processor604readable code. After completion, the application or computer program610accesses and manipulates data accepted from I/O devices and stored in the memory606of the computer602using the relationships and logic that was generated using the compiler612.

In one embodiment, instructions implementing the operating system608, the computer program610, and/or the compiler612are tangibly embodied in a computer-readable medium, e.g., data storage device620, which could include one or more fixed or removable data storage devices, including one or more of the ROM devices154and RWM devices152discussed above. Such devices could include a zip drive, floppy disc drive624, hard drive, CD-ROM drive, RW-CD-ROM drive, Blu-Ray device, tape drive, or a flash drive. Further, the operating system608and the computer program610are comprised of computer program instructions which, when accessed, read and executed by the computer602, causes the computer602to perform the steps necessary to implement and/or use the present invention or to load the program of instructions into a memory, thus creating a special purpose data structure causing the computer to operate as a specially programmed computer executing the method steps described herein. Computer program610and/or operating instructions may also be tangibly embodied in memory606and/or data communications devices630, thereby making a computer program product or article of manufacture according to the invention. As such, the terms “article of manufacture,” “program storage device” and “computer program product” or “computer readable storage device” as used herein are intended to encompass a computer program accessible from any computer readable device or media.

Although the term “computer” is referred to herein, it is understood that the computer may include portable devices such as cellphones, portable MP3 players, video game consoles, notebook computers, pocket computers, or any other device with suitable processing, communication, and input/output capability.

CONCLUSION

This concludes the description of the preferred embodiments of the present invention. The foregoing description of the preferred embodiment of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. For example, while the foregoing illustrates communications between the controllers and the license server, it should be understood that communications with the license server may be made through the playback modules or other elements.

It is intended that the scope of the invention be limited not by this detailed description, but rather by the claims appended hereto. The above specification, examples and data provide a complete description of the manufacture and use of the composition of the invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended.