The invention relates to a method of controlling access to content, said content being encrypted by content keys stored in a key-locker encrypted by a key-locker key (KLK). The invention relates further to a corresponding access control system, to a cryptographic unit, a computer and a device for use in such an access control system. Still further, the invention relates to a computer program.
The internet is widely regarded to become one of the most important means for distributing digital music. Despite the many advantages, such as greatly reduced distribution costs and availability of a much larger catalogue, there are still a number of disadvantages which need to be solved. The lack of copy protection is a major issue preventing the major record labels to enter this area. It is intended to start a special (subscription based) service for downloading protected music. A special PC application is issued to download encrypted files, such as MP3 files, and store them onto a recordable information carrier, such as a CD-R disc using a common PC-based CD or DVD recorder. The encrypted files can be played on the PC as well as on common or slightly adapted devices, e.g. portable MP3-CD players. The keys of the encrypted files are stored in a so-called key locker, which is an area on the disc that is set aside for that purpose. The key locker itself is encrypted with a key, the so-called key-locker key that is derived from a system-wide secret and, usually, a unique disc identifier. It should be noted that the use of a global secret is required in order to ensure that a disc can be played on any device adapted for this use.
Since the above described PC application can play the encrypted files, it has access to the key-locker key. Therefore, it has also access to the global secret. From a security point of view this is a weakness, because it is well-known that PC software is relatively easily hacked. Thus, it is expected that the global secret will be compromised on a short time scale. Replacing a PC application with an updated one to repair a security breach is relatively easy. However, replacing a hardware device such as a portable MP3-CD player is impossible.
It is therefore an object of the present invention to provide a method, which allows recovery from a security breach by replacing the PC application without having to change the hardware of the device. It is a further object of the invention to provide an access control system and devices for use in such a system as well as a computer program.
This object is achieved by a method of controlling access to content as claimed in claim 1, said method comprising the steps of:
The invention is based on the idea that the device should make use of different secrets than the computer. Since it is relatively easy to hack a computer, it must be prevented that the keys used by the device are lost or compromised when the computer is hacked. This is avoided according to the present invention by generating cryptographic values of a string defined by a cryptographic unit, e.g. a trusted third party such as the manufacturer of devices, the service provider or the content provider, using access keys also defined by said cryptographic unit and by only providing said cryptographic values to the computer but not said access keys and said string. These access keys are only provided to the device, which can not be hacked easily since all functions are usually embedded in hardware therein. The access keys, the string and the cryptographic functions for generating the cryptographic values are chosen such that it is easy to compute the key-locker key if the string is known, but that it is difficult or almost impossible to compute the access keys if the string is unknown even if the cryptographic values are known.
In this way, the string plays the role of a trapdoor. When the computer has been broken but the access keys of the device are still unknown an update of the access control system is possible by replacing the PC application running on the computer or by providing the computer with new cryptographic values generated by use of a differently chosen string. In this way, it is not necessary to update the device with new keys, but it is merely required to provide the device with one of said cryptographic values which can be done via the computer.
It should be noted that the term encrypting does include any ways of encryption such as the use of private and public key pairs or of (collusion-resistant) one-way hash functions.
Preferred embodiments of the invention are defined in the dependent claims. An access control system, preferably for implementing the method as claimed in claim 1, comprising a cryptographic unit, a computer and a device is defined in claim 9. The invention relates further to a cryptographic unit, to a computer and to a device for use in such an access control system as defined in claims 10 to 12. A computer program according to the invention comprising computer program code means for causing a computer to carry out the steps of the method as claimed in claim 1 when said computer program is run on one or more elements of an access control system as claimed in claim 9 is defined in claim 13.
According to a preferred embodiment the content and the key-locker are stored on an information carrier, in particular an optical disc such as a CD or DVD, and the key-locker key is derived from a unique carrier identifier of said information carrier and one of said cryptographic values. Preferably, the cryptographic value used for calculating the key-locker key is not stored on or provided to the device, but said cryptographic value is generated by the device by use of the at least two access keys and the other cryptographic value.
It is further preferred, based on the previous embodiment, that the carrier identifier is read from the information carrier by said computer when accessing said information carrier and that the carrier identifier is either transmitted to the device from the computer or is read by the device from the information carrier when accessing it. Thus it is possible, that the device either directly accesses the information carrier, e.g. plays a disc on which content downloaded from the internet is stored, or that only the computer accesses the information carrier, reads the unique carrier identifier and transmits the content together with the carrier identifier and the required cryptographic value to the device which then plays the content at any time later after reconstructing the key-locker key required for obtaining the content keys for accessing the content.
In a further aspect of the invention the content comprises data files, such as MP3 files, which are each encrypted by different content keys, said content keys being stored in said key-locker. Further, said data files are transmitted from the computer to the device together with the cryptographic value. It should be noted that “content” does not only mean audio data, but may also include any other kind of data such as image, video or software data that may be played back or used on any device. Similarly, the term “device” is not restricted to an audio playback device such as a portable MP3-CD player but may also include any other device for playing back or using any kind of data, such as a video camera, a photo camera, a handheld computer or a portable game device.
Preferably, the key-locker key is calculated by the device using the access keys and the received cryptographic value. In a first step the string defined by the cryptographic unit is reconstructed using the received cryptographic value, and, preferably, one of said access keys. In a second step the result, i.e. the reconstructed string is encrypted using the second access key to obtain the other cryptographic value which is required for calculating the key-locker key. It is thus not necessary that the device receives all the cryptographic values provided to the computer, but one of said cryptographic values is sufficient.
According to another embodiment of the invention the cryptographic unit defines a first, variable string and a second, fixed string which is also stored on the device. One of the at least two cryptographic values is then obtained by encrypting only the first string while a second cryptographic value is obtained by encrypting a combination of said first and second string, e.g. the result of a modulo-2-addition of said two strings. This even more improves security of the overall access control system since, even if the cryptographic values get lost by a hack of the computer, less information on the access keys and the first, variable string gets lost. Thus, the use of the extra second string makes the access control system more secure against adversaries having more ciphertext at their disposal.
In order to even more improve security of the access control system in a further embodiment the second string comprises a first, variable string portion and a second, fixed string portion. In this embodiment the first string portion is transmitted to the device either directly from the cryptographic unit or via the computer, while the second string portion is stored on the device already from the beginning together with the access keys. Thus, at an update the cryptographic unit only chooses a new first string and a new first string portion of the second string. This leads to a new second string and consequently to new cryptographic keys. The fact that the second string can also be changed each time the computer or the application running thereon is updated, introduces more randomness in the plain texts so that therefore less information can be obtained from the cryptographic values.
As already mentioned, it is preferred that the cryptographic values stored on the computer are updated when they have been tampered with. Alternatively or in addition, they may also be updated regularly to improve security of the access control system.
The invention will now be explained in more detail with reference to the drawings, in which:
The access control system according to the present invention as shown in
The cryptographic unit 1 chooses randomly a string xεZ2m and two access keys K1, K2εZ2k at random. The computer 2 and the PC application running thereon then carry the following data: a secret cryptographic value hK1(x)εZ21 with 1≦m and a preferably secret cryptographic value EK2(x)εZ2m. The function h can be a one-way function or the encryption function E, i.e. they are preferably different. Both cryptographic values hK1(x) and EK2(x) are generated by the cryptographic unit 1 and transmitted to the computer 2 for storage thereon.
The device 3 instead does not receive the cryptographic values hK1(x) and EK2(x), but the keys K1 and K2 used for generating the cryptographic values hK1(X), EK2(x), i.e. the access keys K1, K2 are the keys of the encryption functions hK1 and EK2 used for encrypting the defined string x resulting in the cryptographic values hK1(x) and EK2(x).
The key-locker key KLK is calculated by the computer 2 as: KLK=f (A, hK1 (x)). The function f is chosen such that when the data A, KLK and f itself are known, it is still difficult to derive the cryptographic value hK1 (x). It is therefore recommended to choose a one-way or encryption function for f.
After downloading data from the internet this data can be either stored on the disc 4 and/or transmitted, e.g. by disc 4, to the device 3 for use at any place, e.g. MP3 files containing music can be stored on a portable MP3 player. In order to access said files the device 3 needs, at first to access the key-locker to get content keys F1, F2 etc. for decrypting these files. In order to access the key-locker 5 a key-locker key KLK is required which can be computed by the device as follows: KLK=f(A,hK1(DK2(EK2(x)))). Therein DK2 is the decryption function corresponding to the encryption function EK2. By decrypting the cryptographic value EK2(x) the string x will be obtained on which the encryption function hK1 will then be applied. The function f is identical to the function f applied by the computer 2. The necessary data set A will be either received from the disc 4 directly or, preferably, via the computer 2, from which further the cryptographic value EK2(x) is received, preferably via a covert channel. However, the cryptographic value EK2(x) can also be received from a cryptographic unit 1 directly together with the access keys K1, K2.
The string x thus plays the role of a trapdoor. It is easy to choose x at random. If x is known it is easy to compute the key-locker key KLK, but when x is unknown then it is unfeasibly difficult to compute the key K1 even if the cryptographic values hK1 (x) and EK2 (x) are known. When the computer 2 or the PC application thereon has been broken but the secret keys K1, K2 are still unknown, the access control system can easily be updated by replacing the PC application based on one with differently chosen data x or by providing a new string x to the computer 2, i.e. the cryptographic unit 1 chooses a new string x, calculates the cryptographic values hK1(x), EK2(x) and provides them to the computer 2. Thus, it is not necessary to provide any new data from the cryptographic unit 1 to the device 3, which only needs to receive the new cryptographic value EK2(x) from the computer 2.
It can be shown that when the cryptographic value EK2(x) is known, for instance intercepted during transfer from the computer 2 towards the device 3, no information on the access key K2 has leaked. It can further be shown that even when the computer 2 is broken so that both cryptographic values hK1(x) and EK2(x) are known, only half of the information on the access keys K1, K2 has leaked (from an information theoretical point of view).
Compared to the system as shown in
Still another embodiment of an access control system according to the present invention is shown in
This function g is chosen according to the constrains of the specific application. The parameters c, c1 and c2 do not necessarily have the same bit lengths. One of the two parameters, in particular string portion c2 which replaces the string c of the embodiment as shown in
According to the access control system as shown in
According to the embodiment as shown in
Finally, according to the embodiment as shown in
It should be remarked that in the same way as the parameter c can be changed, also the access keys K1 and K2 can be changed. Additional functions have to be defined in order to make this possible.
Number | Date | Country | Kind |
---|---|---|---|
02076070.8 | Mar 2002 | EP | regional |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/IB03/00682 | 2/19/2003 | WO |