# Patent

## Title
Digital video recorder employing a unique ID to interlock with encrypted video programs stored on a storage device

## Abstract

The present invention may be regarded as a digital video recorder (DVR) comprising a storage device for storing an encrypted video program, a unique ID for interlocking the encrypted video program with the digital video recorder, and a cryptography facility. The cryptography facility comprises an encoder, responsive to the unique ID, for encrypting a plaintext video program into the encrypted video program stored on the storage device, and a decoder, responsive to the unique ID, for decrypting the encrypted video program stored on the storage device into the plaintext video program during playback.

## Background
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to digital video recorders. More particularly, the present invention relates to a digital video recorder employing a unique ID to interlock with encrypted video programs stored on a storage device.
2. Description of the Prior Art
Video cassette recorders (VCRs) in the past used a tape cassette storage medium to record video programs in analog form. Copyright protection with VCRs is not a significant concern since the quality of the video degrades when copied from one VCR to another. More recently, however, digital video recorders (DVRs) have been introduced which store video programs in digital form. Copyright protection with DVRs is a significant concern since the video reproduces without degradation when copied digitally from one DVR to another.
Prior art DVRs typically employ a conventional hard disk drive (HDD), such as an IDE hard disk drive, as the digital storage device since HDDs have sufficient capacity to store video content and are relatively inexpensive due to their prevalent use in personal computers (PCs). Rather than design and manufacture a customized HDD for the DVR market, DVRs are constructed similar to a PC, including DVR host circuitry for interfacing with a commodity HDD which reduces the cost of the DVR. This design, however, has subjected the copyrighted video programs to unauthorized reproduction, for example, by eavesdropping while the copyrighted content is transferred from the DVR host circuitry to the HDD, or by removing the HDD and installing it in another DVR or in a PC.
There is, therefore, a need to protect against unauthorized reproduction of copyrighted video programs in a DVR employing a cost effective, commodity HDD.
SUMMARY OF THE INVENTION
The present invention may be regarded as a digital video recorder (DVR) comprising a storage device for storing an encrypted video program, a unique ID for interlocking the encrypted video program with the digital video recorder, and a cryptography facility. The cryptography facility comprises an encoder, responsive to the unique ID, for encrypting a plaintext video program into the encrypted video program stored on the storage device, and a decoder, responsive to the unique ID, for decrypting the encrypted video program stored on the storage device into the plaintext video program during playback.
In one embodiment, the cryptography facility further comprises a key generator for generating a key from the unique ID. In another embodiment, the cryptography facility further comprises a pseudo-random sequence generator for generating a pseudo-random sequence, and the key generator comprises a seed value generator for generating a seed value from the unique ID, wherein the seed value for initializing the pseudo-random sequence generator.
In yet another embodiment, the storage device comprises a hard disk drive. Any suitable hard disk drive may be employed, and in one embodiment, the hard disk drive is a commodity device compatible with a personal computer so as to reduce the cost of the DVR.
The present invention may also be regarded as a method of processing video programs in a digital video recorder comprising a storage device. A plaintext video program is encrypted into an encrypted video program using a unique ID associated with the digital video recorder to interlock the encrypted video program with the digital video recorder. The encrypted video program is stored on the storage device and, during playback, the encrypted video program is read from the storage device and decrypted into the plaintext video program using the unique ID.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows a digital video recorder according to an embodiment of the present invention as comprising a unique ID and a cryptography facility, responsive to the unique ID, for encrypting/decrypting video programs stored on a storage device.
FIG. 2 shows a digital video recorder according to an embodiment of the present invention wherein video programs are stored in encrypted form on a hard disk drive (HDD) using plaintext keys which are also encrypted using a pseudo-random sequence generated from a unique ID and stored in encrypted file system entries on the HDD.
FIG. 3A shows a programmable file system (FS) polynomial implemented using a linear feedback shift register (LFSR) for generating the pseudo-random sequence of FIG. 2, wherein a seed value is generated for the LFSR from the unique ID.
FIG. 3B shows a programmable FS polynomial implemented using a LFSR for generating the pseudo-random sequence of FIG. 2, wherein coefficient values are generated for the LFSR from the unique ID.
FIG. 4A shows an LFSR for generating a pseudo-random sequence for encrypting a plaintext video program using a plaintext key as a seed value for the LFSR.
FIG. 4B shows an LFSR for generating a pseudo-random sequence for encrypting a plaintext video program using a plaintext key, wherein a seed value is generated from the plaintext key. In an alternative embodiment, a plurality of segment seed values are generated from the plaintext key wherein each segment seed value is used to encrypt a corresponding segment of the plaintext video program.
FIG. 4C shows an LFSR for generating a pseudo-random sequence for encrypting a plaintext video program using a plaintext key, wherein coefficient values are generated from the plaintext key. In an alternative embodiment, sets of coefficient values are generated from the plaintext key wherein each set of coefficient values is used to encrypt a corresponding segment of the plaintext video program.



