Pairing method between a multimedia unit and at least one operator, multimedia unit, operator and personalization entity for the implementation of this method

11658954 · 2023-05-23

Assignee

Inventors

Cpc classification

International classification

Abstract

The present invention relates in particular to a pairing method between a multimedia unit and one operator having an operator identifier, the multimedia unit having a multimedia unit identifier and receiving conditional access data from said operator, the method being characterized in that: receiving by the multimedia unit a multimedia unit key formed by applying a first cryptographically function to a personalization key and to the multimedia unit identifier; receiving by the operator an operator key formed by applying a second cryptographically function to said personalization key and to the operator identifier; said multimedia unit further having a function of the multimedia unit and said operator further having a function of the operator, these functions being such that the result of the application of the function of the operator to said operator key and to said multimedia unit identifier is equal to the result of the application of the function of the multimedia unit to said multimedia unit key and to said operator identifier, this result forming a pairing key between said multimedia unit and said operator.

Claims

1. A method for pairing a computing device with an operator device to communicate encrypted conditional access data, the method comprising: receiving, at the computing device, a first key for the computing device, the first key being formed based on applying a first cryptographic function using a second key and an identifier for the computing device as input parameters; obtaining, at the computing device, an identifier associated with the operator device; generating, by one or more processors of the computing device, a third key, the third key being generated based on applying a mathematical function using the identifier associated with the operator device and the first key for the computing device as input parameters; receiving, at the computing device, an encrypted transmission key, encrypted control words, and the encrypted conditional access data from the operator device, wherein the encrypted transmission key has been encrypted using a fourth key that is identical to the third key and has been generated based on applying a second mathematical function using the identifier for the computing device and a further key associated with the operator device as input parameters; decrypting, by the one or more processors of the computing device, the encrypted transmission key using the third key, thereby obtaining a decrypted transmission key; decrypting, by the one or more processors of the computing device, the encrypted control words using the decrypted transmission key, thereby obtaining decrypted control words, and decrypting, by the one or more processors of the computing device, the encrypted conditional access data using the decrypted control words, thereby obtaining decrypted conditional access data.

2. The method of claim 1, wherein the computing device is a smartphone, a tablet, a desktop computer, a television, a set-top box, a gaming console, a streaming device, or a digital video recorder.

3. The method of claim 1, wherein the mathematical function for generating the third key includes modular exponentiation using the first key as base and using a hash function applied to the identifier associated with the operator device as exponent.

4. The method of claim 1, wherein the computing device receives the first key from a personalization entity, wherein said personalization entity generates the first key by applying the first cryptographic function using the second key and the identifier for the computing device as input parameters, and wherein the second key is not furnished to the computing device.

5. The method of claim 4, wherein the first cryptographic function for generating the first key includes modular exponentiation using the second key as base and using a further hash function applied to the identifier for the computing device as exponent.

6. The method of claim 3, wherein the fourth key is generated by the operator device by applying a second mathematical function using the identifier for the computing device and a further key associated with the operator device as input parameters.

7. The method of claim 6, wherein the second mathematical function includes modular exponentiation using the further key as base and using a further hash function applied to the identifier for the computing device as exponent.

8. The method of claim 6, wherein the operator device receives the further key from a personalization entity, wherein said personalization entity generates the further key by applying a second cryptographic function using the second key and the identifier for the operator device as input parameters, and wherein the second key is not furnished to the operator device.

9. The method of claim 8, wherein the second cryptographic function for generating the further key includes modular exponentiation using the second key as base and using the hash function applied to the identifier for the operator device as exponent.

10. The system of claim 1, wherein the computing device is a smartphone, a tablet, a laptop, a desktop computer, a television, a set-top box, a gaming console, a streaming device, or a digital video recorder; and the operator device is part of a communication network.

11. A computing device configured to be paired with an operator device to communicate encrypted conditional access data, the computing device comprising: one or more processors; and a memory accessible to the one or more processors and storing instructions which, upon execution by the one or more processors, cause the one or more processors to perform operations comprising: receiving a first key for the computing device, the first key being formed based on applying a first cryptographic function using a second key and an identifier for the computing device as input parameters; obtaining an identifier associated with the operator device; generating a third key, the third key being generated based on applying a mathematical function using the identifier associated with the operator device and the first key for the computing device as input parameters; receiving, at the computing device, an encrypted transmission key, encrypted control words, and the encrypted conditional access data from the operator device, wherein the encrypted transmission key has been encrypted using a fourth key that is identical to the third key and has been generated based on applying a second mathematical function using the identifier for the computing device and a further key associated with the operator device as input parameters; decrypting the encrypted transmission key using the third key, thereby obtaining a decrypted transmission key; decrypting the encrypted control words using the decrypted transmission key, thereby obtaining decrypted control words, and decrypting the encrypted conditional access data using the decrypted control words, thereby obtaining decrypted conditional access data.

