Data protection system6526144Abstract A method of communicating from a transmitter to a receiver over a communication medium. For the transmitter, the method includes the step of formatting data into a data stream to be communicated across the communications medium. This data stream comprises a plurality of headers (PACK HEADER). Moreover, for each of the plurality of headers, the method performs two steps. First, the method modifies information encoded by the header by performing a bitwise logical operation between selected bits of the header (B) with a predetermined bit pattern (A). Second, the method transmits the plurality of headers on to the communications medium. For the receiver, the method includes the step of receiving the plurality of headers from the communications medium. Additionally, for each of the received headers, the receiver recovers the information encoded by the header. Claims What is claimed is: Description STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT
TABLE 1
Isochronous data protection system Description of data protection
packet no. header content system header content
1-36 CCl
37 KeyHigh most significant 32 bits of new key
38 KeyLow least significant 32 bits of new key
39 IVHigh most significant 32 bits of new IV
40 IVLow least significant 32 bits of new IV
41-45 r 160 bit r value
46-50 s 160 bit s value
In packets number 1-36, the data protection system header will contain the copy control information bits as shown in the following Table 2:
TABLE 2
Copy Generation Management Information bits 1-0
Analog Protection System Trigger Bits bits 3-2
Digital Source Bit bit 4
Upon receipt of the 50.sup.th isochronous packet, the receiver compares the message digests to ensure that the data is coming from a legitimate source. The receiver will also reset the DES implementation so that the newly received key and initialization vector can be used on the next isochronous packet. The remaining 27 bits of the quadlet used in part as illustrated in Table 2 may be reserved for future enhancements of the CCI as well as other information. Specifically, although 56-bit key length is defined for DES, key length has been a source of ongoing debate in cryptographic circles. A weaker variation of DES, having a 40-bit key length has been used in some applications. Also, as technology becomes more powerful, more sophisticated cryptanalysis techniques may be developed that may compromise 56-bit DES. To ensure future extensibility to greater key lengths and provide facility to use other new algorithms that may be developed, part of the data protection system header quadlet may be reserved for such information as shown in the following Table 3, for example:
TABLE 3
DES Key Length bits 5-12
Encryption Algorithm Identifier bits 13-20
The second layer of the data protection scheme of the present invention is specific to compressed data to be transmitted over the 1394 system. Compressed data is available in packet form, with associated packet headers. By way of introduction, the protection scheme is based on modifying the packet header contents with 1394 clock information and transmitting this modified header information. Unless the receiver is synchronized with the transmitter clock and configured to recognize the modified header, it will be unable to derive the original header information to use the compressed data stream. An additional measure of protection is provided by randomly varying the modification of header information with 1394 clock information. While this technique can, in general, be used with any compressed data form, details are presented here for the currently prevalent MPEG compression, as it is used in various applications such as DVD, digital video broadcast (DVB) and DTV. Generalization for other future compression techniques is also disclosed. This technique also may be adapted to other uncompressed data formats, but the details tend to be somewhat dependent on the specifics of those other formats, and are not necessary to an understanding to this second level of the protection scheme of the present invention. MPEG data streams can be program streams for DVD, or transport streams for broadcast applications such as DTV or DVB. The basic structure of a program stream is shown in FIG. 4, consisting of consecutive pack headers and packs, with each pack consisting of program elementary stream (PES) packets containing PES header and payload. In accordance with a preferred embodiment of the present invention, the first 32 bits of the pack header are modified using 1394 system clock valuens. This region of the pack header corresponds to a field in the header referred to as pack_start_code. Scrambling this data ensures that a decoder will be unable to find the start location of the corresponding pack unless the descrambling operation is performed correctly. More specifically, in a 1394 network, each node with isochronous service has a 32-bit cycle time register, and for the present document this register is referred to as the CYCLE_TIME register. The low-order 12 bits of this register are a modulo 3,072 count which increments once every 24.576 MHz clock period, the next 13 higher order bits count 8 KHz cycles, while the highest 7 bits count seconds. Additionally, the cycle master copies the time stamp in its CYCLE_TIME register to the CYCLE_TIME register in each of the isochronous nodes with the cycle start packet, synchronizing all nodes within a constant phase difference. This functionality is further augmented as described below to modify the pack header. FIG. 5 illustrates in greater detail a bitwise logical operation which is performed by the preferred embodiment to modify the first 32 bits of the pack header using the 1394 system clock values as introduced above. By way of example, assume that the common cycle time register value of the network is designated as 1394_Cycle_Time_Clock, which in FIG. 5 is shown as providing a signal A. Next, assume that the first 32 bits of the pack header provide a signal shown in FIG. 5 as B. Then, in the preferred embodiment, the following bitwise exclusive OR operations of Table 4 are performed to achieve this layer of data protection:
TABLE 4
A B C D = B
0 0 0 0
0 1 1 1
1 0 1 0
1 1 0 1
The above Table 4 first illustrates a value of C which, from FIG. 5, is appreciated as the actual information transmitted by the transmitter on to the 1394 medium. Thus, the value of C represents a first bitwise exclusive OR operation between the common cycle time register value 1394_Cycle_Time_Clock and corresponding bits in the pack header information. Table 4 further illustrates a value of D which, from FIG. 5, is appreciated as the information after it is received and assuming it is properly decoded according to the preferred embodiment. More specifically, in the preferred embodiment, such a receiver also performs a bitwise exclusive OR operation, where the operation is between the pack header information C received from the 1394 medium (i.e., after it has been through the first bitwise exclusive OR operation) and again the corresponding bits from the common cycle time register value 1394_Cycle_Time_Clock. Because this second bitwise exclusive OR operation is with the same pattern as was the first bitwise exclusive OR operation (i.e., 1394_Cycle_Time_Clock) , then the resulting signal D will be the same as the original signal B, that is, the original pack header information is therefore recovered by the receiver. In the preferred embodiment, the functionality described above with respect to Table 4 is accomplished through the use of two registers. In this regard, recall it was earlier stated that each of the isochronous nodes includes a CYCLE_TIME register, and the cycle master copies its time stamp value of 1394_Cycle_Time_Clock to each of these registers. Thus, this CYCLE_TIME register constitutes a first register for accomplishing the present functionality. However, the present inventors recognize that the 1394_Cycle_Time_Clock value in each node's CYCLE_TIME register is thereafter changed, such as when it is incremented each 40 nanoseconds thereafter by the system clock frequency of 24.576 MHz. Accordingly, to achieve the earlier-described bitwise operation, it is desired that a copy of the original 1394_Cycle_Time_Clock value be maintained. Since this time is changed, then a receiver of a packet may have a different value in its CYCLE_TIME register than the sender had when it transmitted the packet. In this regard, therefore, in the preferred embodiment a second register, referred to in this document as a CYCLE_START_TIME register, is added to the 1394 link layer controller of each node. The CYCLE_START_TIME register stores the exact value of the cycle_time_data received in the cycle start packet, that is, it stores a copy of the 1394_Cycle_Time_Clock value, which reflects the time at which the present cycle started. Moreover, in the preferred embodiment, the CYCLE_START_TIME register is different from the existing 1394_CYCLE_TIME register in that it is not incremented by the 24.576 MHz system clock. As a result, both the transmitting and receiving node have a same stored indication of the 1394_Cycle_Time_Clock value and, thus, both the first and second bitwise operations of Table 4 may be performed in view of that value. In addition, in the preferred embodiment the value stored in the CYCLE_START_TIME register cannot be accessed by a register read from either the system or the 1394 bus, or from anything outside the integrated circuit chip that includes the register (e.g., a local computer or processor bus). Thus, the 1394_Cycle_Time_Clock value is inaccessible to a pirate who may attempt to obtain that value to provide an unauthorized bitwise operation to locate the proper timing for an incoming signal. Lastly, note that the recovery of the pack or TP header is preferably implemented in hardware within the special 1394 link layer controller. Triggering of this operation is keyed to the t-code reserved for copy protected data, plus the identifiers for MPEG or other compressed data formats. Given the above, note further that although it is possible for a pirating application to read the receiving node's CYCLE_TIME register after the beginning of an isochronous cycle, it will have been incremented by the local 24.576 MHz clock, giving an incorrect value for processing the pack header. This is a consequence of the time required to process the cycle start interrupt, plus the crossing of clock synchronization boundaries between the system processor and the 1394 link layer controller. To further increase the likelihood of a pirate's corrupting the pack header data with the incremented 1394 cycle time register value, the ordering of the bits of the value of the1394_Cycle_Time_Clock, which is in the new CYCLE_START_TIME register, may be reversed. In other words, the present inventive scope contemplates either the earlier-described selected bits, or other possible rearrangement of the time value bits as well. In another aspect of the preferred embodiment, an approach similar to that just described relating to protecting a program stream also can be used for MPEG transport stream data protection. The basic structure of a transport stream is shown in FIG. 6, consisting of 188-byte packets, where each packet consists of a 4-byte transport packet (TP) header, followed by PES header and data. In this embodiment, a bitwise logical operation performed on MPEG_System_Clock_Reference for program streams is performed here on the TP header. The third level of the data protection system of the present invention, used for packaged digital media such as DVD or D-VCR, preferably utilizes an authenticating transponder embedded into the media (e.g., disk) and which can be "interrogated." A low cost and reliable solution to this scheme has been developed using a variation of an existing product developed by Texas Instruments Incorporated, called TIRIS.TM. (Texas Instruments Registration and Identification System). TIRIS comprises a flat passive RF semiconductor transponder package, which in the preferred embodiment is bonded or embedded to the data protected media package. In the preferred embodiment, this transponder package is interrogated, such as by a device having access to the data protected media package (e.g., a DVD player), and the response from the interrogation is used to unscramble data stored on the package. TIRIS is described in a great number of publications including U.S. Pat. No. 5,053,774, hereby incorporated herein by reference. The remainder of this section is couched in terms of DVD data protection but the technology is equally applicable to other packaged digital media such as D-VCR. In addition, while TIRIS remains the preferred method for identifying the manner of encoding as detailed below, other machine-readable techniques may be associated with the packaged medium as well. In the preferred embodiment, compressed data to be stored on DVD is subjected to a scrambling process and then stored in the scrambled order on the DVD. More particularly, data corresponding to each pack is scrambled by interchanging the order of the various digital bits according to a scramble pattern such as shown below, and this scrambled pattern is stored on the DVD. The scramble pattern used changes from pack to pack in some random order, as shown below in Table 5 by way of example.
TABLE 5
(i.e., Output bit order (i.e.,
Input bit order (i.e., position of bits as
position of bits when scrambled and stored
Scramble pattern unscrambled) on medium)
Scramble pattern 1: 7,6,5,4,3,2,1,0 0,1,2,3,4,5,6,7
Scramble pattern 2: 7,6,5,4,3,2,1,0 7,5,3,1,0,2,4,6
. . .
. . .
. . .
Scramble pattern n: 7,6,5,4,3,2,1,0 4,5,6,7,0,1,2,3
To further appreciate the illustration of Table 5, consider the top row of the table. First, the "input bit order" of the second column represents the normal ordering of the bits before they are scrambled and, hence, is shown in a customary ordering (i.e., 7,6,5,4,3,2,1,0). However, rather than storing the data on the package medium in this customary order, the data is instead scrambled into a different order. In this regard, the "output bit order" of the third column illustrates a corresponding scramble pattern showing how the customary ordering is re-arranged to a different order. Particularly, in the example of the second row of Table 5, the scramble pattern is 0,1,2,3,4,5,6,7. Given this scrambled format and as detailed below, in response to information provided by the transponder which is provided with the package medium, ultimately this data is unscrambled, preferably by a receiver such that the order of these bits as interpreted by the receiving device is returned to the customary ordering of 7,6,5,4,3,2,1,0. In addition, recall it is earlier stated that the scramble pattern changes from pack to pack. In the example of Table 5, therefore, the second row illustrates a different scrambling order for a second data pack, and so forth for the rest of the Table. In the preferred embodiment, the sequence of scramble patterns is repeated after n scramble patterns have been used. A suggested number of scramble patterns to use (value of n) is 256. Thus, the 257.sup.th pack is scrambled in the same manner as the 1.sup.st pack, the 258.sup.th pack is scrambled in the same manner as the 2.sup.nd pack, and so forth. The total number of such patterns possible for m bits of data is m!. For 8-bit data, the number of patterns is 8!=40,320. This is the total number of scramble patterns possible. Any given DVD/TIRIS combination may use n=256 of these patterns. Each possible scramble pattern is assigned a unique numerical code, referred to herein as Scramble_Pattern_ID. The sequence of codes corresponding to the sequence of scramble patterns used in a particular DVD is stored on the corresponding TIRIS. The TIRIS-based data protected transmission scheme is shown in FIG. 7. Turning to FIG. 7, on the transmitter side, the scrambled data is read off the DVD, along with the corresponding Scramble_Pattern_ID from TIRIS. More specifically, therefore, the transmitter includes sufficient circuitry to interrogate the transponder on the DVD. Such circuitry is not shown in FIG. 7, but is readily ascertainable by one skilled in the art given the above-incorporated U.S. Pat. No. 5,053,774, and other references discussing TIRIS technology. In response to the interrogation, the transponder provides the sequence of stored Scramble_Pattern_IDs, so these may be thought of as a table having the variable n, introduced above, of these Scramble_Pattern_IDs. In a preferred implementation, a number of these table entries may be read off TIRIS as sequence of Scramble_Pattern_IDs on DVD spinup and stored in a buffer, since reading TIRIS during DVD play can be a problem due to RF interference from other parts of the system. Thus, in the example provided above where n equals 256, then either immediately prior to or at spinup the transmitter reads all 256 Scramble_Pattern_IDs into a buffer. The buffer may be a location in memory and, in the preferred embodiment, this information is only retained in memory while-the DVD (or other packaged medium) remains in place in the transmitter. Next, the scrambled data pack and corresponding Scramble_Pattern_ID are packaged into 1394 packets for transmission on to the 1394 medium. In the preferred embodiment, these 1394 packets are in the format shown in FIG. 8, where a quadlet-long data protection system header extension (shown as "DPS HEADER EXTENSION) is defined to accommodate the Scramble_Pattern_ID. For 8-bit data, since there can be a total of 40,320 unique scramble patterns, each unique pattern requires over 15 bits for representation. Using a quadlet to represent Scramble_Pattern_IDs ensures that all patterns can be uniquely represented for 8-bit data with room for extension to greater bit widths which may be used for future DVD data representation. After being combined into 1394 packet form, the data is preferably encrypted and then transmitted on to the 1394 medium. Looking to FIG. 7 on the receiver side, the data is received from the 1394 medium and is decrypted and unpacked from 1394 packets according to the base layer digital data protection system explained earlier. The Scramble_Pattern_ID is used as an index into a look-up table (LUT) whose output is the corresponding descrambled pattern. This pattern is used to descramble the scrambled data. As another aspect to the transmission and receipt of the Scramble_Pattern_IDs as just described, note that a system according to the preferred embodiment may further include an additional level of security for ensuring that genuine media data is being communicated across the 1394 bus. Specifically, the providers of packaged media have indicated concern that once data is available on the 1394 bus, a pirating device may be added to that bus to intercept or copy the data for unauthorized use. To eliminate or minimize this risk, in the preferred embodiment there are also periodic checks in connection with the TIRIS provided information to ensure that the original authentic packaged medium (e.g., the DVD with the TIRIS) is still in the transmitter (e.g., in the player for a DVD). In one implementation of this aspect, each time a new device is added to the 1394 bus then such a check occurs. More specifically, it is known under 1394 systems that a reset or other type of detection occurs when a new device is added to the 1394 bus. Thus, upon such an event, in the preferred embodiment there is an evaluation of whether the authentic packaged medium is still located in the transmitter. To implement this operation, recall it was stated above that the already-read scramble patterns are read from the TIRIS into a buffer memory, and that in the preferred embodiment this information is only retained in memory while the DVD (or other (c) The next 64 most significant bits are extracted from DHKEY to produce a value for a DES initialization vector which will be referred to as IV1; (d) KEY1 and IV1 are used by the transmitter to encrypt, using DES in CBC mode, the current session key; (e) This encrypted key is then transmitted to the new receiver; and (f) The new receiver decrypts the value which it will now use as a key for decrypting the isochronous packets. The key exchange mechanism will use the asynchronous communication capabilities of the 1394 interface. A standardized address and block of register space is assigned for this communications process. Establishment and control of the connections between the receiving and transmitting devices may be performed using the Connection Management Procedures (CMP) defined in Clause 8 of the DVC "Bluebook" Part 1, on digital interface, hereby incorporated herein by reference. These are managed as point-to-point connections only; broadcast connections are not permitted. The CMP allows for multiple point-to-point connections to be made to one output plug, which provides for a multicast mode of operation. In certain applications where authentication of new devices on the 1394 bus is required, such as when introducing a new device into the network, public key certificates will be used. When the devices are manufactured, each device has a 640-bit public/private key pair generated using the Digital Signature Standard method for key generation. The private key is used to sign the device's public key certificate. Each certificate contains a minimum of the following information fields shown in Table 6 and conforms to the syntax requirements of X.509 standard. packaged medium) remains in place in the transmitter. Accordingly, to achieve the later check following a reset, the preferred embodiment determines whether the scramble patterns are still valid in the memory. If not, the system concludes that the authentic packaged medium has been removed, and in response the data from that medium is prohibited from being communicated along the 1394 bus. On the other hand, if the scramble patterns are still stored and valid in the memory, then the data from the packaged medium may be properly communicated along the 1394 bus, and it may then be received and descrambled in the manner described above. Lastly, note that the immediately preceding additional check may occur at times other than at reset, and the evaluation of whether the packaged medium is still located in the transmitter may be achieved by other techniques (e.g., by causing the transponder to once again provide information or confirmation to the transmitter that the packaged medium is still located in the transmitter). Having now explained the three levels of protection provided by a data protection system in accordance with the preferred embodiments, reference is now turned to the startup operation-and new device handling for a 1394 network configured to perform one or more of the data protection methodologies described above. When a new receiver device is introduced into the 1394 network, or when transmission is first initiated, the transmitter must provide the receiver with the current session key being used to encrypt the isochronous packets. This key transfer will occur using the asynchronous communication capabilities of 1394 as follows: (a) At startup, the Diffie-Hellman algorithm, as described in Diffie, M. E. Hellman, "New Directions in Cryptography", IEEE Transactions on Information Theory IT-22 (1976), pg. 644-54, hereby incorporated herein by reference, is used between the transmitter and the new receiver to exchange a unique 512-bit key, called DHKEY; (b) The 64 most significant bits are extracted from DHKEY to form a new key referred to as KEY1;
TABLE 6
Field No. Information Length
1 Device serial number 64 bits
2 Manufacturer ID number 32 bits
3 Date of device manufacture 64 bits
4 Manufacturer extension 32 bits
5 Public key 640 bits
6 Digital signature 320 bits
Total 1,152 bits
The device serial number is unique for each manufactured device. The manufacturer extension allows manufacturers to insert additional information for customization of the certificates. The digital signature is computed by hashing field numbers 1-5 (using SHA-1) then signing that hash value using DSS and the device's private key. When a new device is added to the 1394 bus, the asynchronous communication capabilities of the 1394 are used to send the device's certificate to the transmitter. The transmitter hashes the certificate and uses the public key and digital signature as input to the verification operations of DSS. If the DSS authentication fails, key exchange through Diffie-Hellman will not occur. While details of overall system implementation cost, in terms of gate counts or software cycles, is not yet known, it is estimated that the data protection system as disclosed herein may be implemented at a cost suitable for consumer application. The approach of the present invention makes use of various well-known cryptography algorithms which are already available in various forms from various vendors: DES algorithm implementation for encryption and decryption (DES engine) is available from a vendor as an approximately 4000 gate solution. Diffie-Hellman is used for key exchange across the asynchronous communication mechanism of the 1394 interface. Since there are no hard real-time requirements for this, speed of computation is not a major issue. Implementation may be feasible on a midspeed microcontroller. The random number generation is used in the transmitter and receiver for Diffie-Hellman and X9.17 key generation. The choice of a pseudo-random number generator (PRNG) can be independent for the transmitter and receiver since they do not need to generate the same sequence of random numbers. Care must be taken, however, to choose a PRNG which is cryptographically strong. Some general considerations for the PRNG are: (a) Seeds for the PRNG are created by using the system clock or some permutation of the system clock; (b) Knowledge of previous bits of a PRNG sequence will not allow for prediction of future bits; (c) No linear feedback shift register schemes should be implemented since it is possible to determine the feedback patterns; and (d) Since PRNGs are inherently periodic, the period should be very large. The data protection system may use a complex algorithm for the PRNG because there are no real-time requirements for number generation, other than the time requirement that new keys must be generated within the time frame of 50 isochronous packets bundle. Possible implementations of pseudo-random number generators include the Blum/Micali algorithm, computational complexity O(n.sup.3), and the Blum/Blum/Shub algorithm, computational complexity O(n.sup.2), both of which are described in Bellare, S. Goldwasser, "Lecture Notes on Cryptography", Massachusetts Institute of Technology, July 1996, pg. 39-47, hereby incorporated herein by reference. Having appreciated the above, one skilled in the art will understand that the data protection system of the present embodiments provides several advantages over systems of the prior art. For example, the present approach provides a range of data protection options, from general data protection for all digital data transmitted over the 1394 interface, to specific protection mechanism for packaged content such as DVD. As another example, the present approach introduces to 1394 communication cryptographic techniques that have been used in various forms in several other communication environments such as cable modems, ISDN, TCP/IP networks, Internet Privacy-Enhanced Mail (PEM), Smart Cards, and defense applications. As still another example, using the system disclosed herein, standard, well-known cryptographic techniques may be integrated with proprietary approaches. In this regard, the "strength" of a cryptographic technique is often determined by how well it stands the test of time, surviving various attack efforts. Standard techniques have proven success in this as testified by their prolific use in the application areas listed above. On the other hand, proprietary approaches are used where they provide specific strengths. As yet another example, the fact that elements of the preferred embodiment have widespread application in various communication environments ensures a broader demand base for the technology components, leading to low cost components availability from various competing vendors. Given these many examples, one skilled in the art will appreciate the scope and flexibility of the preferred embodiments. Moreover, while the present embodiments have been described in detail, various substitutions, modifications or alterations could be made to the descriptions set forth above without departing from the inventive scope which is defined by the following claims.
|
Same subclass Same class Consider this |
||||||||||