DESCRIPTION OF THE PREFERRED EMBODIMENTS
FIG. 1 shows a digital video recorder (DVR) 1 according to an embodiment of the present invention comprising a storage device 3 for storing an encrypted video program, a unique ID 4 for interlocking the encrypted video program with the digital video recorder, and a cryptography facility 14 comprising an encoder 24, responsive to the unique ID, for encrypting a plaintext video program 5A into the encrypted video program 7 stored on the storage device, and a decoder 26, responsive to the unique ID, for decrypting the encrypted video 7 program stored on the storage device 3 into the plaintext video program 5B during playback.
FIG. 2 shows a digital video recorder (DVR) 2 according to an embodiment of the present invention wherein the storage device 3 of FIG. 1 is implemented as a hard disk drive (HDD). The HDD 6 stores a plurality of encrypted video programs 8 and an encrypted file system, the encrypted file system comprising a plurality of encrypted file system entries 10 for decrypting the plurality of encrypted video programs 8. The DVR 2 further comprises host circuitry 12 for interfacing with the HDD 6, the host circuitry 12 comprising the cryptography facility 14 for encrypting plaintext file system entries 16A into the encrypted file system entries 10 stored on the HDD 6, and for decrypting the encrypted file system entries 10 read from the HDD 6 into plaintext file system entries 16B. The cryptography facility 14 comprises a pseudo-random sequence generator 20, responsive to the unique ID 4, for generating a pseudo-random sequence 22. The cryptography facility 14 further comprises an encoder 24 for combining the pseudo-random sequence 22 with the plaintext file system entries 16A to generate the encrypted file system entries 10 stored on the HDD 6, and a decoder 26 for combining the pseudo-random sequence 22 with the encrypted file system entries 10 read from the HDD 6 to generate the plaintext file system entries 16B.
In one embodiment, the encoder 24 of FIG. 2 performs the encryption operation by XORing each element (e.g., byte) of the plaintext file system entry 16A with a corresponding element (e.g., byte) of the pseudo-random sequence 22. Similarly, the decoder 26 performs the decryption operation by XORing each element (e.g., byte) of the encrypted file system entry 10 with a corresponding element (e.g., byte) of the pseudo-random sequence 22 to generate the plaintext file system entry 16B.
The host circuitry 12 of FIG. 2 further comprises a video controller 28 for receiving video data 30 from an external entity (e.g., a cable or satellite). The video controller 28 generates control signals 32 for controlling the operation of the cryptography facility 14 when recording an encrypted video program 8, together with the encrypted file system entry 10 for decrypting the encrypted video program 8. The video controller also processes the decrypted file system entries 16B so that the encrypted video programs 8 can be decrypted and output as video data 34 to a display device. Because the file system entries 10 are stored in encrypted form relative to the unique ID 4 assigned to the DVR 2, the encrypted video programs 8 stored on the HDD 6 cannot be decrypted by connecting the HDD 6 to another DVR or to a PC. In effect, the HDD 6 is married to the host circuitry 12 of the DVR 2 through the unique ID 4 which protects against unauthorized copying. In addition, the encrypted file system entries 10 are transparent to the operation of the HDD 6 so that any conventional HDD 6 may be employed without modification.
In one embodiment, the plaintext file system entry 16A comprises a plaintext key for encrypting a plaintext video program into an encrypted video program 8 stored on the HDD 6. The cryptography facility 14 encrypts the plaintext video program into an encrypted video program 8 stored on the HDD 6, and encrypts the plaintext key into an encrypted key stored on the HDD 6 in an encrypted file system entry 10. In one embodiment, the encoder 24 combines the pseudo-random sequence 22 with the plaintext video program to generate the encrypted video program 8 stored on the HDD 6.
In another embodiment, the encrypted file system entry 10 comprises an encrypted key for decrypting an encrypted video program 8 read from the HDD 6 into a plaintext video program. The cryptography facility 14 decrypts the encrypted key read from the encrypted file system entry 10 into a plaintext key, and decrypts the encrypted video program 8 read from the HDD 6 using the plaintext key. In one embodiment, the decoder 26 combines the pseudo-random sequence 22 with the encrypted video program 8 read from the HDD 6 to generate the plaintext video program.
In one embodiment, the pseudo-random sequence generator 20 comprises a programmable file system (FS) polynomial for generating the pseudo-random sequence 22. In one embodiment, the programmable FS polynomial is programmed with coefficients which, in one embodiment, are generated by a coefficient generator responsive to the unique ID 4. In another embodiment, the programmable FS polynomial is programmed with a seed value which, in one embodiment, is generated by a seed value generator responsive to the unique ID 4.
FIG. 3A shows an embodiment of the present invention wherein the FS polynomial is implemented using a suitable linear feedback register (LFSR) 36. An LFSR may be implemented using a number of different configurations. The LFSR 36 of FIG. 3A comprises a shift register 38 comprising N storage elements which are initialized with a seed value 40 generated by a seed value generator 50 from the unique ID 4. A number of taps 42A-42E connect a corresponding number of the storage elements to an adder 44 for adding the values stored in the storage elements. The resulting sum 44 is fed back 46 to an input of the LFSR 36. The LFSR 36 is shifted from left to right, and the right most storage element 48 outputs each value of the pseudo-random sequence 22.
FIG. 3B shows an alternative embodiment of the present invention wherein the FS polynomial is implemented using an LFSR 52 comprising programmable coefficients 540-54N. A coefficient generator 56 generates coefficient values 58 for programming each of the programmable coefficients 540-54N. In the embodiment shown in FIG. 3B, the coefficients are binary valued and the programmable coefficients 540-54N are implemented as switches.
In yet another embodiment of the present invention, the FS polynomial is implemented using an LFSR comprising both a programmable seed value and programmable coefficients values for which are generated from the unique ID 4.
In one embodiment, the seed value generator 50 implements a function f(x), such as a polynomial, with the unique ID 4 as the input argument x and the seed value 40 the result. In another embodiment, the seed value generator 50 comprises a programmable algorithm for computing the seed value 40 from the unique ID 4. This embodiment allows a DVR manufacture to select the function f(x) for implementing a line of DVRs. This embodiment also allows an external entity to update the programmable algorithm to protect against system compromise. For example, in one embodiment the DVR 2 of FIG. 2 comprises network circuitry for connecting to a network (e.g., through a cable or satellite), and a system administrator on the network periodically changes the programmable algorithm in a random manner. Thus, if an attacker discovers the algorithm used by the seed value generator 50 to generate the seed value 40, the compromise is only temporary until the system administrator updates the algorithm.
In another embodiment, the coefficient value generator 56 implements a plurality of functions f(x), such as a plurality of polynomials, with the unique ID as the input argument x and the coefficient values 58 the result of each function f(x). The coefficient value generator 56 may also implement a programmable algorithm for computing the coefficient values 58 to facilitate different DVR manufactures and to protect against system compromise as described above.
In another embodiment of the present invention, the seed value generator 50 comprises a seed table comprising a plurality of table entries, each table entry comprising a seed value. An index generator, responsive to the unique ID 4, generates an index into the seed table. In yet another embodiment, the coefficient value generator 56 comprises a coefficient table comprising a plurality of table entries, each table entry comprising coefficient values. An index generator, responsive to the unique ID 4, generates an index into the coefficient table.
FIG. 4A shows an alternative embodiment of the present invention as comprising a programmable LFSR 59 for generating a pseudo-random sequence 22 used to encrypt a plaintext video program into an encrypted video program 8 stored on the HDD 6. A plaintext key 18 is used as a seed value for the LFSR 59, where the plaintext key 18 is associated with the plaintext video program. In one embodiment, the plaintext key is derived from the filename or other attribute of the video program. In another embodiment, the plaintext key is generated randomly using any suitable method, for example, by reading a system clock value just prior to encrypting the plaintext video.
FIG. 4B shows an alternative embodiment of the present invention as comprising a programmable LFSR 60 for generating a pseudo-random sequence 22 used to encrypt a plaintext video program into an encrypted video program 8 stored on the HDD 6. A seed value generator 62 generates a seed value 64 used to initialize the shift register 38. The seed value 64 is generated from the plaintext key 18 used to encrypt the plaintext video program. In one embodiment, the plaintext video program is encrypted in segments, and the seed value generator 62 generates a distinct seed value 64 for each segment number 66. Each segment seed value 64 is essentially a distinct key for use in encrypting a corresponding segment of the plaintext video program. In this manner, compromise of a single key enables successful decrypting of only a segment of the encrypted video program.
In one embodiment, the plaintext key 18 comprises a plurality of segment keys for encrypting each segment of the plaintext video program, and the seed value generator 62 generates a corresponding seed value 64 for each segment key. In another embodiment, the segment keys are computed from the plaintext key 18, and the seed value generator 62 generates a corresponding seed value 64 for each computed segment key. In one embodiment, the seed value generator 62 comprises a function f(x,y) for computing the segment seed values 64 wherein the plaintext key 18 and segment number 66 are the input arguments x and y, and the segment seed value 64 is the result. Lookup tables may also be employed for generating the segment keys, and the algorithm for computing the segment keys may be programmably updated to facilitate different DVR manufactures and to protect against system compromise as described above.
FIG. 4C shows an alternative embodiment of the present invention as comprising a programmable LFSR 68 for generating a pseudo-random sequence 22 used to encode a plaintext video program into an encrypted video program 8 stored on the HDD 6. A coefficient value generator 70 generates a coefficient values 72 used to initialize the coefficients of the LFSR 68. The coefficient values 72 are generated from the plaintext key 18 used to encrypt the plaintext video program. In one embodiment, the plaintext video program is encrypted in segments, and the coefficient value generator 70 generates distinct coefficient values 72 for each segment number 66. Similar to the embodiment of FIG. 4B, each set of coefficient values 72 is essentially a distinct key for use in encrypting a corresponding segment of the plaintext video program so that compromise of a single key enables successful decrypting of only a segment of the encrypted video program.
In one embodiment, the plaintext key 18 comprises a plurality of segment keys for encrypting each segment of the plaintext video program, and the coefficient value generator 70 generates a set of coefficient values 72 for each segment key. In another embodiment, the segment keys are computed from the plaintext key 18, and the coefficient value generator 70 generates a corresponding set of coefficient values 72 for each computed segment key. In one embodiment, the coefficient value generator 70 comprises a function f(x,y) for computing the segment coefficient values 72 wherein the plaintext key 18 and segment number 66 are the input arguments x and y, and the segment coefficient values 72 are the result. Lookup tables may also be employed for generating the segment keys, and the algorithm for computing the segment keys may be programmably updated to facilitate different DVR manufactures and to protect against system compromise as described above.
In another embodiment, the LFSR 60 of FIG. 4B or the LFSR 68 of FIG. 4C is used to decrypt an encrypted video program 8 in segments using the segment keys. In one embodiment, the plaintext key 18 comprises a plurality of segment keys which are encrypted and stored as an encrypted file system entry 10 for use in decrypting the encrypted video program 8 during playback. In another embodiment, the plaintext key 18 is encrypted and stored as an encrypted file system entry 10. During playback, the encrypted key is decrypted into the plaintext key 18, and the plaintext key 18 is used to generate the segment keys for use in decrypting the encrypted video program 8 in segments.
In one embodiment, the HDD 6 comprises a disk having a plurality of data tracks, where each data track comprises a plurality of data sectors. In the embodiments of FIGS. 4B and 4C, a segment of a video program corresponds to a data sector. This simplifies the design since data is typically written to and read from a conventional HDD 6 in sector blocks. In one embodiment, the encrypted key for use in decrypting a corresponding sector is stored in the sector.
In another embodiment of the present invention, the unique ID 4 is implemented using tamper and inspection resistant circuitry to protect against discovery. In one embodiment, the host circuitry 12 and unique ID 4 are implemented within an integrated circuit (IC), and the unique ID 4 is buried, scattered or otherwise concealed within the IC using any suitable method. In yet another embodiment, at least part of the cryptography facility 14 (e.g., the seed value generator 62 of FIG. 4B or the coefficient value generator 70 of FIG. 4C) is implemented using tamper and inspection resistant circuitry to protect against discovery. An example of tamper and inspection resistant circuitry is disclosed in Tygar, J. D. and Yee, B. S., “Secure Coprocessors in Electronic Commerce Applications,” Proceedings 1995 USENIX Electronic Commerce Workshop, 1995, New York, which is incorporated herein by reference.
The embodiments of the present invention may be implemented in circuitry or software or both. The circuitry and/or software may be static or field programmable as described above. Software embodiments comprise code segments embodied on a computer readable medium, such as a hard disk, floppy disk, compact disk (CD), digital video disk (DVD), or programmable memory (e.g., an EEPROM). The code segments may be embodied on the computer readable medium in any suitable form, such as source code segments, assembly code segments, or executable code segments.