12. The system of claim 11, wherein the computing device is a smartphone, a tablet, a laptop, a desktop computer, a television, a set-top box, a gaming console, a streaming device, or a digital video recorder; and the operator device is part of a communication network.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

(1) This invention and its advantages will be better understood with reference to the annexed figures and to the detailed description of a particular embodiment, in which:

(2) FIG. 1 represents the system according to this invention;

(3) FIG. 2 shows, in the form of block diagram, an encryption method according to one aspect of the invention; and

(4) FIG. 3 is a block diagram representing the decryption method according to one aspect of the present invention,

(5) FIG. 4 illustrates a multimedia unit to execute the present method.

WAYS OF REALISING THE INVENTION

(6) FIG. 1 represents the different entities used within the context of the present disclosure and for the implementation of the method according to this disclosure.

(7) In the particular example disclosed, three different operators have been represented. These operators are indicated respectively as Op.sub.1, Op.sub.2, and Op.sub.3. Three multimedia units have also been represented and carry the references STB.sub.1, STB.sub.2, and STB.sub.3. All these multimedia units and all the operators are connected to a personalization entity P.

(8) The personalization entity P has a secret personalization key N which is not transmitted to any other entity. This personalization entity further has a list of identifiers corresponding on the one hand to an identifier O.sub.ID specific to each operator Op and on the other hand, to an identifier U.sub.ID specific to each STB multimedia unit.

(9) The identifier specific to each multimedia unit, indicated U.sub.ID, can be introduced into these multimedia units during their personalization by the manufacturer of electronic modules (Chipset). In a similar way, each operator has a specific identifier, indicated with O.sub.ID, which is transmitted to them by the personalization entity. This personalization entity has calculation means allowing it to process the operator identifier O.sub.ID as explained below, in order to allow this operator to transfer conditional access content to a multimedia unit managed by this personalization entity.

(10) It should be noted that the personalization of a multimedia unit is done independently of the operator or operators this multimedia unit communicates with. In most cases, the personalization is made before knowing which operator this multimedia unit will be associated to. According to the invention, it is possible to associate a multimedia unit simultaneously with several operators.

(11) During the personalization of a multimedia unit, the calculation means of the personalization entity P calculates a multimedia unit key KU.sub.ID, this key being obtained by applying a first cryptographically secure mathematical function, noted f.sub.1, to the personalization key N and to the multimedia unit identifier U.sub.ID. We have KU.sub.ID=f.sub.1 (N; U.sub.ID) or for example KU.sub.1=f.sub.1 (N.sub.1, U.sub.1) for the multimedia unit STB.sub.1 having U.sub.1 as identifier. The key thus obtained is transmitted to the concerned multimedia unit. This transmission is done in principle during the personalization, i.e. when the couple (U.sub.ID; KU.sub.ID) is stored in the multimedia unit, but it could also be made subsequently, for example by transmission in a protected message. When the couple (U.sub.ID; KU.sub.ID) is stored in the multimedia unit during the personalization, it is easy for the personalization entity to supply beforehand a long list of couples (U.sub.ID; KU.sub.ID) to the manufacturer of multimedia units.

(12) The mathematical function used for forming the multimedia unit key KU.sub.ID from the identifier U.sub.ID of this multimedia unit and from the personalization key N or said first mathematical function f.sub.1 preferably has particular properties. These properties are such that: the knowledge of the multimedia unit key (KU.sub.ID) and the multimedia unit identifier (U.sub.ID) does not allow to calculate the personalization key (N); the knowledge of a first multimedia unit key (KU.sub.ID) calculated for a multimedia unit having a first multimedia unit identifier (U.sub.ID) does not allow to calculate a second multimedia unit key (KU.sub.ID*) for a multimedia unit having a second multimedia unit identifier (U.sub.ID*) different from said first multimedia unit identifier (U.sub.ID); the knowledge of the multimedia unit identifier (U.sub.ID) without knowing the personalization key (N) does not allow to calculate the multimedia unit key (KU.sub.ID).

(13) With these properties, it is possible to make the identifier U.sub.ID of the multimedia unit public without risking to compromise the key of this multimedia unit KU.sub.ID and/or the personalization key N.

