TECHNICAL FIELD
[0001] The present invention relates generally to Digital Rights Management (DRM), and more
particularly to the generation of Control Words for DRM protected digital content.
BACKGROUND
[0002] This section is intended to introduce the reader to various aspects of art, which
may be related to various aspects of the present invention that are described and/or
claimed below. This discussion is believed to be helpful in providing the reader with
background information to facilitate a better understanding of the various aspects
of the present invention. Accordingly, it should be understood that these statements
are to be read in this light, and not as admissions of prior art.
[0003] DRM solution are often considered as user unfriendly, a common complaint being that
DRMs prohibit fair use as defined by the Digital Millennium Copyright Act, 1998 [see
http://www.copyright.gov/legislation/dmca.pdf]. Among the many things considered as
part of fair use is the right of an end user to cite or use an excerpt of a work,
i.e. content item, for criticism, scholarship and so on. This is however not possible
with the prior art DRM solutions.
[0004] There is thus a need for a DRM solution that can:
- Protect a content item against illegal or unauthorized use.
- Allow an end user to extract a portion of the content item and redistribute the portion
to other end users who may then access the portion, regardless of whether or not these
end users have access rights to the entire content item.
- Make it difficult for colluding end users to distribute an entire work freely by concatenating
a set of excerpts of the work.
[0005] This may advantageously be achieved by splitting the content into a plurality of
blocks, each of which is scrambled using a control word that is generated from a master
control word for the content. One or more blocks may then be sent by a first end user
to second end user, the blocks being accompanied by a license that comprises the generated
control words, not the master control word. With a suitable algorithm for the generation
of control words, it can be ascertained that the second end user is not able to access
other blocks of the content.
[0006] The prior art provides a number of solutions for control word (encryption key) generation.
[0007] For example,
US 2006/0034453 describes a system in which a block is encrypted using a hash value, after which
the encrypted block and the hash value are hashed to generate the hash value used
to encrypt the following block. Further,
EP 2197145 describes a key generation system in which a key is obtained by combining a block
with a key used for the previous block. A problem with these systems is that it is
thus not possible to limit the decryption in one 'direction'.
[0009] The present invention provides an alternative solution, that uses two or more secrets
for which the derivation process are done in the opposite ways which makes it possible
to limit derivation of the decryption keys in several opposite 'directions'.
SUMMARY OF INVENTION
[0010] In a first aspect, the invention is directed to a device for generating n control
words for encryption or decryption of n contiguous units of a content item, wherein
n is an integer. The device comprises a processor adapted to: obtain a first key K
start and a second key K
end; generate a first ordered set of n subkeys by iteratively applying a first one-way
function to the first key K
start and a second ordered set of n subkeys by iteratively applying a second one-way function
to the second key K
end; generate n control words by iteratively using a combination operation to generate
control word
i from subkey
i from the first ordered set of n subkeys and subkey
n-i-1 from the second ordered set of n subkeys, wherein
i is between 0 and n-1, inclusive; and output the n generated control words.
[0011] In a first preferred embodiment, at least one of the first one-way function and the
second one-way function is a hash function.
[0012] In a second preferred embodiment, at least one of the first one-way function and
the second one-way function is public key encryption.
[0013] In a third preferred embodiment, the combination operation is XOR.
[0014] In a fourth preferred embodiment, the combination operation is concatenation or public
key encryption or symmetric key encryption.
[0015] In a fifth preferred embodiment, the processor is further adapted to separate the
content item into a plurality of parts, each part comprising a plurality of units;
and to generate control words independently for each part.
[0016] In a sixth preferred embodiment, the processor is further adapted to generate a license
for the content item of which unit
i has been encrypted using generated control word
i, the license comprising the first key K
start, the second key K
end and the integer n; and transmit the license to a receiver. It is advantageous that
the content item is an excerpt of a longer content item, the longer content item being
encrypted using control words generated from a third key and a fourth key, and that
the processor is further adapted to generate the first key K
start by iterative application of the first one-way function to the third key; and generate
the second key K
end by iterative application of the second one-way function to the fourth key.
[0017] In a seventh preferred embodiment, the content item is encrypted and the processor
is further adapted to decrypt the encrypted content item using the generated control
words.
[0018] In a second aspect, the invention is directed to a method for generating n control
words for encryption or decryption of n contiguous units of a content item, wherein
n is an integer. A device obtains a first key K
start and a second key K
end; generates a first ordered set of n subkeys by iteratively applying a first one-way
function to the first key K
start and a second ordered set of n subkeys by iteratively applying a second one-way function
to the second key K
end; generates n control words by iteratively using a combination operation to generate
control word
i from subkey
i from the first ordered set of n subkeys and subkey
n-i-1 from the second ordered set of n subkeys, wherein
i is between 0 and n-1; and outputs the n generated control words.
[0019] In a first preferred embodiment, at least one of the first one-way function and the
second one-way function is a hash function.
[0020] In a second preferred embodiment, the combination operation is XOR.
[0021] In a third preferred embodiment, the method further comprises the step of separating
the content item into a plurality of parts, each part comprising a plurality of units;
and wherein the steps of the method of the second aspect are performed independently
for each part.
[0022] In a third aspect, the invention is directed to a method of generating a content
license for a content item being encrypted using control words generated by the method
of the second aspect. A device generates a license for the content item of which unit
i has been encrypted using generated control word
i, the license comprising the first key K
start, the second key K
end and the integer n; and transmits the license to a receiver.
[0023] In a first preferred embodiment, the content item is an excerpt of a longer content
item, the longer content item being encrypted using control words generated from a
third key and a fourth key, and wherein the method further comprises the steps of
generating the first key K
start by iterative application of the first one-way function to the third key; and generating
the second key Kend by iterative application of the second one-way function to the
fourth key.
BRIEF DESCRIPTION OF DRAWINGS
[0024] Preferred features of the present invention will now be described, by way of non-limiting
example, with reference to the accompanying drawings, in which
Figure 1 illustrates an exemplary field of use of a preferred embodiment of the present
invention;
Figure 2 illustrates a scrambling device according to a preferred embodiment of the
present invention;
Figure 3 illustrates scrambling key generation according to a first preferred embodiment
of the present invention; and
Figure 4 illustrates excerpt generation, transmission and reception according to the
first preferred embodiment of the present invention.
DESCRIPTION OF EMBODIMENTS
[0025] A main idea of the present invention is to generate at least one scrambling key (i.e.
encryption and decryption key) that can be delivered to a receiver, while making sure
that the receiver is not able to use the at least one scrambling key to generate further
scrambling keys.
[0026] An exemplary field of use is illustrated in Figure 1. An item of content 100 is divided
into a plurality of blocks 110. Each block (U
j) 110 is identified by a block index (j), which advantageously, but not necessarily,
is sequential. The content 100 thus comprises the set of blocks {U
0, U
1, U
2,..., U
n}.
[0027] Scrambling (also called encryption) of the content 100 is described with further
reference to Figure 2, which illustrates a scrambling device 200 that comprises a
key generator 210 and a scrambler 220. The scrambling device 200 may be implemented
as one or more processors. The skilled person will appreciate that encryption and
decryption are essentially the same for symmetric encryption algorithms; they use
the same key and the same algorithm for processing input data to generate output data.
[0028] To scramble the content 100, its blocks 110 are scrambled separately. The key generator
210 generates a block CW for each block 110 to scramble. The block indices that the
key generator 210 works from may be generated internally (if the indices are sequential)
up to a final block index obtained for example from the content 110; the block indices
may also be provided by a control circuit (not shown) or by the scrambler after inspection
of the block to scramble. The generated block control word CW
j is delivered to the scrambler 220, possibly along with the corresponding block index,
but the scrambler 220 may also receive the block index from the control circuit. A
further possibility is for the key generator and the scrambler to be synchronised,
in which case a block CW could be delivered when needed by the scrambler. The scrambler
220 receives a block U
j and uses the block CW to scramble the block U
j and outputs a protected block PU
j.
[0029] This is also illustrated in Figure 1, wherein the blocks U
j of the content 110 in the upper row are scrambled as protected blocks PU
j 130 of a protected content 120 in the lower row.
[0030] The skilled person will appreciate that there is no structural difference between
a scrambler and a descrambler when the scrambling algorithm is symmetrical. Indeed,
both scrambler and descrambler take input data and use essentially the same algorithm
with the same key to produce output data; the only difference is that one takes cleartext
to produce ciphertext while the other does the opposite. Figure 2 can thus also illustrate,
mutatis mutandis, a descrambling device 200.
First preferred embodiment
[0031] Figure 3 illustrates scrambling key generation and Figure 4 illustrates excerpt generation,
transmission and reception according to a first preferred embodiment of the present
invention. Two, preferably random, master keys K
start and K
end are generated for the content. If the number of blocks to scramble is n, then each
master key is then processed by a one-way function
h (advantageously a hash function, but possibly other functions such as encryption
using the public key of a public key encryption algorithm) at least n-1 times, resulting
in n sub-keys generated from each master key: K
s1-K
sn and K
e1-K
en. For illustration, it may be said that the end key is turned around so that K
e1 finds itself at the end and K
en at the beginning.
[0032] Then, for each block, the key K
si is combined with the key K
e(n-i) to generate the block CW. The combination operation can be practically any arithmetic
operation such as public key or symmetric key encryption, any binary operation, a
concatenation operation, provided that the length of the sub-key corresponds to the
key length required by the scrambling algorithm. The preferred combination is exclusive-or
(XOR).
[0033] In mathematical notation, the first block has index 0 and the last block index n-1.
Each sub-key CW is generated from the two master keys by the following formula:

where
h is the one-way function.
hm denotes
m iterations of the one-way function.
[0034] The scrambled content may then be transmitted to an end user that may also receive
(not necessarily together with the content) a general content license that comprises
the master keys K
Start and K
End and is encrypted with a user key Ku that preferably is specific to the user; it is
advantageous that the user key is the user's public key in an asymmetric encryption
system.
[0035] To descramble the content, the user first decrypts the licence using its user key
Ku (or its corresponding private key) and then uses the master keys K
Start and K
End to generate the sub-keys that are used to descramble the content. The sub-keys are
generated using the formula of Equation 1.
[0036] When a first user wishes to share an excerpt,
m+1 consecutive blocks from block
x to block
x+m, of the content with a second user, the first user selects these consecutive blocks,
step S41. The first user device then generates, step S42, two derivative keys K'
Start and K'
End:
- K'Start = hx(KStart),
- K'End = hn-x-m(KEnd).
[0037] It will be appreciated that K'
Start is the scrambling key for the first block of the excerpt and that K'
End is the scrambling key for the last block of the excerpt. The two derivative keys
are then embedded in an excerpt license that is encrypted using an encryption key
(symmetric or, preferably, asymmetric) for the second user, step S43. The first user
device then sends the excerpt and the excerpt license to the second user, step S44.
[0038] Upon reception of the excerpt and the excerpt license, step S45, the second user
device decrypts the excerpt license (using a corresponding key), step S46. The derivative
keys are then hashed
m times and combined to generate, step 47, the sub-keys for the blocks of the excerpt
using the formula similar to that of Equation 1 (substituting K'
Start for K
Start, K'
End for K
End,
x for
i, and
n-x-m for
n-i).
[0039] Put another way, each sub-key is computed as follows:

[0040] The excerpt may then be descrambled using the sub-keys, step S48, and rendered.
[0041] An advantage of the key generation of the present invention is that an excerpt licence
contains only two keys, regardless of the length of the excerpt. From these two (derivative)
keys, all the sub-keys for the block within the excerpt can be easily computed.
[0042] Moreover, knowledge of the sub-keys within the shared portion does not permit computation
of sub-keys outside the excerpt. To compute these 'external' sub-keys, it is necessary
to calculate the sub-keys for blocks preceding the index
x with knowledge of K'
Start as well as the sub-keys for blocks following the index
x+m with knowledge of K'
end, but this requires inverting the one-way function
h which is computationally infeasible.
[0043] In detail, the first preferred embodiment takes an unencrypted content stream as
input, the content stream being a Moving Pictures Experts Group 2 (MPEG2) content
stream. MPEG2 is a well known encoding and compression standard for digital broadcast
content and described in ISO/IEC 13818-1, Information technology -- Generic coding
of moving pictures and associated audio information--Part 1: Systems, 2007.
[0044] An MPEG2 stream comprises Packetized Elementary Streams (PES), which include fixed
or variable sized frames. Each PES packet is broken into fixed-sized (188 bytes) transport
packet known as MPEG2 Transport Streams (TS) that contains a combination of audio
and video data. When protecting MPEG2 content stream, each TS packet is encrypted
with a control word (
CW). The
CW changes every period of 10 seconds (i.e. a crypto-period lasts 10 s). In a set-top-box
architecture, a security module of the set-top box receives Entitlement Control Messages
(ECMs) that comprise the encrypted
CWs. The security module delivers the correct
CW (ODD or EVEN) to a descrambler module, which then applies the ODD/EVEN
CW to the scrambled TS at the right time and outputs descrambled TS packet.
[0045] Each content provider has a specific secret or public information
lp and each user has received from a centre a certified 1024-bit RSA key pair (
Kpub, Kpriv). The content provider key
Kp is known by the centre; the user private key
Kpriva as well as
lp are securely stored in the user's set-top-box.
[0046] Further in the first preferred embodiment:
- The one-way function h is the SHA1 hashing algorithm.
- The TS scrambling algorithm is AES-128 in CBC mode. See NIST, FIPS PUB 197, "Advanced
Encryption Standard (AES)," November 2001 http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf;
and S. Frankel, R. Glenn and S. Kelly, "The AES-CBC Cipher Algorithm and Its Use with
IPsec," RFC 3602, Internet Soc., Sept. 2003; http://rfc.sunsite.dk/rfc/rfc3602.html.
- The licence encryption algorithm is RSA Optimal Asymmetric Encryption Padding (OAEP)
with 1024-bit key length. For more details, see: RFC 3560, July 2003, R. Housley,
Use of the RSAES-OAEP Key Transport Algorithm in the Cryptographic Message Syntax
(CMS); M. Bellare and P. Rogaway: Optimal Asymmetric Encryption - How to Encrypt with RSA.
In: A. De Santis (ed.) EUROCRYPT 1994. LNCS, vol. 950, pp. 92-111. Springer, Heidelberg
(1995); and RSA Laboratories, PKCS #1 v.2.1: RSA Cryptography Standard, June 2002.
[0047] As an illustrative example, the content is a two-hour movie. This means that the
content is scrambled using (2h)*(60min/h)*(60s/min)*(1 CW/10s) = 720 CWs, CW
0-CW
719.
[0048] Further,
CW' and
CW" are the two 128-bit master keys generated at random by the centre. Each
CWi is generated from the two master keys using the following formula (adapted from Equation
1):

[0049] TS packets within a crypto-period
i are scrambled
TS_ENC = AES-128-ENC (CWi, TS). Given that the output of SHA1 is 160 bits,
CWi is 160 also bits. In order to fit the AES key size (128 bits), each
CWi is truncated to 128 bits, for example by discarding the 32 most significant bits
or the 32 least significant bits.
[0050] The master keys
CW' and
CW" are embedded in one ECM = {
CW', CW"}, which also comprises a 128-bit provider identifier information PID. The PID is
helpful for knowing which provider information
lp to use with which content. The ECM also comprises the total number of
CWs necessary (this 2-byte field is helpful for computing the hash indices). Before distributing
the content to the user, the 400-bit ECM = {
CW',
CW", CW_count = 720,
PID} is encrypted with the user public key
Kpuba, i.e. ECM_ENC =
RSA-1024-ENC (Kpuba, ECM).
[0051] To descramble the content, the security module decrypts the ECM using private user
key
Kpriva. Then, using the PID information, the security module knows which provider information
lp to use. The security module then generates, using the same CW generation algorithm
as the centre, the control word
CWi for the scrambled TS packets composing the protected multimedia content from the
master keys
CW' and
CW", the provider information
lp and
CW_count.
[0052] To keep the CW calculations low, i.e. to avoid generating the same values several
times, it is advantageous to generate the
CWs as follows:
- 1- Upon reception of the master control words CW' and CW", generate the 'second parts' of all the control words from CW"

where i starts at CW_count-1 = 619 and is decremented until reaching 0.
- 2- Store these second parts in a list L in a memory together with the 'first part'
of the first CW, CW' = CW'0

(This requires about 12kb (721*16 = 11586 bytes) of memory for a 2-hour movie)
- 3- To compute the first CW, calculate CW0 = CW'0 ⊕ CW"0, where CW'0 and CW"0 were retrieved from L.
- 4- Update CW'0 in the list L by the first part of the next control words, i.e. CW'0 ← h(Ip∥CW') = CW1.
- 5- For each scrambled TS packet, repeat steps 3-4 until the final CW is generated,
CW619 = CW'619 ⊕ CW"619.
[0053] The skilled person will appreciate that this method requires some memory space but
saves many computation steps.
[0054] Assuming that the first user wishes to share a 10-minute excerpt of the content with
the second user, the excerpt being located at 60 minutes from the start of the movie
start. The 10-minute excerpt has been scrambled using 6*10 = 60
CWs. The starting and ending
CW of the excerpt are, respectively,
CW360 and
CW419.
[0055] For the excerpt, the first user's security module generates two excerpt keys
CW_e' and
CW_e" from the master keys
CW' and
CW" as follows:
- CW_e'= h360(Ip∥CW'),
- CW_e"= h619-419(Ip∥CW") = h300(lp∥CW").
[0056] The keys
CW_e' and
CW_e" are embedded in an excerpt ECM, EECM - {
CW_e', CW_e", CW_count=60, PID}. Before distributing the scrambled excerpt to the second user, the security module
encrypts the EECM with the second user's public key
Kpubb, i.e. EECM_ENC =
RSA-1024-ENC (Kpubb, EECM).
[0057] Upon reception of the scrambled excerpt, the second user's security module decrypts
the 1024-bit EECM_ENC using the second user's private key
Kprivb. Then each control word
CWj for the TS packets in crypto-period
j within the portion is calculated as follows:

[0058] Using these control words, the scrambled excerpt may then be descrambled and rendered
to the second user.
[0059] The skilled person will appreciate that in prior-art systems, the CWs used for scrambling/descrambling
were generated at random and were independent one another. A security module had to
receive and decrypt an ECM for each TS packet, which makes several hundreds of ECMs
to process for a protected content (at least 720 ECMs for a 2-hour movie). According
to the first embodiment of the present invention however, the security module needs
only a single ECM or EECM per content, as it is possible to use that ECM/EECM to generate
the CWs necessary for content descrambling. It will thus be appreciated that the first
embodiment of the present invention can save transmission bandwidth.
Second preferred embodiment
[0060] While the solution provided by the first preferred embodiment is compact, it is however
not resistant to collusion attacks. An attacker that has access to two non-consecutive
excerpts of a content may generate control words for all the packets that lie between
the two excerpts; if the excerpts correspond to the beginning and the end of the content,
then all the control words for the content may be generated.
[0061] The second preferred embodiment provides resistance to collusion attacks by separating
the content into a plurality of logical parts. Each part comprises less than the entire
content and more than a single block. As an illustrative example, each part is 10
minutes (i.e. 60 blocks) long, but it may be shorter or longer.
[0062] The control words for each part are generated independently of the control words
for other parts, as if each part were an entire content item.
[0063] In other words (continuing the movie example), for every 10 minutes of the movie
content, the centre generates two 128-bit master keys
CW'[k] and
CW"[k], k=0..11 (which represents 24 master keys for a 2-hour movie). Each
CWi[k] is generated from the master keys using the following formula:

[0064] It can be seen that this gives rise to two types of periods: a lower crypto-period
of 10 seconds where the CW changes (index
i in the formula changes while
k remains fixed) and a higher crypto-period of 10 minutes where master keys
CW' and
CW" changes (index
k in the formula changes;
i is reset to 0 at the beginning of the period).
[0065] TS packets within the crypto-periods
{i, k} are scrambled as
TS_ENC = AES-128-ENC (CWi[k], TS).
[0066] In this case, instead of having one unique ECM for the whole content, there are 12
ECMs that each contains a different pair of master keys; ECM
k =
{CW'[k], CW"[k], CW_count=60, PID}. It should be noted that it also is possible for the parts to be of different lengths,
as long as
CW_count is adjusted accordingly.
[0067] If a user can only share excerpts that are shorter than 10 minutes (and do not straddle
part boundaries), it is only necessary to transmit one EECM. Assume that the first
user wishes to share a 5-minute portion of the content with the second user. The portion
is located at 60 minutes from the start of the movie. The 5-minutes excerpt is protected
with 6*5 = 30
CWs derived from the master keys {
CW'[6], CW"[6]} (as the excerpt is located in 'higher' crypto-period 7). The starting and ending
CW of the excerpt are respectively
CW0[6] and
CW29[6].
[0068] The security module generates two keys
CW_p' and
CW_p" from the master keys
CW'[6] and
CW"[6] as follows:
- CW_p' = h0(lp∥CW'[6]) = CW0[6] = CW'[6],
- CW_p" = h59-29(Ip∥CW"[6]) = h30(Ip∥CW"[6]).
[0069] The keys
CW_p' and
CW_p" are then embedded in an EECM = {
CW_p', CW_p", CW_count=30, PID}. Before distribution of the protected excerpt to the second user, the EECM is encrypted
using the second user's public key
Kpubb , i.e. EECM_ENC =
RSA-1024-ENC (Kpubb, EECM).
[0070] Upon reception of the protected excerpt, the second user's security module decrypts
the 1024-bit EECM_ENC using the second user's private key
Kprivb and then generates the control words
CWj[6] for the TS packets in the crypto-periods {
j, 6} as follows:

[0071] With excerpt protected using the second preferred embodiment of the present invention,
an attacker that has access to two non-consecutives excerpts of the content is not
be able to reconstruct control words for TS packets located between the two excerpts,
unless the excerpts belongs to the same master key crypto-period.
[0072] The invention also relates to a computer program product, such as a DVD or a CD-ROM,
that stores instructions, which, when executed by a processor, causes the processor
to perform the method of the present invention.
[0073] It will be appreciated that the present invention can enable a user to share a portion
of a protected content, without making the entire content available to the recipient.
The solution of the present invention can be efficient in terms of computational costs,
bandwidth-efficient (less data is transferred), and, in the second embodiment, resistant
to collusion attacks, while it at the same time can be implemented with practically
any existing copy protection system.
[0074] Each feature disclosed in the description and (where appropriate) the claims and
drawings may be provided independently or in any appropriate combination. Reference
numerals appearing in the claims are by way of illustration only and shall have no
limiting effect on the scope of the claims.
1. A device (200) for generating n control words for encryption or decryption of n contiguous
units of a content item, wherein n is an integer, the device (200) comprising a processor
adapted to:
- obtain a first key Kstart and a second key Kend;
- generate a first ordered set of n subkeys K10 -K1n-1 by iteratively applying a first one-way function to the first key Kstart and a second ordered set of n subkeys K20 -K2n-1 by iteratively applying a second one-way function to the second key Kend;
- generate n control words by iteratively using a combination operation to generate
control word i from subkey K1i from the first ordered set of n subkeys and subkey K2n-i-1 from the second ordered set of n subkeys, wherein 0 ≤ i ≤ n-1; and
- output the n generated control words.
2. The device of claim 1, wherein at least one of the first one-way function and the
second one-way function is a hash function.
3. The device of claim 1 or 2, wherein at least one of the first one-way function and
the second one-way function is public key encryption.
4. The device of claim 1, wherein the combination operation is XOR.
5. The device of claim 1, wherein the combination operation is concatenation or public
key encryption or symmetric key encryption.
6. The device of claim 1, wherein the processor is further adapted to separate the content
item into a plurality of parts, each part comprising a plurality of units; and to
generate control words independently for each part.
7. The device of claim 1, wherein the processor is further adapted to:
- generate a license for the content item of which unit i has been encrypted using generated control word i, the license comprising the first key Kstart, the second key Kend and the integer n; and
- transmit the license to a receiver.
8. The device of claim 7, wherein the content item is an excerpt of a longer content
item, the longer content item being encrypted using control words generated from a
third key and a fourth key, and wherein the processor is further adapted to:
- generate the first key Kstart by iterative application of the first one-way function to the third key; and
- generate the second key Kend by iterative application of the second one-way function to the fourth key.
9. The device of claim 1, wherein the content item is encrypted and the processor is
further adapted to decrypt the encrypted content item using the generated control
words.
10. A method for generating n control words for encryption or decryption of n contiguous
units of a content item, wherein n is an integer, the method comprising, at a device
(200), the steps of:
- obtaining a first key Kstart and a second key Kend;
- generating a first ordered set of n subkeys K10-K1n-1 by iteratively applying a first one-way function to the first key Kstart and a second ordered set of n subkeys K20-K2n-1 by iteratively applying a second one-way function to the second key Kend;
- generating n control words by iteratively using a combination operation to generate
control word i from subkey K1i from the first ordered set of n subkeys and subkey K2n-i-1 from the second ordered set of n subkeys, wherein 0 ≤ i ≤ n-1; and
- outputting the n generated control words.
11. The method of claim 10, wherein at least one of the first one-way function and the
second one-way function is a hash function.
12. The method of claim 10, wherein the combination operation is XOR.
13. The method of claim 1, further comprising the step of separating the content item
into a plurality of parts, each part comprising a plurality of units; and wherein
the steps of claim 10 are performed independently for each part.
14. A method of generating a content license for a content item being encrypted using
control words generated by the method of claim 10, the method comprising, at a device
(200), the steps of:
- generating (S43) a license for the content item of which unit i has been encrypted using generated control word i, the license comprising the first key Kstart, the second key Kend and the integer n; and
- transmitting (S44) the license to a receiver.
15. The method of claim 14, wherein the content item is an excerpt of a longer content
item, the longer content item being encrypted using control words generated from a
third key and a fourth key, and wherein the method further comprises the steps of:
- generating the first key Kstart by iterative application of the first one-way function to the third key; and
- generating the second key Kend by iterative application of the second one-way function to the fourth key.