Patent Description:
A license containing one or more content keys may be required to decrypt and playback media content. In some examples, the media content may include video files such as movies. In some examples, a device may be instructed to decrypt a relatively large number of movies, and thus requesting a license for each movie may be a problem due to network limitations and latency issues in the system. Furthermore, in some examples, a single movie may contain an audio track, a standard-definition (SD) video track, and potentially a high-definition (HD) video track, where each track may be encrypted with a different content key. According to conventional license exchange techniques, the device may be repeatedly requesting content keys from a license server, thereby increasing the amount of network traffic (e.g., for each track within each movie, the device may have to send a content identifier and then receive a unique content key). Furthermore, this increased network traffic may create even more of a congestion problem in locations that do not have a reliable network connection. <CIT> discloses a content protection key management system. In general, devices may include secure processing resources configured to derive content keys (e.g., for use in decrypting secure content) using key ladders. In one embodiment, a device may comprise, for example, at least a secure processing module to derive content keys for use in decrypting secure content. <CIT> discloses an information recording or reproducing device in which key distribution is effected by KRB distribution as a key distributing configuration of a tree structure. In this information recording or reproducing device, a key, such as a master key, a media key or a content key, is transmitted along with the KRB (key renewal block) by the key distributing configuration of the tree structure.

According to a first aspect of the present invention, there is provided a computing device as set out in claim <NUM>.

The computing device may include one or more of the following features (or any combination thereof). The media content handler may be configured to obtain secondary media content, and the group license manager may be configured to determine that the secondary media content is part of the license group that includes the media content. The key generator may be configured to derive a secondary content key specific to the secondary media content based on the master key that was used to derive the media content, and the decryption unit may be configured to decrypt the secondary media content using the secondary content key. The license may also include the content key, where the decryption unit may use either the content key received as part of the license or the content key derived by the key generator for decrypting the media content. When the media content is determined as not part of the license group, the license manager may be configured to request and receive an individual content key from the license manager for decrypting the media content. When the master key has been determined as previously received, the key generator may be configured to derive the content key using the previously received master key. The key generator may be configured to derive the content key using a key derivation function inputted with the master key, the content identifier, and the group identifier. The group license manager may be configured to determine whether or not the media content is part of the license group based on an inclusion of the group identifier in the license request. The license group may include a plurality of movies, and the media content may be a single movie from the plurality of movies.

According to a second aspect of the present invention, there is provided a system as set out in claim <NUM>.

The computing device may include one or more of the above or below features (or any combination thereof). The license request may include a content identifier identifying media content, and the key generator may be configured to generate a content key for the media content identified by the content identifier, where the license includes both the master key and the content key. The key generator may be configured to obtain the master key from a master key database storing a plurality of master keys, where each of the plurality of master keys corresponds to a different license group. The computing device may include an encryption unit configured to encrypt the master key, and the license manager may be configured to send the license with the encrypted master key. The license manager may be configured to determine whether the media content is part of the license group based on an inclusion of the group identifier within the license request. Before the license request is received from the computing device, the license manager may be configured to receive a key request from a media content provider, where the key request includes the group identifier and a content identifier identifying the media content. The key generator may be configured to derive the content key based on the master key and the content identifier, and the license manager may be configured to return the content key to the media content provider such that the media content can be encrypted with the content key. The license manager may be configured to determine whether the media content is part of the license group based on an inclusion of the group identifier within the key request. When the key request does not include the group identifier, the key generator may be configured to derive the content key without using the master key. The media content may be a single track of a movie.

The system may include one or more of the above or below features (or any combination thereof). The content key included in the key response may be an encrypted content key, and the system further includes a provider decryption unit configured to decrypt the encrypted content key. The provider encryption unit may be configured to use the decrypted content key to encrypt the media content. The provider encryption unit may be configured to encrypt all media content belonging to the license group with a unique content key that has been derived from a same master key. The license group may define a plurality of movies, and the media content may represent a single movie.

The implementations discussed herein provide a group license mechanism in which all media content of a license group is encrypted with a unique content key that is derived from a master key. Then, a computing device may retrieve the master key from a license manager and can use the master key to derive content keys for all media content part of the license group in order to decrypt and playback any media content part of the license group. As a result, instead of consuming a large amount of resources by repeatedly requesting a separate content key for each media content, the computing device may send a single license request to the license manager for a license that can be used to decrypt all media content in the license group, thereby minimizing network traffic to the license manager. Furthermore, in some implementations, the content keys are not stored in the system because the content keys are derived from the master key, which may lead to a more secure license exchange system.

<FIG> is a block diagram of a system <NUM> for implementing a group license mechanism for controlling download and playback of media content <NUM> in which each media content <NUM> belonging to a license group <NUM> is encrypted and decrypted with a unique content key <NUM> derived from a master key <NUM> according to an aspect. The system <NUM> may include a computing device <NUM>, a license manager <NUM>, and a media content provider <NUM>, which may be connected to each other via a network <NUM>.

The computing device <NUM> may be a mobile computing device (e.g., a smart phone, a PDA, a tablet, a laptop computer, media streaming device, etc.) or a non-mobile computing device (e.g., a desktop computing device, gaming console, etc.). The computing device <NUM> may include various network interface circuitry, such as for example, a network interface through which the computing device <NUM> can communicate with the network <NUM>. The network <NUM> may include one or more private and/or public networks including a cellular network, a Wi-Fi network with which the computing device <NUM> can communicate with a Wi-Fi base station, a Bluetooth network with which the computing device <NUM> can communicate with other Bluetooth devices, and/or an Ethernet connection or other wired connection that enables the computing device <NUM> to access the network <NUM>.