(14) The personalization entity P also has the identifier of the operators this entity cooperates with. This identifier O.sub.ID can be public. The personalization entity P calculates an operator key KO.sub.ID by applying a second mathematical function, noted g.sub.1, cryptographically secure, to the personalization key N and to the operator identifier O.sub.ID. Thus we have KO.sub.ID=g.sub.1 (N; O.sub.ID) or for example for the operator Op.sub.1, KO.sub.1=g.sub.1 (N; O.sub.1). This function g.sub.1 has the same properties as the function f.sub.1, namely that: the knowledge of the operator key (KO.sub.ID) and of the operator identifier (O.sub.ID) does not allow to calculate the personalization key (N); the knowledge of a first operator key (KO.sub.ID) calculated for an operator having a first operator identifier (O.sub.ID) does not allow to calculate a second operator key (KO.sub.ID*) for an operator having a second operator identifier (O.sub.ID*) different from said first operator identifier (O.sub.ID); the knowledge of the operator identifier (O.sub.ID) without knowing the personalization key (N) does not allow to calculate the operator key (KO.sub.ID).

(15) These properties correspond to the characteristic “cryptographically secure”.

(16) The operator keys KO.sub.ID calculated by the personalization entity are then delivered to the concerned operators in a confidential way. At this stage each operator has their identifier O.sub.ID and their operator key KO.sub.ID, calculated and transmitted by the personalization entity P.

(17) Finally, for the multimedia unit and the operator to be able to communicate in a secure way, they must be able to deduce a common key from confidential information they have and from the public information of the other entity.

(18) Thus, the operator should be able to calculate a unique key K.sub.O.sub.ID.sub.-U.sub.ID called pairing key. This pairing key is calculated by applying a cryptographically secure operator function g.sub.2 to the operator key KO.sub.ID and to the multimedia unit identifier U.sub.ID this operator has to be paired with. Thus we have K.sub.O.sub.ID.sub.-U.sub.ID=g.sub.2 (KO.sub.ID; U.sub.ID) or for example for the operator Op.sub.1 and the multimedia unit U.sub.1, K.sub.O.sub.1.sub.-U.sub.1=g.sub.2 (KO.sub.1; U.sub.1). This operator function g.sub.2 has the same properties as the first function f.sub.1. More precisely, the cryptographically secure operator function g.sub.2 is such that: the knowledge of the pairing key (K.sub.O.sub.ID.sub.-U.sub.ID) and of the multimedia unit identifier (U.sub.ID) does not allow to calculate the operator key (KO.sub.ID); the knowledge of a first pairing key (K.sub.O.sub.ID.sub.-U.sub.ID) calculated for a multimedia unit having a first multimedia unit identifier (U.sub.ID) and an operator having a first operator key KO.sub.ID does not allow to calculate a second pairing key (K.sub.O.sub.ID*.sub.-U.sub.ID*) for a multimedia unit having a second multimedia unit identifier (U.sub.ID*) different from said first multimedia unit identifier (U.sub.ID) and/or an operator having a second operator key KO.sub.ID* different from said first operator key KO.sub.ID; the knowledge of the multimedia unit identifier (U.sub.ID) without knowing the operator key (KO.sub.ID) does not allow to calculate the pairing key (K.sub.O.sub.ID.sub.-U.sub.ID); the knowledge of said operator key KO.sub.ID without knowing the multimedia unit identifier U.sub.ID does not allow to calculate the pairing key (K.sub.O.sub.ID.sub.-U.sub.ID).

(19) These properties correspond to the characteristic “cryptographically secure”.

(20) Symmetrically, it is necessary that the multimedia unit be able to calculate the same unique key K.sub.O.sub.ID.sub.-U.sub.ID by applying a cryptographically secure multimedia unit function f.sub.2 to its key KU.sub.ID and to the identifier of the operator O.sub.ID it has to be paired with. Thus we have K.sub.O.sub.ID.sub.-U.sub.ID=f.sub.2 (KU.sub.ID, O.sub.ID) or for example for the operator Op.sub.1 and the multimedia unit U.sub.1, K.sub.O.sub.1.sub.-U.sub.1=f.sub.2 (KU.sub.1, O.sub.1). This multimedia unit function f.sub.2 has the same properties as the operator function g.sub.2. More precisely, the function of the multimedia unit f.sub.2 is such that: the knowledge of the pairing key (K.sub.O.sub.ID.sub.-U.sub.ID) and of the operator identifier (O.sub.ID) does not allow to calculate the key of the multimedia unit (KU.sub.ID); the knowledge of a first pairing key (K.sub.O.sub.ID.sub.-U.sub.ID) calculated for an operator having a first operator identifier (O.sub.ID) and a multimedia unit having a first multimedia unit key KU.sub.ID does not allow to calculate a second pairing key K.sub.O.sub.ID.sub.-U.sub.ID for an operator having a second operator identifier (O.sub.ID*) different from said first operator identifier (O.sub.ID) and/or a multimedia unit having a second multimedia unit key KU.sub.ID* different from said first multimedia unit key; the knowledge of the operator identifier (O.sub.ID) without knowing the multimedia unit key (KU.sub.ID) does not allow to calculate the pairing key (K.sub.O.sub.ID.sub.-U.sub.ID); the knowledge of the multimedia unit key KU.sub.ID without knowing the operator identifier O.sub.ID does not allow to calculate the pairing key (K.sub.O.sub.ID.sub.-U.sub.ID).

