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
- Nicolas Fischer (Versoix, CH)
- Brecht WYSEUR (Penthalaz, CH)
- Jean-Bernard FISCHER (Rochejean, FR)
- Marco Macchetti (Casnate con Bernate, IT)
Cpc classification
H04L9/0844
ELECTRICITY
H04L2209/24
ELECTRICITY
International classification
H04L9/08
ELECTRICITY
H04N21/254
ELECTRICITY
H04N21/426
ELECTRICITY
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)
(3)
(4)
(5)
WAYS OF REALISING THE INVENTION
(6)
(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.
(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.
(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.
(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.
(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
(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.
(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.
(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
(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
(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.
(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.
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.
(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.
(49) By replacing KO.sub.1 by g.sub.1(N; O.sub.1)=N.sup.H(O.sup.
g.sub.2(KO.sub.1;U.sub.1)=KO.sub.1.sup.H(U.sup.
(50) In a similar way,
f.sub.2(KU.sub.1;O.sub.1)=KU.sub.1.sup.H(O.sup.
(51) By replacing KU.sub.1 by f.sub.1(N; U.sub.1)=N.sup.H(U.sup.
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.
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
(57)
(58) As illustrated in
(59) As illustrated in
(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
(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
(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.