The computing device <NUM> may access the media content provider <NUM> via the network <NUM> to obtain the media content <NUM>. For example, the computing device <NUM> may communicate with the media content provider <NUM> to view, access, download, stream, and/or playback the media content <NUM> on the computing device <NUM> via a playback unit <NUM> configured to render the media content <NUM>. The playback unit <NUM> may be capable of rendering any video, software, audio, image, and/or textual data defined by the media content <NUM>. Also, the computing device <NUM> may include one or more computer processors coupled to one or more substrates, and a non-transitory computer readable medium that stores executable instructions that when executed by the one or more computer processors are configured to implement the various functionalities described herein.

The media content provider <NUM> may include one or more media content sources that distribute the media content <NUM> over the network <NUM> to a plurality of computing devices including the computing device <NUM>. In some examples, the media content provider <NUM> may be one or more online digital media stores that provide the media content <NUM> for free or purchase to the computing device <NUM>. The media content provider <NUM> may include one or more server devices having one or more network interfaces capable of connecting to the network <NUM>. In some examples, the media content provider <NUM> may include one or more computer processors coupled to one or more substrates, and a non-transitory computer readable medium that stores executable instructions that when executed by the one or more computer processors are configured to implement the various functionalities described herein.

The license manager <NUM> may be configured to manage and create licenses <NUM> for the media content <NUM> provided by the media content provider <NUM>. In some examples, the license manager <NUM> may include a license server functioning as a centralized computer system which implements at least part of the group license mechanism discussed herein. The license manager <NUM> may provide content keys <NUM> to the media content provider <NUM> such that each media content <NUM> can be encrypted prior to distribution, and provide master keys <NUM> (and potentially content keys <NUM>) to the computing device <NUM> such that the computing device <NUM> can decrypt and playback the media content <NUM>. In some examples, the license manager <NUM> may include one or more license server devices having one or more network interfaces capable of connecting to the network <NUM>. In some examples, the license manager <NUM> may include one or more computer processors coupled to one or more substrates, and a non-transitory computer readable medium that stores executable instructions that when executed by the one or more computer processors are configured to implement the various functionalities described herein. In some examples, the license manager <NUM> may be implemented on one or more servers separate from the server(s) implementing the media content provider <NUM>, and any communication between the license manager <NUM> and the media content provider <NUM> are transmitted over the network <NUM> via an established network (Internet) communication protocol. In some examples, the license manager <NUM> may be part of the media content provider <NUM>.

The media content <NUM> may refer to any content in which a license <NUM> is required to access (e.g., playback) the media content <NUM>. The media content <NUM> may include video, software, audio, image, and/or textual data. In some examples, the media content <NUM> may include digital media content such as digitally broadcast, streamed, or provided as part of a computer file format. In some examples, the media content <NUM> may include video content. In some examples, the media content <NUM> may include audio content. In some examples, the media content <NUM> may include a movie. In some examples, the media content <NUM> may refer to a single track of a movie. For example, a movie may be defined by an audio track, and one or more video tracks such as a high-definition (HD) track, a standard-definition (SD) track, and a <NUM> resolution track. Depending on the context, the media content <NUM> may refer to one of the audio track, the HD track, the SD track, and the <NUM> resolution track. In other examples, the media content <NUM> may refer to the movie as a whole (e.g., the audio track, HD track, the SD track, and potentially the <NUM> resolution track).

<FIG> illustrates an example of the license group <NUM> according to an aspect. The license group <NUM> may be associated with a group identifier <NUM>. The group identifier <NUM> may be an identifier that uniquely identifies a particular license group <NUM>. The group identifier <NUM> may be a data representation that uniquely identifies the license group <NUM>. In some examples, the group identifier <NUM> is a numeric identifier.

The license group <NUM> may define a plurality of media contents such as a first media content <NUM>-<NUM>, a second media content <NUM>-<NUM>, and a third media content <NUM>-<NUM>. Although <FIG> illustrates three separate items of media content <NUM>, the license group <NUM> may define any number of media content <NUM>. In some examples, the first media content <NUM>-<NUM>, the second media content <NUM>-<NUM>, and the third media content <NUM>-<NUM> include content different from each other. In some examples, the first media content <NUM>-<NUM> refers to a first movie, the second media content <NUM>-<NUM> refers to a second movie, and the third media content <NUM>-<NUM> refers to a third movie. In some examples, with respect to a particular movie, the first media content <NUM>-<NUM> may refer to the audio track, the second media content <NUM>-<NUM> may refer to the HD track, and the third media content <NUM>-<NUM> may refer to the SD track. It is noted that the movie examples used throughout this disclosure are merely example implementations of the numerous types of content which may be covered by the media content <NUM>. For example, the license group <NUM> may define a plurality of other types of media content such as a collection of digital files, digital songs, etc. Also, a single license group <NUM> does not necessarily define media content of the same type (e.g., all movie files). In some examples, the license group <NUM> may define a collection of two or categories (e.g., movies, songs, articles, and/or files).

Referring to <FIG>, the media content provider <NUM> may define the license group <NUM>. For example, the media content provider <NUM> may indicate which media content <NUM> belongs to the license group <NUM>. For example, the media content provider <NUM> may define that movie #<NUM> through movie #<NUM> are part of a first license group, and movie #<NUM> to movie #<NUM> are part of a second license group. In some examples, the media content provider <NUM> may associate a group identifier <NUM> with the first media content <NUM>-<NUM>, and assign the same group identifier <NUM> to the second media content <NUM>-<NUM> and the third media content <NUM>-<NUM>. The assignment of the group identifier <NUM> to the first media content <NUM>-<NUM> may indicate that the first media content <NUM>-<NUM> is part of (or belongs to) the license group <NUM>.