(21) These properties correspond to the characteristic “cryptographically secure”.

(22) The mathematical functions used in the present invention should meet the following condition, expressed in mathematical form:
g.sub.2(g.sub.1(A;C);B)=f.sub.2(f.sub.1(A;B);C)
where f.sub.1 is said first cryptographically secure function; g.sub.1 is said second cryptographically secure function; f.sub.2 is said multimedia unit function, g.sub.2 is said operator function, and A, B, and C are entry variables of these functions.

(23) Using the references used in the present disclosure, this condition means that:
g.sub.2(g.sub.1(N;O.sub.ID);U.sub.ID)=f.sub.2(f.sub.1(N;U.sub.ID);O.sub.ID)

(24) If this condition is met, we will have:
K.sub.O.sub.ID.sub.-U.sub.ID=g.sub.2(KO.sub.ID;U.sub.ID)=g.sub.2[g.sub.1(N;O.sub.ID);U.sub.ID]=f.sub.2[f.sub.1(N;U.sub.ID);O.sub.ID]=f.sub.2(KO.sub.ID;O.sub.ID)=K.sub.O.sub.ID.sub.-U.sub.ID

(25) When a user wishes to be able to receive conditional access content from a given operator, the multimedia unit of this user and this operator have to be paired. To this aim, the user transmits the identifier U.sub.ID of their multimedia unit to the operator. Generally, when the invention is implemented in a broadcast type communication system, there is no automatic communication channel or feedback channel from the multimedia unit towards the operator. The transmission of the multimedia unit identifier to the operator is thus made by the user. This transmission can be made for example by telephone, the user indicating an identifier which can be printed on a physical support such as the multimedia unit, a separately delivered printed document or a smart card for example. As previously indicated, the transmission of the multimedia unit identifier can be also made by other means, and in particular by a feedback channel if a feedback channel is available.

(26) When the identifier of the multimedia unit is transmitted to the operator, the latter can calculate the pairing key K.sub.O.sub.ID.sub.-U.sub.ID defined by the previously described method. The operator can thus send, by the broadcast channel, its identifier O.sub.ID in order to allow the multimedia unit to calculate the same pairing key K.sub.O.sub.ID.sub.-U.sub.ID. This pairing key can then be used for encrypting the messages and sending them to the multimedia unit, so that only this multimedia unit be able to decrypt them.

(27) According to a first embodiment, the pairing key can be used for encrypting the messages containing rights, such as management messages EMM (Entitlement Management Message) or a transmission key. In order to reduce the exposure of the pairing key, according to another embodiment, the pairing key is used to transmit in a secure manner, a master key, the latter being used to encrypt the messages containing rights, such as management messages EMM (Entitlement Management Message) or a transmission key. This reduces the occurrence of using the pairing key.

(28) Knowing the identifiers U.sub.ID of all the multimedia units to which the operator wants to send content, it is sufficient now that the operator conventionally distribute content keys as well as rights in order to allow these units to decrypt the conditional access data transmitted on the operator's channel. The way to manage the conditional access is known from the state of the art and is not described later on.

(29) In the example illustrated in FIG. 1, the operator having the identifier O.sub.1 has the identifiers U.sub.1 and U.sub.2 which correspond respectively to the multimedia units STB.sub.1, and STB.sub.2 to which this operator can send content keys and conditional access data. The operator having the operator identifier O.sub.2 knows the identifier U.sub.3 of the multimedia unit STB.sub.3 to which it can send content keys and conditional access data and the operator having the operator identifier O.sub.3 knows the identifiers U.sub.1 and U.sub.3 of the multimedia units STB.sub.1 and STB.sub.3 to which this operator Op.sub.3 can send content keys and conditional access data.

(30) These multimedia unit identifiers can be public and their knowledge does not give any information to a person desiring to test the security of the system, by way of the properties of the cryptographic functions allowing the calculation of the keys.

(31) In a similar way, the multimedia unit having the identifier U.sub.1 knows the identifiers O.sub.1 and O.sub.3 of the operators from which it can obtain conditional access data; the multimedia unit STB.sub.2 having the identifier U.sub.2 knows the identifier O.sub.1 of the operator from which this unit can obtain conditional access data and the multimedia unit having the identifier U.sub.3 has the identifiers O.sub.2 and O.sub.3 of the operators from which this unit can obtain conditional access data.