## Claims

1. A digital video recorder comprising:
(a) a storage device for storing an encrypted video program; and 
(b) a unique ID for interlocking the encrypted video program with the digital video recorder; and 
(c) a cryptography facility comprising: 
an encoder, responsive to the unique ID, for encrypting a plaintext video program into the encrypted video program stored on the storage device; and 
a decoder, responsive to the unique ID, for decrypting the encrypted video program stored on the storage device into the plaintext video program during playback.

2. The digital video recorder as recited in claim 1, wherein the cryptography facility further comprises a key generator for generating a key from the unique ID.

3. The digital video recorder as recited in claim 2, wherein the cryptography facility further comprises a pseudo-random sequence generator for generating a pseudo-random sequence, and the key generator comprises a seed value generator for generating a seed value from the unique ID, wherein the seed value for initializing the pseudo-random sequence generator.

4. The digital video recorder as recited in claim 1, wherein the storage device comprises a hard disk drive.

5. A method of processing video programs in a digital video recorder comprising a storage device, the method comprising the steps of:
(a) encrypting a plaintext video program into an encrypted video program using a unique ID associated with the digital video recorder to interlock the encrypted video program with the digital video recorder; 
(b) storing the encrypted video program on the storage device; 
(c) reading the encrypted video program from the storage device; and 
(d) decrypting the encrypted video program into the plaintext video program using the unique ID.

6. The method of processing video programs as recited in claim 5, further comprising the step of generating a key from the unique ID.

7. The method of processing video programs as recited in claim 6, further comprising the step of generating a pseudo-random sequence using the key, wherein the key comprises a seed value for initializing a pseudo-random sequence generator.

8. The method of processing video programs as recited in claim 5, wherein the storage device comprises a hard disk drive.