The media content provider <NUM> may include an provider encryption unit <NUM> configured to encrypt each media content <NUM> of the license group <NUM> with a unique content key <NUM> that was derived from a same master key <NUM>. For example, the provider encryption unit <NUM> may be configured to encrypt the first media content <NUM>-<NUM> with a first content key (e.g., first content key <NUM>-<NUM> shown in <FIG>), encrypt the second media content <NUM>-<NUM> with a second content key (e.g., second content key <NUM>-<NUM> shown in <FIG>), and encrypt the third media content <NUM>-<NUM> with a third content key (e.g., third content key <NUM>-<NUM> shown in <FIG>). The first content key <NUM>-<NUM>, the second content key <NUM>-<NUM>, and the third content key <NUM>-<NUM> may be unique to each other. The first content key <NUM>-<NUM>, the second content key <NUM>-<NUM>, and the third content key <NUM>-<NUM> may be derived from the same master key <NUM>, as further explained below.

The media content provider <NUM> may send a key request <NUM> for a content key <NUM> and receive a key response <NUM> having the content key <NUM> for the media content <NUM>. The key request may include a content identifier <NUM> that uniquely identifies the media content <NUM>, and the group identifier <NUM> that identifies the license group <NUM> of the media content <NUM>. The inclusion of the group identifier <NUM> in the key request <NUM> may indicate that the media content provider <NUM> has assigned the media content <NUM> to the license group <NUM>.

In particular, the media content provider <NUM> may send the key request <NUM> as a first key request for the first content key <NUM>-<NUM> to the license manager <NUM>, and receive the key response <NUM> as a first key response from the license manager <NUM>. The first key request may include the content identifier <NUM> that is specific to the first media content <NUM>-<NUM>, and the group identifier <NUM> of the license group <NUM> in which the first media content <NUM>-<NUM> belongs to. The first key response may include the first content key <NUM>-<NUM> that is specific to the first media content <NUM>-<NUM> (e.g., only the first content key <NUM>-<NUM> is capable of unlocking the first media content <NUM>-<NUM>). In some examples, the first content key <NUM>-<NUM> is an encrypted content key. In other examples, the first content key <NUM>-<NUM> is an unencrypted content key. Then, the provider encryption unit <NUM> of the media content provider <NUM> may encrypt the first media content <NUM>-<NUM> with the first content key <NUM>-<NUM>. Also, the media content provider <NUM> may include a provider decryption unit <NUM> configured to decrypt the first content key <NUM>-<NUM> (if the first content key <NUM>-<NUM> is encrypted). Then, the provider encryption unit <NUM> may encrypt the first media content <NUM>-<NUM> with the decrypted first content key <NUM>-<NUM>.

The media content provider <NUM> may send the key request <NUM> as a second key request for the second content key <NUM>-<NUM> to the license manager <NUM>, and receive the key response <NUM> as a second key response from the license manager <NUM>. The second key request may include the content identifier <NUM> that is specific to the second media content <NUM>-<NUM>, and the group identifier <NUM> of the license group <NUM> in which the second media content <NUM>-<NUM> belongs to. The second key response may include the second content key <NUM>-<NUM> that is specific to the second media content <NUM>-<NUM> (e.g., only the second content key <NUM>-<NUM> is capable of unlocking the second media content <NUM>-<NUM>). In some examples, the second content key <NUM>-<NUM> is an encrypted content key. In other examples, the second content key <NUM>-<NUM> is an unencrypted content key. Then, the provider encryption unit <NUM> of the media content provider <NUM> may encrypt the second media content <NUM>-<NUM> with the second content key <NUM>-<NUM>, or the provider decryption unit <NUM> may decrypt the second content key <NUM>-<NUM> (if the second content key <NUM>-<NUM> is encrypted), and the provider encryption unit <NUM> may encrypt the second media content <NUM>-<NUM> with the decrypted second content key <NUM>-<NUM>.

With respect to the third media content <NUM>-<NUM>, the media content provider <NUM> may send the key request <NUM> and receive the key response <NUM> as a third key request and a third key response, respectively, in the same manner as described above. In some examples, the key requests <NUM> of all the media content <NUM> belonging to the same license group <NUM> may be sent sequentially (e.g., the first key request followed by the second key request followed by the third key request). In other examples, the key requests <NUM> for all media content <NUM> of the license group <NUM> may be sent at the same time (or around the same time). In other examples, the media content provider <NUM> may send a single key request <NUM> to request the content keys <NUM> for all the media content <NUM> of the license group <NUM>, and receives a single key response <NUM> having all the content keys <NUM> for the license group <NUM>. In this example, the key request <NUM> may specify the content identifier <NUM> for each media content <NUM> part of the license group <NUM>, and the group identifier <NUM> for the license group <NUM>.

The license manager <NUM> may include a key generator <NUM> configured to derive the content key <NUM> specific to the media content <NUM> identified by the content identifier <NUM> from the master key <NUM> that corresponds to the license group <NUM> pertaining to the content identifier <NUM> in response to receiving the key request <NUM>. For example, the key generator <NUM> may be configured to obtain the master key <NUM> corresponding to the license group <NUM> from a master key database <NUM> storing a plurality of master keys <NUM>. Each master key <NUM> in the master key database <NUM> may correspond to a different license group <NUM>. In some examples, the key generator <NUM> may use the group identifier <NUM> to search the master key database <NUM> to locate the appropriate master key <NUM>. In other examples, the key generator <NUM> may obtain the master key <NUM> by deriving (or generating) the master key <NUM>.