(32) In this case as well, the operator identifiers do not constitute sensitive information and the transmission of these identifiers to the concerned multimedia units can be done in an unencrypted or encrypted way, without great attention being necessary to the encryption process used.

(33) Once the operators have received the identifiers U.sub.ID of the multimedia units they have to be paired with, they calculate the respective pairing keys K.sub.O.sub.ID.sub.-U.sub.ID by applying the operator function g.sub.2 to the couple “operator key KO.sub.ID-multimedia unit identifier U.sub.ID”.

(34) In a symmetrical way, once the multimedia units have received the identifiers O.sub.ID of the operators they have to be paired with, they calculate the respective pairing keys K.sub.O.sub.ID.sub.-U.sub.ID by applying the multimedia unit function g.sub.1 to the couple “Multimedia unit key KU.sub.ID-operator identifier O.sub.ID”.

(35) All the couples operator-multimedia unit thus have a key which is specific to each couple and is common to the two elements of the couple.

(36) The pairing key calculated between a given operator and a given multimedia unit could be directly used to encrypt content to be transmitted from the operator to the related multimedia unit. In practice, this is however not generally done. In the context of a broadcast-type transmission, the content is encrypted by control words which are identical for a set of multimedia units. As the pairing key is different for each couple operator-multimedia unit, it cannot be used for encrypting contents in an identical way for several multimedia units.

(37) In practice, in a broadcast-type transmission mode and as shown in FIG. 2, conditional access data CT is encrypted by means of control words CW, independently of the multimedia units to which this data is intended. This encrypted data is then transmitted in such a way that at least the multimedia units to which this data is intended may receive them.

(38) The control words are in turn encrypted by a transmission key KT and transmitted at least to the concerned multimedia units. Finally, the transmission key is encrypted by means of a key specific to each multimedia unit and more specifically, to each couple operator—multimedia unit. This key can be the pairing key between the operator and the multimedia unit or a key derived from this pairing key.

(39) The decryption is shown in FIG. 3. A multimedia unit receives conditional access data CT encrypted by control words CW, messages containing at least one control word and encrypted by a transmission key KT and messages containing at least one transmission key and encrypted by a key specific to the couple operator—multimedia unit. The latter key can be the pairing key or a key derived from it.

(40) To access the conditional access data in clear, the multimedia unit calculates, by calculation means of this multimedia unit, the pairing key by means of the multimedia unit function KU.sub.1 and the operator identifier O.sub.1. This pairing key allows access to the transmission key KT, which allows to obtain the control words CW. These control words CW can then be used for decrypting the conditional access data.

(41) In a point-to-point transmission mode for example, the pairing key or a key derived from it could be used for directly encrypting contents.

(42) As previously indicated, the functions used within the context of the invention meet the following conditions: If U.sub.ID and KU.sub.ID=f.sub.1(N; U.sub.ID) are known, it is not possible to calculate N If O.sub.ID and KO.sub.ID=g.sub.1(O.sub.ID; N) are known, it is not possible to calculate N Regardless of the number of known couples (U.sub.ID; g.sub.1(N; O.sub.ID)) and (O.sub.ID; f.sub.1(N; U.sub.ID)), it is difficult to calculate KU.sub.ID (respectively KO.sub.ID) for a different U.sub.ID (resp. O.sub.ID). g.sub.2(g.sub.1(N; O.sub.ID); U.sub.ID)=f.sub.2 (f.sub.1(N; U.sub.ID); O.sub.ID)

(43) Among the mathematic functions which fulfil these conditions, there is in particular a modular exponentiation function. Such a function can be expressed in the following way:
f(a,b)=a.sup.H(b)mod m
where a and b are the entry variables of the function, h is a cryptographic hash function and m is the product of two large prime numbers p and q.

(44) Such an exponentiation function can be used for calculating the operator key KO.sub.ID from the personalization key N and the operator identifier O.sub.ID. We have:
KO.sub.ID=g.sub.1(N;O.sub.ID)=N.sup.H(O.sup.ID.sup.)mod m

(45) It should be noted that the number m is known by the multimedia units as well as by the operators. However, they do not have to know p and q.

(46) A similar function can be used for calculating the multimedia unit key KU.sub.ID from the personalization key N and the multimedia unit identifier U.sub.ID. We have:
KU.sub.ID=f.sub.1(N;U.sub.ID)=N.sup.H(U.sup.ID.sup.)mod m
where the value of m used in this formula is identical to the value of m as defined above.