<FIG> illustrates an example of the key generator <NUM> of the license manager <NUM> or a device key generator <NUM> of the computing device <NUM> according to an aspect. The device key generator <NUM> of the computing device <NUM> may include functionalities that operate in the same manner as at least some of the functionalities of the key generator <NUM> of the license manager <NUM>. The device key generator <NUM> of the computing device <NUM> is described later in the disclosure.

The key generator <NUM> of the license manager <NUM> may generate the content key <NUM> based on the master key <NUM>, the group identifier <NUM>, and the content identifier <NUM>. For example, with respect to the first media content <NUM>-<NUM>, the key generator <NUM> may derive the content identifier <NUM> for the first media content <NUM>-<NUM> and the group identifier <NUM> of the license group <NUM> from the received key request <NUM>. Inclusion of the group identifier <NUM> in the key request <NUM> may indicate to the key generator <NUM> that the first media content <NUM>-<NUM> is apart of the license group <NUM> having the group identifier <NUM> that uniquely identifies the license group <NUM>. Then, the key generator <NUM> may determine to derive the first content key <NUM>-<NUM> for the first media content <NUM>-<NUM> using the master key <NUM> corresponding to the license group <NUM>. Otherwise, if the key request <NUM> does not contain the group identifier <NUM>, the key generator <NUM> may generate an individual content key for the first media content <NUM>-<NUM> without using the master key <NUM>. However, since the key request <NUM> includes the group identifier <NUM>, the key generator <NUM> may use the group identifier <NUM> to locate the master key <NUM> corresponding to the license group <NUM> from the master key database <NUM>. Then, the key generator <NUM> may derive the first content key <NUM>-<NUM> based on the master key <NUM> for the license group <NUM>, the group identifier <NUM>, and the content identifier <NUM> that uniquely identifies the first media content <NUM>-<NUM>, as further explained below.

The key generator <NUM> may derive the first content key <NUM>-<NUM> using a key derivation function <NUM>. The key derivation function <NUM> may be a deterministic algorithm to derive a key of a given size. In some examples, the key derivation function <NUM> generates the content key <NUM> as a <NUM> byte Advanced Encryption Standard (AES) based on the group identifier <NUM>, and a length of <NUM> bits. However, the key derivation function <NUM> may use any type of key derivation functions parameters within AES or other encryption standards that is capable of deriving a unique content key. The key generator <NUM> may generate the second content key <NUM>-<NUM> for the second media content <NUM>-<NUM> and the third content key <NUM>-<NUM> for the third media content <NUM>-<NUM> in the same manner described.

Referring to back to <FIG>, in some examples, the license manager <NUM> may include an encryption unit <NUM> configured to encrypt the content key <NUM>, and send the encrypted content key <NUM> back to the media content provider <NUM> to be decrypted by the provider decryption unit <NUM>. For example, the encryption unit <NUM> may encrypt the first content key <NUM>-<NUM>, and send the first key response with the first content key <NUM>-<NUM> to the media content provider <NUM>. Then, the provider decryption unit <NUM> may decrypt the first content key <NUM>-<NUM>, and the provider encryption unit <NUM> may encrypt the first media content <NUM>-<NUM> using the decrypted first content key <NUM>-<NUM>. Also, the encryption unit <NUM> may encrypt the second content key <NUM>-<NUM>, and send the second key response with the second content key <NUM>-<NUM> to the media content provider <NUM>. Then, the provider decryption unit <NUM> may decrypt the second content key <NUM>-<NUM>, and the provider encryption unit <NUM> may encrypt the second media content <NUM>-<NUM> using the decrypted second content key <NUM>-<NUM>.

Referring back to <FIG>, the computing device <NUM> may access the media content provider <NUM> via the network <NUM> to obtain the media content <NUM>. For example, the computing device <NUM> may communicate with the media content provider <NUM> to view, access, download, stream, and/or playback the media content <NUM> on the computing device <NUM> via the playback unit <NUM> configured to render the media content <NUM>. However, the computing device <NUM> may be required to obtain a license <NUM> to view, access, download, stream, and/or playback the media content <NUM> on the computing device <NUM>. According to the embodiments, the computing device <NUM> is not required to send a separate license request <NUM> for each media content <NUM> of the license group <NUM>. Rather, the computing device <NUM> may receive a single license <NUM> that is used to decrypt all media content <NUM> of the license group <NUM>, thereby minimizing network traffic to the license manager <NUM>.

For example, a media content handler <NUM> of the computing device <NUM> may obtain the first media content <NUM>-<NUM> for playback. The media content handler <NUM> may obtain the first media content <NUM>-<NUM>, over the network <NUM>, from the media content provider <NUM>. In other examples, the media content handler <NUM> may obtain the first media content <NUM>-<NUM> from a storage area of the computing device <NUM>. In some examples, the media content handler <NUM> may determine that a license <NUM> is required to access the first media content <NUM>-<NUM>.

The computing device <NUM> may include a group license manager <NUM> configured to determine whether or not the first media content <NUM>-<NUM> is part of the license group <NUM>. In some examples, the group license manager <NUM> may determine whether or not a group identifier <NUM> is associated with the first media content <NUM>-<NUM>. If the group identifier <NUM> is included as part of the first media content <NUM>-<NUM> (e.g., included as meta-data associated with the first media content <NUM>-<NUM>), the group license manager <NUM> may determine that the first media content <NUM>-<NUM> is part of the license group <NUM>. On the other hand, if the group identifier <NUM> is not provided with the first media content <NUM>-<NUM>, the group license manager <NUM> may determine that the first media content <NUM>-<NUM> is not part of the license group <NUM>. If the first media content <NUM>-<NUM> is not part of a license group <NUM>, the group license manager <NUM> may request and receive an individual content key for the first media content <NUM>-<NUM> in accordance with standard license exchange techniques.

However, when the first media content <NUM>-<NUM> is determined as part of the license group <NUM>, the group license manager <NUM> may determine whether or not the master key <NUM> for the license group <NUM> was previously received. For example, the group license manager <NUM> may determine whether it has access to the master key <NUM> (e.g., whether it is stored locally in a storage unit of the computing device <NUM>). If the group license manager <NUM> determines that it has not previously received the master key <NUM> for that license group <NUM>, the group license manager <NUM> may send, over the network <NUM>, a license request <NUM> to the license manager <NUM>. The license request <NUM> may include the group identifier <NUM> of the license group <NUM> corresponding to the media content <NUM>, and the content identifier <NUM> that uniquely identifies the first media content <NUM>-<NUM>.

The license manager <NUM> may receive the license request <NUM>, over the network <NUM>, from the computing device <NUM>, and obtain the master key <NUM> for the license group <NUM> from the master key database <NUM>. For example, the license manager <NUM> may use the group identifier <NUM> of the license request <NUM> to obtain the correct master key <NUM> from the master key database <NUM>. Then, the license manager <NUM> may send the license <NUM> having the master key <NUM> back to the computing device <NUM>. In some examples, in response to receiving the license request <NUM>, the key generator <NUM> may derive the first content key <NUM>-<NUM>, and send the license <NUM> with both the master key <NUM> and the first content key <NUM>-<NUM>. Then, the computing device <NUM> may use either the first content key <NUM>-<NUM> received as part of the license <NUM> or derive the first content key <NUM>-<NUM> using the master key <NUM>. In some examples, the encryption unit <NUM> may be configured to encrypt the master key <NUM>, and the license manager <NUM> may send the license <NUM> with the encrypted master key <NUM>. In some examples, the encryption unit <NUM> may encrypt the master key <NUM> and the first content key <NUM>-<NUM>, and the license manager <NUM> may send the license <NUM> with the encrypted master key <NUM> and the encrypted first content key <NUM>-<NUM>.

The group license manager <NUM> may receive, over the network <NUM>, the license <NUM> from the license manager <NUM>. If the master key <NUM> is encrypted, the decryption unit <NUM> may decrypt the master key <NUM>. If the master key <NUM> and the first content key <NUM>-<NUM> are encrypted, the decryption unit <NUM> may decrypt the master key <NUM> and the first content key <NUM>-<NUM>. Then, the device key generator <NUM> may derive the first content key <NUM>-<NUM> for the first media content <NUM>-<NUM> based on the master key <NUM> received as part of the license <NUM>. This process may be the same as previously described above. For example, referring to <FIG>, the device key generator <NUM> may derive the first content key <NUM>-<NUM> based on the master key <NUM>, the group identifier <NUM>, and the content identifier <NUM>. The derived first content key <NUM>-<NUM> is unique to the first media content <NUM>-<NUM> specified by the content identifier <NUM>. In some examples, the device key generator <NUM> may generate the first content key <NUM>-<NUM> using the key derivation function <NUM> inputted with the master key <NUM>, the group identifier <NUM>, and the content identifier <NUM>. The decryption unit <NUM> may decrypt the first media content <NUM>-<NUM> using the derived first content key <NUM>-<NUM>, and the playback unit <NUM> configured to playback the decrypted first media content <NUM>-<NUM>.

Then, when the media content handler <NUM> obtains the second media content <NUM>-<NUM>, and the second media content <NUM>-<NUM> is part of the same license group <NUM>, the computing device <NUM> does not send another license request <NUM>. Rather, the group license manager <NUM> may determine that the second media content <NUM>-<NUM> is part of the license group <NUM> (e.g., due to the presence of the group identifier <NUM>), and may determine that it has previously received the master key <NUM> for the license group <NUM>. The device key generator <NUM> may generate the second content key <NUM>-<NUM> for the second media content <NUM>-<NUM> based on the same master key <NUM> that was used to generate the first content key <NUM>-<NUM> for the first media content <NUM>-<NUM>. For instance, the device key generator <NUM> may derive the second content key <NUM>-<NUM> for the second media content <NUM>-<NUM> using the key derivation function <NUM> inputted with the master key <NUM>, the group identifier <NUM>, and the content identifier <NUM> specific to the second media content <NUM>-<NUM>. The decryption unit <NUM> may be configured to decrypt the second media content <NUM>-<NUM> using the second content key <NUM>-<NUM> for the second media content <NUM>-<NUM>.

These operations may be repeated for all media content <NUM> of the license group <NUM> such that license requests do not need to be sent to the license manager <NUM>. Rather, the content keys <NUM> for the other media content <NUM> of the same license group <NUM> can be derived by the device key generator <NUM>. Also, the content keys <NUM> are not stored anywhere in the system <NUM> because the content keys <NUM> are derived from the master key <NUM>, thereby making the system <NUM> more secure.

<FIG> illustrates an example of the group license exchange with a plurality of protection layers for protecting the content key <NUM> according to an aspect. For example, <FIG> illustrates a message sequence between the computing device <NUM> and the license manager <NUM> that protects the content key <NUM> according to a number of protection layers. Although <FIG> illustrates three protection layers (e.g., layer <NUM>, layer <NUM>, and layer <NUM>), the implementations may include any number of protection layers (e.g. two protection layers or more than three protection layers).