(47) Generally, we may use
f.sub.1(a;b)=f.sub.2(a;b)=g.sub.1(a;b)=g.sub.2(a;b)=a.sup.H(b)mod m
g.sub.2(KO.sub.1;U.sub.1)=KO.sub.1.sup.H(U.sup.1.sup.)mod m

(48) It can be shown that when using such a modular exponentiation, we will have
g.sub.2(KO.sub.1;U.sub.1)=KO.sub.1.sup.H(U.sup.1.sup.)mod m

(49) By replacing KO.sub.1 by g.sub.1(N; O.sub.1)=N.sup.H(O.sup.1.sup.)mod m, we have:
g.sub.2(KO.sub.1;U.sub.1)=KO.sub.1.sup.H(U.sup.1.sup.)mod m=[N.sup.H(O.sup.1.sup.)mod m].sup.H(U.sup.1.sup.)mod m

(50) In a similar way,
f.sub.2(KU.sub.1;O.sub.1)=KU.sub.1.sup.H(O.sup.1.sup.)mod m

(51) By replacing KU.sub.1 by f.sub.1(N; U.sub.1)=N.sup.H(U.sup.1.sup.)mod m we have:
g.sub.2(g.sub.1(N;O.sub.ID);U.sub.ID)=f.sub.2(f.sub.1(N;U.sub.ID);O.sub.ID)

(52) As [N.sup.H(O.sup.1.sup.)mod m].sup.H(U.sup.1.sup.)mod m=[N.sup.H(U.sup.1.sup.)mod m].sup.H(O.sup.1.sup.)mod m we have:
g.sub.2(g.sub.1(N;O.sub.ID);U.sub.ID)=f.sub.2(f.sub.1(N;U.sub.ID);O.sub.ID)

(53) More generally, the mathematical functions which can be used to reach the desired result are the so-called quasi-commutative functions. The functions f and g are called quasi-commutative if:
f(g(x;y.sub.1);y.sub.2)=g(f(x;y.sub.2);y.sub.1)
where “=” means equal almost everywhere or in other words, equal except for a finite number of values.

(54) The pairing method according to the invention allows to pair a multimedia unit with one or more operators by exchanging only public data among each other. This method allows to calculate a pairing key both in the multimedia unit and at the operator. The knowledge of the secrets of an operator has no influence on the security of the other operators.

(55) In this way, the number of multimedia units with which an operator can communicate is practically unlimited and the generation of the keys is done in an efficient way, with no need to transmit a large number of unnecessary keys or with no need to wait for a long time before the multimedia unit works.

(56) For the purpose of executing the present disclosure, the multimedia unit STB, and more generally a computing device 200 is illustrated in the FIG. 4.

(57) FIG. 4 is a block diagram illustrating an example of a multimedia unit that may implement one or more techniques of this disclosure. Multimedia unit 200 is an example of a multimedia unit that may be configured to transmit data to and receive data from a communications network, allow a user to access multimedia content, and execute one or more applications. Multimedia unit 200 may include or be part of a stationary multimedia unit (e.g., a desktop computer, a television, a set-top box, a gaming console, a dedicated multimedia streaming device, a digital video recorder, etc.), a portable multimedia unit (e.g., a mobile phone, a laptop, a personal data assistant (PDA), a tablet device, a portable gaming device, etc.) or another type of multimedia unit. In the example illustrated in FIG. 4, multimedia unit 200 is configured to receive data via a television network, such as, for example, television network 106 or NT1 described above and send and receive data via a data network, such as, for example, a public or local network 108 or LNT. It should be noted that in other examples, multimedia unit 200 may be configured to send and receive data through one of television network 106 or local network 108. The techniques described herein may be utilized by devices configured to communicate using any and all combinations of communications networks.

(58) As illustrated in FIG. 4, multimedia unit 200 includes central processing unit(s) 202, system memory 204, system interface 210, modem 212, transport module 214, audio-video de-multiplexer (AVdemux) 216, network interface 218, storage device(s) 220, user interface(s) 222, audio decoder 224, audio processor 226, video decoder 228, graphics processing unit 230, and display processor 232.