In a first layer of protection, in operation <NUM>, the computing device <NUM> may request a first master key. For example, the group license manager <NUM> may be configured to send a first master key request over the network <NUM> to the license manager <NUM> to obtain the first master key (mKey1) for the license group <NUM>. In operation <NUM>, the license manager <NUM> may obtain the first master key (mKey1). For example, the key generator <NUM> may obtain or derive the first master key (mKey1) from the master key database <NUM>. In operation <NUM>, the license manager <NUM> may send the first master key (mKey1), and the computing device <NUM> may receive the first master key (mKey1). In operation <NUM>, the computing device <NUM> may generate a first content key (cKey1) using the first master key (mKey1). For example, the device key generator <NUM> of the computing device <NUM> may derive the first content key (cKey1) using the key derivation function <NUM> inputted with the first master key (mKey1), the group identifier <NUM>, and the content identifier <NUM> corresponding to the media content <NUM> to be decrypted.

In a second layer of protection, in operation <NUM>, the computing device <NUM> requests another master key with the first content key (cKey1). For example, the group license manager <NUM> may be configured to send a master key request over the network <NUM> to the license manager <NUM> to obtain another master key <NUM> for the license group <NUM>. In operation <NUM>, the license manager <NUM> obtains a second master key (mKey2). For example, the key generator <NUM> may obtain or derive the second master key (mKey2) from the master key database <NUM>. In operation <NUM>, the license manager <NUM> may send the second master key (mKey2), and the computing device <NUM> may receive the second master key (mKey2). In operation <NUM>, the computing device <NUM> may decrypt the first content key (cKey1) using the second master key (mKey2), thereby obtaining a second content key (cKey2).

In a third layer of protection, in operation <NUM>, the computing device <NUM> request another master key using the second content key (cKey2). For example, the group license manager <NUM> may send a master key request over the network <NUM> to the license manager <NUM> to obtain yet another master key <NUM> for the license group <NUM>. In operation <NUM>, the license manager <NUM> may obtain a third master key (mKey3). For example, the key generator <NUM> may obtain or derive the third master key (mKey3) from the master key database <NUM>. In operation <NUM>, the license manager <NUM> may send the third master key (mKey3), and the computing device <NUM> may receive the third master key (mKey3). In operation <NUM>, the computing device <NUM> may decrypt the second content key (cKey2) using the third master key (mKey3), thereby obtaining a third content key (cKey3). In some examples, the decryption unit <NUM> may decrypt the media content <NUM> using the third content key (cKey3). In other examples, additional layers of protection are added by repeating the previous operations to obtain a fourth content key, fifth content key, etc..

<FIG> illustrates a flow chart depicting example operations of the computing device <NUM> implementing the group license exchange mechanism of the system <NUM> of <FIG> according to an aspect. Although the flowchart of <FIG> illustrates the operations <NUM>-<NUM> in sequential order, it will be appreciated that this is merely an example, and that additional or alternative operations may be included. Further, operations of <FIG> and related operations may be executed in a different order than that shown, or in a parallel or overlapping fashion.

It may be determined whether media content is part of a license group (<NUM>). For example, the group license manager <NUM> configured to determine whether or not the first media content <NUM>-<NUM> is part of the license group <NUM>. In some examples, the group license manager <NUM> may determine whether or not a group identifier <NUM> is associated with the first media content <NUM>-<NUM>. The group identifier <NUM> may uniquely identify the license group <NUM>. If the group identifier <NUM> is included as part of the first media content <NUM>-<NUM> (e.g., included as meta-data associated with the first media content <NUM>-<NUM>), the group license manager <NUM> may determine that the first media content <NUM>-<NUM> is part of the license group <NUM>. On the other hand, if the group identifier <NUM> is not provided with the first media content <NUM>-<NUM>, the group license manager <NUM> may determine that the first media content <NUM>-<NUM> is not part of the license group <NUM>.

When the media content is determined as not part of the license group (No), an individual content key may be requested (<NUM>). For example, if the first media content <NUM>-<NUM> is not part of the license group <NUM>, the group license manager <NUM> may request and receive an individual content key for the first media content <NUM>-<NUM> in accordance with standard license exchange techniques. In some examples, this content key was generated at the license manager <NUM> without using the master key <NUM>.

When the media content is determined as part of the license group (Yes), it may be determined whether the computing device has a master key for the group identifier (<NUM>). For example, when the first media content <NUM>-<NUM> is determined as part of the license group <NUM>, the group license manager <NUM> may determine whether or not the master key <NUM> for the license group <NUM> was previously received. For example, the group license manager <NUM> may determine whether it has access to the master key <NUM> (e.g., whether it is stored locally in a storage unit of the computing device <NUM>).

When it has been determined that the computing device does not have the master key for the group identifier (No), a license request with the group identifier and the content identifier may be sent (<NUM>). For example, if the group license manager <NUM> determines that it has not previously received the master key <NUM> for that license group <NUM>, the group license manager <NUM> may send, over the network <NUM>, a license request <NUM> to the license manager <NUM>. The license request <NUM> may include the group identifier <NUM> of the license group <NUM> corresponding to the media content <NUM>, and the content identifier <NUM> that uniquely identifies the first media content <NUM>-<NUM>.

A master key may be received (<NUM>). For example, the license manager <NUM> may receive the license request <NUM>, over the network <NUM>, from the computing device <NUM>, and obtain the master key <NUM> for the license group <NUM> from the master key database <NUM>. For example, the license manager <NUM> may use the group identifier <NUM> of the license request <NUM> to obtain the correct master key <NUM> from the master key database <NUM>. Then, the computing device may receive the license with the master key <NUM> from the license manager <NUM>.