(59) As illustrated in FIG. 4, system memory 204 includes operating system 206, applications 208, and content selection application 209. Each of central processing units(s) 202, system memory 204, system interface 210, modem 212, transport module 214, AV demux 216, network interface 218, storage device(s) 220, user interface(s) 222, audio decoder 224, audio processor 226, video decoder 228, graphics processing unit 230, and display processor 232 may be interconnected (physically, communicatively, and/or operatively) for inter-component communications and may be implemented as any of a variety of suitable circuitry, such as one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), discrete logic, software, hardware, firmware or any combinations thereof. It should be noted that although example multimedia unit 200 is illustrated as having distinct functional blocks, such an illustration is for descriptive purposes and does not limit multimedia unit 200 to a particular hardware architecture. Functions of multimedia unit 200 may be realized using any combination of hardware, firmware and/or software implementations. In some examples, functionality of multimedia unit 200 may be implemented using one or more so-called systems on a chip (SOC). For example, multimedia unit 200 may include a set-top box including a SOC. One example of a commercially available SOC that may be included in a set-top box is the Broadcom®BCM7252 Ultra HD SoC. Central processing unit(s) 202 may be configured to implement functionality and/or process instructions for execution in multimedia unit 200. Central processing unit(s) 202 may be capable of retrieving and processing instructions, code, and/or data structures for implementing one or more of the techniques described herein. Instructions may be stored on a computer readable medium, such as system memory 204 or storage device(s) 220. Central processing unit(s) 202 may include multi-core central processing units. As described in detail below, the techniques described herein may be used to optimize CPU usage. For example, one or more background processing techniques may be used to reduce the delay (or lag) experienced by a user interacting with one of the graphical user interfaces described below.

(60) System memory 204 may be described as a non-transitory or tangible computer-readable storage medium. In some examples, system memory 204 may provide temporary and/or long-term storage. In some examples, system memory 204 or portions thereof may be described as non-volatile memory and in other examples portions of system memory 204 may be described as volatile memory. Examples of volatile memories include random access memories (RAM), dynamic random access memories (DRAM), and static random access memories (SRAM). Examples of non-volatile memories include magnetic hard discs, optical discs, floppy discs, flash memories, or forms of electrically programmable memories (EPROM) or electrically erasable and programmable (EEPROM) memories.

(61) System memory 204 may be configured to store information that may be used by multimedia unit 200 during operation. System memory 204 may be used to store program instructions for execution by central processing unit(s) 202 and may be used by software or applications running on multimedia unit 200 to temporarily store information during program execution. For example, system memory 204 may store instructions associated with operating system 206, applications 208, and content selection application 209. System memory 204 may include one or more distinct memory devices, where each memory device may include a distinct type of memory interface. For example, system memory 204 may include an internal hard disk or solid state drive, a random access memory module, an embedded MultiMediaCard (eMMC) memory device, and/or one or more caches (e.g., CPU caches and/or GPU caches). As described in detail below, images associated with a graphical user interface may be loaded from a portion of system memory 204 to another portion of system memory 204 in order to reduce the time required to render the images on a display based on received user inputs. For example, a subset of images associated with a graphical user interface may be loaded into a cache based on user behavior. It should be noted that the techniques described herein may be generally applicable to any memory architecture.

(62) Applications 208 and content selection application 209 may include applications implemented within or executed by multimedia unit 200 and may be implemented or contained within, operable by, executed by, and/or be operatively/communicatively coupled to components of multimedia unit 200.

(63) Applications 208 and content selection application 209 may include instructions that may cause central processing unit(s) 202 of multimedia unit 200 to perform particular functions. Applications 208 and content selection application 209 may include algorithms which are expressed in computer programming statements, such as, for-loops, while-loops, if-statements, do-loops, etc. Applications 208 and content selection application 209 may be distributed to multimedia unit 200 through an application distribution site, for example, application distribution site 122. In one example, applications 208 and content selection application 209 may cause multimedia unit 200 to perform functions associated with the example techniques described herein that enable a user to access items of content. Applications 208 and content selection application 209 may cause one or more graphical user interfaces to be presented that enable a user to provide data for use by an application. In one example, applications 208 may include one or more dedicated applications enabling a user to access a digital media service. It should be noted that as used herein a dedicated application enabling a user to access a digital media service may be high integrated with an application or operating system of a multimedia unit.

(64) For example, a set-top box supported by a cable television provider may enable a user to access items of content from a television service, an on demand media service maintained by the cable television service provider, and/or a third party media streaming service. In some cases, each distinct graphical user interface enabling a user to select items of content to access may be referred to as a dedicated application, a source, and/or a portal. In one example, content selection application 209 may be provided to a multimedia unit and cause a multimedia unit to enable a user to select items of content according to one or more of the techniques described herein.

(65) As described in detail below content selection application 209 may operate in conjunction with an application running on a companion device, such as a mobile device.

(66) As further illustrated in FIG. 4, applications 208 and content selection application 209 may execute in conjunction with operating system 206. That is, operating system 206 may be configured to facilitate the interaction of applications 208 and content selection application 209 with central processing unit(s) 202, and other hardware components of multimedia unit 200. It should be noted that in some examples, components of operating system 206 and components acting in conjunction with operating system 206 may be referred to as middleware. Further, in some examples, content selection application 209 may include an application programming interface (API). The techniques described herein may be utilized by devices configured to operate using any and all combinations of software architectures. Operating system 206 may be an operating system designed to be installed on laptops, desktops, smartphones, tablets, set-top boxes, digital video recorders, televisions and/or gaming devices. In one example, operating system 206 may include one or more of operating systems or middleware components developed by OpenTV®, Windows® operating systems, Linux operation systems, Mac OS®, Android® operating systems, and any and all combinations thereof.

(67) System interface 210 may be configured to enable communications between components of multimedia unit 200. In one example, system interface 210 comprises structures that enable data to be transferred from one peer device to another peer device or to a storage medium. For example, system interface 210 may include a chipset supporting Accelerated Graphics Port (AGP) based protocols, Peripheral Component Interconnect (PCI) bus based protocols, such as, for example, the PCI Express (PCIe) bus specification, which is maintained by the Peripheral Component Interconnect Special Interest Group, or any other form of structure that may be used to interconnect peer devices.

(68) Storage device(s) 220 represent memory of multimedia unit 200 that may be configured to store relatively larger amounts of information for relatively longer periods of time than system memory 204. For example, in the example where multimedia unit 200 is included as part of a digital video recorder, storage device(s) 220 may include a hard disk drive configured to store numerous video files. Similar to system memory 204, storage device(s) 220 may also include one or more non-transitory or tangible computer-readable storage media. Storage device(s) 220 may include internal and/or external memory devices and in some examples may include volatile and non-volatile storage elements.

(69) User interface(s) 222 may include devices configured to receive input from a user during operation of multimedia unit 200. For example, user interface(s) 222 may include buttons and switches, motion sensors (e.g., accelerometers), touch-sensitive sensors, a track pad, a mouse, a keyboard, a microphone, a video camera, or any other type of device configured to receive user input. User interface(s) 222 may be integrated into multimedia unit 200. For example, in the case where multimedia unit 200 includes a television, user interface(s) 222 may include push buttons located on the television. Further, user interface(s) 222 may be integrated into devices external to multimedia unit 200. For example, user interface(s) 222 may be integrated into a companion device, such as, for example, companion device 300 and companion device 400 described in detail below. In some examples, an external device including user interfaces(s) 222 may be operatively coupled to multimedia unit 200 using a standardized communication protocol, such as for example, Universal Serial Bus protocol (USB), Bluetooth, ZigBee or a proprietary communications protocol, such as, for example, a proprietary infrared communications protocol. It should be noted that techniques described herein may be generally applicable regardless of the type of device including a user interface and regardless of the manner in which the device communicates with multimedia unit 200. As described in detail below, user interface(s) 222 may include a display configured to display the graphical users interfaces described herein. For example, in the case where multimedia unit 200 includes a television, a companion device (e.g., a smart phone or a dedicated remote controller) in communication with a television may include a user interface including a touch-sensitive display presenting a graphical user interface described herein. Further, as described in detail below, a user may provide commands to multimedia unit 200 by activating portions of a touch-sensitive display.

(70) Referring again to FIG. 4, multimedia unit 200 is configured to send and receive data via a local network, such as, for example, television network 106 described above and send and receive data via a public network, such as, for example, public network 108. This network is used also to transmit and receive data from the mobile device. A communications network may be described based on a model including layers that define communication properties, such as, for example, physical signaling, addressing, channel access control, packet properties, and data processing in a communications system. In the example illustrated in FIG. 4, modem 212, transport module 214, and AV demux 216 may be configured to perform lower layer processing associated with television network 106 and network interface 218 may be configured to perform lower layer processing associated with public network 108.

(71) Although embodiments of the present disclosure have been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader scope of these embodiments. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense. The accompanying drawings that form a part hereof, show by way of illustration, and not of limitation, specific embodiments in which the subject matter may be practiced. The embodiments illustrated are described in sufficient detail to enable those skilled in the art to practice the teachings disclosed herein. Other embodiments may be utilized and derived there from, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. This Detailed Description, therefore, is not to be taken in a limiting sense, and the scope of various embodiments is defined only by the appended claims, along with the full range of equivalents to which such claims are entitled.

(72) Such embodiments of the inventive subject matter may be referred to herein, individually and/or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single inventive concept if more than one is in fact disclosed. Thus, although specific embodiments have been illustrated and described herein, it should be appreciated that any arrangement calculated to achieve the same purpose may be substituted for the specific embodiments shown. This disclosure is intended to cover any and all adaptations or variations of various embodiments. Combinations of the above embodiments, and other embodiments not specifically described herein, will be apparent to those of skill in the art upon reviewing the above description.