A content key may be derived with the master key (<NUM>). For example, the device key generator <NUM> may derive the first content key <NUM>-<NUM> for the first media content <NUM>-<NUM> based on the master key <NUM> received as part of the license <NUM>. In some examples, the device key generator <NUM> may generate the first content key <NUM>-<NUM> using the key derivation function <NUM> inputted with the master key <NUM>, the group identifier <NUM>, and the content identifier <NUM>. In some examples, the device key generator <NUM> may derive the first content key <NUM>-<NUM> using the key derivation function <NUM>. The key derivation function <NUM> may be a deterministic algorithm to derive a key of a given size. In some examples, the key derivation function <NUM> generates the first content key <NUM>-<NUM> as a <NUM> byte Advanced Encryption Standard (AES) based on the group identifier <NUM>, and a length of <NUM> bits.

Media content may be decrypted with the content key (<NUM>). For example, the decryption unit <NUM> may be configured to decrypt the first media content <NUM>-<NUM> using the derived first content key <NUM>-<NUM>.

When it has been determined that the computing device has the master key for the group identifier (Yes), the content key may be derived with the master key (<NUM>). For example, instead of sending a license request <NUM>, the group license manager <NUM> determines that it already has received a license <NUM> for the first media content <NUM>-<NUM> because it previously received the master key <NUM> for the license group <NUM> which the first media content <NUM>-<NUM> belongs to. Then, instead of performing operations <NUM>-<NUM>, the device key generator <NUM> may derive the first content key <NUM>-<NUM> using the previously received master key <NUM>.

These operations may be repeated for all media content <NUM> of the license group <NUM> such that license requests do not need to be send to the license manager <NUM>. Rather, the content keys <NUM> for the other media content <NUM> of the same license group <NUM> can be derived by the device key generator <NUM>. Also, the content keys <NUM> are not stored anywhere in the system <NUM> because the content keys <NUM> are derived from the master key <NUM>, thereby making the system <NUM> more secure.

<FIG> illustrates a flow chart depicting example operations of the license manager <NUM> implementing the group license exchange mechanism of the system <NUM> of <FIG> according to an aspect. Although the flowchart of <FIG> illustrates the operations <NUM>-<NUM> in sequential order, it will be appreciated that this is merely an example, and that additional or alternative operations may be included. Further, operations of <FIG> and related operations may be executed in a different order than that shown, or in a parallel or overlapping fashion.

A license request may be received from a computing device, where the license request includes a content identifier and a group identifier (<NUM>). For example, the license manager <NUM> may receive the license request <NUM>, over the network <NUM>, from the computing device <NUM>. The license request <NUM> may include the group identifier <NUM> that identifies the license group <NUM> in which the first media content <NUM>-<NUM> belongs to, and the content identifier <NUM> that uniquely identifies the first media content <NUM>-<NUM>.

A master key may be obtained using the group identifier (<NUM>). For example, in response to receiving the license request <NUM>, the key generator <NUM> may obtain the master key <NUM> corresponding to the license group <NUM> identified by the group identifier <NUM> from the master key database <NUM>.

A content key may be generated using the master key (<NUM>). In some examples, the key generator <NUM> may derive the first content key <NUM>-<NUM> using the master key <NUM>. For example, the key generator <NUM> may derive the first content key <NUM>-<NUM> using the key derivation function <NUM> inputted with the group identifier <NUM>, the content identifier <NUM>, and the obtained master key <NUM>.

The master key and the content key may be sent to the computing device (<NUM>). For example, the license manager <NUM> may send a license <NUM> back to the computing device, where the license <NUM> includes the master key <NUM> and the first content key <NUM>-<NUM>. The computing device <NUM> may decrypt the first media content <NUM>-<NUM> with the first content key <NUM>-<NUM> received as part of the license <NUM> or derive the first content key <NUM>-<NUM> using the master key <NUM>. Also, for all other media content (e.g., second media content <NUM>-<NUM>, third media content <NUM>-<NUM>), the computing device <NUM> does not have to send another license request <NUM>. Rather, the computing device <NUM> may use the master key <NUM> received as part of the license <NUM> to derive individual content keys <NUM> for any media content <NUM> apart of the license group <NUM>.

<FIG> illustrates a flow chart depicting example operations of the license manager <NUM> implementing the group license exchange mechanism of the system <NUM> of <FIG> according to another aspect. Although the flowchart of <FIG> illustrates the operations <NUM>-<NUM> in sequential order, it will be appreciated that this is merely an example, and that additional or alternative operations may be included. Further, operations of <FIG> and related operations may be executed in a different order than that shown, or in a parallel or overlapping fashion.

A key request may be received from a media content provider, where the key request includes the group identifier and the content identifier (<NUM>). For example, the license manager <NUM> may receive a key request <NUM> from the media content provider <NUM>, where the key request <NUM> includes the content identifier <NUM> for the media content <NUM> in which the media content provider <NUM> is instructed to encrypt, and the group identifier <NUM> that corresponds to the license group <NUM> of the media content <NUM> specified by the content identifier <NUM>. For example, the license manager <NUM> may receive a key request <NUM> specifying the content identifier <NUM> for the first media content <NUM>-<NUM>, and the group identifier <NUM> corresponding to the license group <NUM> of the first media content <NUM>-<NUM>.

A master key may be obtained using the group identifier (<NUM>). For example, the key generator <NUM> may obtain the master key <NUM> that corresponds to the group identifier <NUM> from the master key database <NUM>.

The content key may be derived using the master key, the group identifier, and the content identifier (<NUM>). For example, the key generator <NUM> may derive the first content key <NUM>-<NUM> for the first media content <NUM>-<NUM> using the master key <NUM>. In some examples, the key generator <NUM> may use the key derivation function <NUM> inputted with the master key <NUM>, the group identifier <NUM>, and the content identifier <NUM> to derive the first media content <NUM>-<NUM>.

A key response with the content key may be sent to the media content provider (<NUM>). For example, the license manager <NUM> may send the key response <NUM> with the derived first content key <NUM>-<NUM>. Operations <NUM>-<NUM> may be repeated for each of the other media content <NUM> included as part of the license group <NUM>.

<FIG> illustrates a flow chart depicting example operations of the media content provider <NUM> implementing the group license exchange mechanism of the system <NUM> of <FIG> according to an aspect. Although the flowchart of <FIG> illustrates the operations <NUM>-<NUM> in sequential order, it will be appreciated that this is merely an example, and that additional or alternative operations may be included. Further, operations of <FIG> and related operations may be executed in a different order than that shown, or in a parallel or overlapping fashion.

A license group of media content may be determined (<NUM>). For example, the media content provider <NUM> may determine a license group <NUM>. The media content provider <NUM> may indicate which media content <NUM> is part of the same license group <NUM>, and assign the same group identifier <NUM> to each of the media content <NUM> belonging to the license group <NUM>.

A key request with a group identifier and a content identifier may be sent to a license manager (<NUM>). For example, the media content provider <NUM> may send the key request <NUM> with the group identifier <NUM> and the content identifier <NUM>. In particular, the media content provider <NUM> may send the key request <NUM> for the first media content <NUM>-<NUM> including the content identifier <NUM> that uniquely identifies the first media content <NUM>-<NUM>, and the group identifier <NUM> of the first media content's license group <NUM>.

A content key may be received from the license manager (<NUM>). For example, the media content provider <NUM> may receive the first content key <NUM>-<NUM> from the license manager <NUM> as part of the key response <NUM>. Then, the media content may be encrypted with the content key (<NUM>). For example, the provider encryption unit <NUM> may encrypt the first media content <NUM>-<NUM> with the first content key <NUM>-<NUM>.

<FIG> shows an example of a generic computer device <NUM> and a generic mobile computer device <NUM>, which may be used with the techniques described here. Computing device <NUM> is intended to represent various forms of digital computers, such as laptops, desktops, tablets, workstations, personal digital assistants, televisions, servers, blade servers, mainframes, and other appropriate computing devices. Computing device <NUM> is intended to represent various forms of mobile devices, such as personal digital assistants, cellular telephones, smart phones, and other similar computing devices.

The processor <NUM> can be a semiconductor-based processor. The memory <NUM> can be a semiconductor-based memory. Also, multiple computing devices <NUM> may be connected, with each device providing portions of the necessary operations (e.g., as a server bank, a group of blade servers, or a multiprocessor system).

The information carrier is a computer- or machine-readable medium, such as the memory <NUM>, expansion memory <NUM>, or memory on processor <NUM>, which may be received, for example, over transceiver <NUM> or external interface <NUM>.

Thus, various implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof.

In addition, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. In addition, other steps may be provided, or steps may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Accordingly, other embodiments are within the scope of the following claims.

It will be appreciated that the above embodiments that have been described in particular detail are merely example or possible embodiments, and that there are many other combinations, additions, or alternatives that may be included.

Also, the particular naming of the components, capitalization of terms, the attributes, data structures, or any other programming or structural aspect is not mandatory or significant, and the mechanisms that implement the invention or its features may have different names, formats, or protocols. Further, the system may be implemented via a combination of hardware and software, as described, or entirely in hardware elements. Also, the particular division of functionality between the various system components described herein is merely exemplary, and not mandatory; functions performed by a single system component may instead be performed by multiple components, and functions performed by multiple components may instead performed by a single component.

Some portions of above description present features in terms of algorithms and symbolic representations of operations on information. These algorithmic descriptions and representations may be used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. Furthermore, it has also proven convenient at times, to refer to these arrangements of operations as modules or by functional names, without loss of generality.

Claim 1:
A client computing device (<NUM>) comprising:
at least one processor (<NUM>, <NUM>);
a non-transitory computer-readable medium storing executable instructions that when executed by the at least one processor are configured to implement:
a media content handler (<NUM>) configured to obtain media content (<NUM>), the media content (<NUM>) associated with a license group;
a group license manager (<NUM>) configured to determine whether or not the media content (<NUM>) is part of the license group (<NUM>), and when the media content (<NUM>) is determined as part of the license group (<NUM>), the group license manager (<NUM>) is configured to determine whether a master key (<NUM>) for the license group was previously received,
the group license manager (<NUM>) configured to send, over a network, a license request (<NUM>) to a license manager (<NUM>) when the master key (<NUM>) was not previously received, the license request (<NUM>) including a content identifier (<NUM>) identifying the media content (<NUM>) and a group identifier (<NUM>) identifying the license group (<NUM>) that includes the media content (<NUM>), the group license manager (<NUM>) configured to receive, over the network, a license (<NUM>) to permit access to the media content (<NUM>), the license including the master key (<NUM>) corresponding to the license group (<NUM>);
a key generator (<NUM>, <NUM>) configured to derive a content key (<NUM>) specific to the media content (<NUM>) identified by the content identifier (<NUM>) based on the master key (<NUM>), wherein the content key is not stored on the client computing device (<NUM>), wherein the key generator (<NUM>,<NUM>) is configured to derive the content key (<NUM>) using a key derivation function (<NUM>) inputted with the master key (<NUM>), the content identifier (<NUM>), and the group identifier (<NUM>); and
a decryption unit (<NUM>) configured to decrypt the media content (<NUM>) using the content key (<NUM>) such that the media content (<NUM>) can be accessed,
wherein content keys for other media content that is part of the license group are configured to be derived at the client computing device based on the master key, a respective content identifier, and the group identifier using the key derivation function.