The field of the invention is a data distribution system that allows for conditional access to the distributed data. The invention also relates to an apparatus for recording the distributed data and an apparatus for replaying recorded data.
U.S. Pat. No. 5,991,400 describes a data distribution system that realizes conditional access by means of distribution of a data stream that contains encrypted data. Subscribers of the system are provided with receivers. Each receiver is provided with a secure device, such as a smart card, that enables decryption of the distributed data.
Decryption makes use of control words that are normally distributed as part of the data stream in messages (called ECM's: ECM=Encryption Control Message) that are part of the data stream. The ECM's contain encrypted control words. Similarly, keys for decrypting the ECM's are distributed in messages (EMM's: Encryption Management Messages) that are part of the data stream. ECM's are generally the same for all subscribers, but the EMM's are subscriber specific. Therefore EMM's for a specific subscriber are transmitted much less frequently than EMM's in general.
The ECM's and EMM's are decrypted in the secure device of the receiver. Generally, the encryption used in these ECM and EMM messages allows for more tamper proof decryption of control words and keys than decryption of the data, but the price of this is that decryption of the control words and keys is generally slower than decryption of the data. In practice two control words or keys may be included in each ECM. One future control word for future data to allow some time to extract the control words or keys from the messages before the control word is actually needed. Also the control word needed currently or in the very near future is included in the ECM to allow decryption of the data soon after the receiver starts receiving the stream, e.g. during zapping by the subscriber. Information in the stream indicates which data should be decrypted with which key.
U.S. Pat. No. 5,991,400 describes recording and playback of the data stream for time-shifting purposes, i.e. to decrypt the stream at a later time than when it was distributed. Basically the same decryption mechanism is used for “live” and “time-shifted” playback of the data stream. However, the key from the EMM's for decrypting the ECM's may not be readily available from the part of the data stream that is played back, because EMM's for a specific subscriber are transmitted only sparingly. U.S. Pat. No. 5,991,400 solves this problem by means of additional measures to ensure that the key from the EMM's that is needed for decrypting the ECM's from a specific part of the stored data stream is available when that part of the data stream is played back. For example, the EMM that is needed to decrypt the ECM's of a part of the data stream is stored so that it can be retrieved separately (not just as part of the stream), the EMM is retrieved and supplied with the part of the data stream that it is played back. The ECM's are supplied as part of the stream: the ECM's occur so frequently that they are readily available.
Conventional recording devices, such as video recorders, which store plain data (not encrypted) usually provide for various “trick play” modes, in which the data is played back in an abnormal temporal pattern. Examples of trick play are display of a speeded up version of video data, slow motion, reverse display etc. In the trick play modes the conventional recording devices access the recorded data selectively, reading only a part of the recorded information that is actually needed, or in an abnormal order.
Playback in an abnormal temporal pattern leads to difficulties in case of an encrypted stream. In case of forward playback in an abnormal temporal pattern, such as during fast forward, it would be possible in principle to decrypt the stream entirely and to use the decrypted stream for fast play back. However this requires much faster hardware than for normal playback. When the stream is played back in reverse faster hardware would already be needed for playback at normal speed.
Amongst others it is an object of the invention to provide efficient for playback of encrypted data from a data stream in an abnormal temporal pattern.
Amongst others it is an object of the invention to provide for storage of encrypted data with a reduction of the amount of decryption information that needs to be stored.
The invention provides for a method according to claim 1. According to the invention synchronization information is added during storage that links respective points in the stored stream of encrypted data to respective items with decryption information, such as ECM's. This is used during replay in an abnormal temporal pattern. The items of decryption information are retrieved and replayed at a time when they are needed for decryption of the encrypted data, as determined from the synchronization information, rather than at a time when data from their original positions in the stream is replayed. Thus a trick play stream may be generated with selected or rearranged temporal parts of the original streams and resynchronized items of decryption information that permit normal decryption in spite of the rearrangement. During fast forward only those items that are needed for the parts of the stream that are replayed may be supplied and/or the item with decryption information for a first part of the stream may be supplied concurrent with earlier or later parts of the stream than during playback in a normal temporal pattern, so as to allow a normal time for processing the items with decryption information.
Preferably, the items of decryption information are stored separately retrievable from the stored stream, not among the stored stream at the positions where they were originally received. This allows processing of the items of decryption information during storage (for example decryption and reencryption with another key) without use of a buffer memory to store of the stream temporarily until the items are available.
In an embodiment of the method according to the invention only items with decryption information from subsampled ones of the messages are stored for replay. This minimizes the need to search for the appropriate item that has to be used at a certain point in time during trick play.
The synchronization information links each item to a plurality of positions in the stream. By subsampling the items during recording the amount of storage space needed for storing the items can be reduced. By maintaining synchronization information that links points in the stream to the sub-sampled items the correct decryption information can nevertheless be replayed, repeatedly replaying the same item for different positions in the stream if necessary.
In an embodiment each subsampled item is selected in a predetermined relation to a transition in the stream after which the decryption information changes. Only the sub-sampled items are stored and replayed. In MPEG streams for example, a toggle in the tableID indicates such a transition, therefore detection of such a toggle can be used to detect the transition. An item of decryption information is sampled in a fixed relation to the detected transition, for example, the first item received after such a transition is sampled (of course instead of the first item after the transition the nth item may be taken, when it is certain that at least n items normally occur between successive transitions).
Sub-sampling triggered by transitions after those transitions simplifies the determination of the synchronization information during trick play, since it is ensured that at each position in the stream it suffices to look backward to the last previous transition to locate the relevant sub-sampled item. This ensures a straightforward relation between the sampled items and points in the stored stream that require the items for decryption. No look-ahead mechanism is needed to link points in the stream to events that occur later in the stream. In particular, when each items of decryption information contains more than one successively valid key for decrypting messages, it is ensured that a sampled item is chosen that remains valid independent of the timing relation between points in time at which the transmitted keys change and points in time where the keys that have to be used for decryption change.
During normal replay it follows directly from the stream which of the subsampled items of decryption information should be replayed when relative to the stream and how the sub-sampled item should be used. However, during replay in an abnormal temporal pattern (trick play) not all of the stream is accessed, so that information that is relevant to enable decryption may be missed. Therefore additional measures are preferred if it has to be ensured that all replayed parts of the stream can be decrypted.
In one embodiment the stream is examined when it is stored to determine the positions in the stream that may have to be accessed during replay in the abnormal temporal pattern. Synchronization information is provided specifically for those positions. An MPEG stream for example contains image frames that are coded independent of other frames (I-frames) and image frames that are coded dependent on other frames (B frames and P frames). During some forms of trick play only I frames will be needed. Therefore, preferably synchronization information is stored that allows the selection of the appropriate sub-sampled item of decryption information for each I-frame during replay. This may be in the form of a table with pointers to positions of the I-frames and associated pointers to items of decryption information.
However, this requires access to the stream when it is stored. This may be undesirable because it consumes computational capacity, obstructing for example replay of another stream simultaneously with storing, particularly when the stream has to be decrypted to store it.
In one embodiment solves this problem by storing information that associates the subsampled items with intervals in the stored stream following the position where the items were sub-sampled. On replay of information from a position in the stream, the relevant interval is determined and the sub-sampled item associated with the interval is replayed.
In one embodiment this is implemented by using a list of data pointers to selected parts of the stream of encrypted data in the synchronization information. Items of decryption information that enable decryption of the encrypted data following the position pointed at by the pointer are associated with the pointer. During replay it may be detected whether replay crosses a position in the stream to which such a pointer points and in that case the encrypted data associated with that pointer is supplied during replay.
In another embodiment pointers to storage locations that contain or will contain relevant items of decryption information are inserted in the stream during storage, at points in the stored stream where the stream originally contained decryption information (albeit not a subsampled item of decryption information). This form of synchronization information allows items of decryption information to be retrieved and added during replay of the stored encrypted data stream triggered by passage over such points.
These and other advantageous objects and aspects of the method and apparatus according to the invention will be described in more detail using the following figures.
In operation reception unit 10 receives a data stream from input 11. The data stream contains encrypted data, entitlement control messages (ECM's) and entitlement management messages (EMM's), multiplexed in the data stream. The ECM's contain control words for decrypting the encrypted data and the EMM's contain entitlement information, including keys for decrypting control words from the ECM's. Demultiplexer 10 demultiplexes encrypted data, ECM's and EMM's and outputs encrypted data (or a part thereof) to decryption unit 16, ECM's to ECM processing element 142 and EMM's to EMM processing element 140. ECM processing element 142 extracts control words from the ECM and supplies these control words to decryption unit 16. Decryption unit uses the control words to decrypt the encrypted data and supplies decrypted data to rendering device 18, which displays images coded by the data on a display screen and/or renders audio data.
EMM processing element 140 extracts entitlement information from the EMM's and uses this information to control for which encrypted data ECM processing element 142 supplies control words to decryption unit 16. EMM processing element 140 also obtains decryption keys from the EMM's and supplies these keys to ECM processing element 142 for use in decryption of the control words from the ECM's.
Recording Streams of Encrypted Data
The recording side contains a demultiplexer 21 and a decryption information recording unit 22. The demultiplexer 21 has an input 21a coupled to an input of the apparatus, which may be coupled for example to a cable TV system or a satellite broadcast receiving unit. Demultiplexer 21 has outputs coupled to the mass storage unit 20 and to decryption information recording unit 22. Decryption information recording unit 22 has an output coupled to mass storage unit 20.
The playback side contains a control unit 24, a decryption information access unit 25 and a reception unit 26. The control unit 24 has a control output coupled to reception unit 26 and an address selection output coupled to mass storage unit 20 and decryption information access unit 25. Decryption information access unit 25 has inputs and output coupled to mass storage unit 20 and an output coupled to reception unit 26.
The conditional access apparatus of
The decryption information supplies the control words (for example in ECM's). Typically each control word is supplied a number of times distributed over the segment for which it is needed. This ensures that each control word will be available on short notice when a subscriber selects the data stream. Moreover the control word is preferably also supplied prior to the segment. This allows time to decrypt the control word before it is needed. Thus time intervals are created in each of which the control word for a respective segment is supplied. These time intervals do not coincide with the segments. The final part of a time interval in which one control word is supplied generally overlaps with the initial part of a next time interval in which the next control word is supplied. In each ECM for example two control words are usually included, one for a current segment and one for a next segment. When the content of the ECM's changes, the oldest control word is omitted and a next control word is included.
A second signal 32
It should be noted that transitions in the first signal 30 preferably do not need to coincide with transitions in the second signal 32. That is, the time that encrypted data starts to come in for which a new control word is needed does not in general coincide with the time when a new control word starts to be supplied. This relaxes the timing requirement on the data stream.
The apparatus of
Decryption information recording unit 22 writes items of decryption information to mass storage unit 20 in encrypted form. For this, the original encrypted decryption information (e.g. a copy of an ECM) may be used, or, alternatively, decryption information recording unit 22 may first decrypt the decryption information and re-encrypt it with some key before writing it to mass storage unit 20. The latter has the advantage that the original authorization key from the EMM's is no longer needed to decrypt the control words. This authorization key may not be available at the time of replay, or at least it might require considerable overhead if this authorization key would have to be used at that time. The key that is used for re-encryption may be a key that is local to the apparatus. The apparatus may be entitled to use this key indefinitely, or only for a limited period during which replay is permitted.
In addition to the decryption information, decryption information recording unit 22 writes synchronization information to mass storage unit, which links the items of synchronization information to points in the stream of encrypted data.
In the embodiment of
For example, for each detected isolated frame a pair of addresses (X,Y) is stored in an entry in the block of access information 58. The addresses X,Y constitute pointers 53, 55 addressing locations in mass storage unit 20 that store encrypted data that contain an isolated frame and an item of decryption information for that encrypted data respectively. The addresses (X, Y) may be absolute addresses for mass storage unit, or relative addresses or counter values, indicating a position within relevant stored information blocks 52, 54 etc.
During replay in certain trick modes the isolated frames will be used to replay the stream, omitting other frames. However, it will be understood that the invention is not limited to the use of isolated frames for this replay. Parts of the data stream that can otherwise be used for trick play may be used instead. In this case isolated frame detection unit 42 may be replaced by a unit for detecting any other type of relevant information in the stream of data, and the apparatus provides pointers to parts 56 of the stream 52 of encrypted data that contain this type op information.
Linking Decryption Information to Points in the Stream
Various methods may be used to link the items of decryption information to points in the stream of encrypted data, also when the embodiment of
In this embodiment decryption information recording unit 22 records a position in the encrypted data stream associated with the decryption information in each item. In one further embodiment this may be a pointer to stored encrypted data that was received immediately adjacent at the position of the pointer in the incoming stream. Recording of pointers to locations in the stream enables playback of the decryption information with the same timing relative to the encrypted data as at the time of original reception.
As will be described in the following the decryption information in an item of block 64 may correspond to decryption information in a plurality of messages from the stream, only one item of decryption information being stored for that plurality. In this case, it may be sufficient to supply the encryption information from the item only once during replay, but for security reasons it may be necessary to replay the decryption information at each point where the original stream contained a message with decryption information.
In an embodiment where decryption information recording unit 22 only stores one item for a plurality of messages, therefore, decryption information recording unit 22 detects positions of encrypted data in the incoming stream where messages with encryption information corresponding to the item occur and decryption information recording unit 22 stores information about a plurality of pointers 68 in association with the item, the pointers 68 pointing to positions in the stream of encrypted data where messages with encryption information corresponding to the item occurred in the incoming stream.
In another embodiment time-stamp information may be stored instead of the one or more pointers 68. The time stamp information specifies a time value at which the decryption information should be played back. This makes it possible to supply the decryption information at time points determined by replay of the stream. In this embodiment decryption information recording unit 22 samples the time stamp from a time stamp counter (not shown) that is updated with progression of the incoming stream. In the case of prior art MPEG data in the stream for example, the stream contains information that makes it possible to assign time values to different points in the stream. Decryption information recording unit 22 may use these time values.
This too can be realized in various ways. In one embodiment decryption information recording unit 22 inserts messages 76 with the pointer information among the encrypted data 52, so that effectively the incoming stream from input 21a is stored in mass storage unit 20, except that the messages with decryption information are replaced by messages with pointer information. A special so-called “PID” (Packet ID) may be used for this. In a conventional conditional access stream it is known to structure the stream into packets of data, each having a PID. Different PID values correspond to separate substreams, such as an image stream, an audio stream etc. Tables are transmitted that specify the relation between PID values and streams. During decryption of the stream a receiving unit selects packets according to PID value. When the pointer information is contained in packets with a PID that is specific to pointer information it is easy to select the pointer information from the stream on replay.
In another embodiment demultiplexer 21 stores the original messages with the encrypted data in mass storage unit 20. Decryption information recording unit 22 replaces part of the messages by pointer information. In this way, it is straightforward to maintain the original timing during replay.
For this embodiment it is desirable that the service provider that broadcasts the stream reserves space in the messages with decryption information for inserting the pointer information. The service provider may even insert the pointer information into the stream. That is, the service provider may broadcast a stream that contains encrypted data and messages with decryption information to decrypt encrypted data from segments of the stream, wherein the messages contain pointer information that identify a rank number of the message during transmission of a program (the first message having rank number “1”, the second message rank number “2” etc.). Alternatively the pointer information may specify the rank number of the decryption information in the message, this rank number being incremented each time when messages with new decryption starts being included in the messages. When decryption information recording unit 22 stores the items of decryption information so that they can be retrieved using this pointer information, this pointer information may be used in an apparatus as shown in
The service provider may even provide the items of decrypted information. In that case decryption information recording unit 22 may be omitted. The items needed to decrypt a recorded program may be transmitted by the provider to the subscriber as part of the stream, or via a separate information exchange, for example via a telephone line or via the Internet. Thus, the service provider may selectively enable subscribers to replay recorded data, for example after payment of a fee.
Preferably the items of decryption information are not stored among the encrypted data. This allows decryption information recording unit 22 to decrypt and encrypt the decryption information for later use, without having to buffer encrypted data during decryption and encryption.
Sub-Sampling
In embodiments of the apparatus of
In a preferred embodiment decryption information recording unit 22 triggers subsampling of the ECM's upon detection of transitions in the content of the ECM's, i.e. on the edges of the second signal 32. Preferably the first ECM after such an edge is used to store the item of decryption information. A third signal 34 in
Replay
During replay, control unit 24 determines which parts of the stream of encrypted data are retrieved from mass storage unit 20 and when. Control unit 24 does so by sending address information to mass storage unit 20, such as an address, a disk or tape position indicator of the required encrypted data. In response, mass storage unit 20 outputs the required data to receiving unit 26. At the same time decryption information access unit 25 detects which item of decryption information corresponds to the accessed data and whether it is necessary to supply decryption information from that item to receiving unit 26, for example because that decryption information has not yet been supplied.
There are various possible methods of determining whether decryption information must be supplied from an item of decryption information. For example, decryption information access unit 25 may monitor the addresses of the accessed encrypted data, and if the addresses pass a point for which an item has been stored, decryption information access unit 25 supplies decryption information from that item to receiving unit 26. Decryption information access unit 25 may use indications such as a single address value (or position value) per item indicating a position in the stream for the item, or a plurality of address values per item, indicating different positions in the stream where the item may be supplied. Thus the timing of the original stream can be constructed very accurately.
In the case where time stamps are stored in association with the items, decryption information access unit 25 may supply the time stamps at a time when a time counter (not shown) at the replay side reaches the value of the time stamp. (The time counter may be used in a conventional way to control correct timing of replay of the encrypted data).
As an alternative, decryption information access unit 25 may detect pointers to items of encryption information from among the retrieved encrypted data, loads the item if it has not yet been loaded and supplies the decryption information from the item to receiving unit. In the case where messages with pointer information are stored among the encrypted data, for example, decryption information access unit 25 may detect these messages (for example from the PID of these messages) and extract the pointer information. Decryption information access unit 25 uses the extracted pointer information to select the corresponding item of decryption information and supplies that information to receiving unit 26.
Receiving unit 25 basically operates in the same way as receiving unit 10 of
Normally, the encrypted data is played back in the temporal pattern in which it was received at input 21a, that is in a sequence and at a speed required for normal viewing.
Trick Play
The apparatus of
Decryption information access unit 25 supplies decryption information needed to decrypt the retrieved encrypted information. For example, decryption information access unit 25 may retrieve a list of points in the stream of encrypted data for which items of decryption information are stored, the list containing associated items of decryption information or pointers thereto. In this case decryption information access unit 25 monitors the addresses of the encrypted data that will be supplied by control unit 24. When access unit determines that the addresses are about to access addresses past a point for which decryption information is stored decryption information, access unit 25 supplies the decryption information from the associated item of decryption information to receiving unit 26.
Preferably, the access unit 25 retrieves the decryption information at a selected point in time so that this point in time is followed by at least a predetermined time interval before the encrypted data is supplied. That is, the same predetermined time interval is available to decrypt the item of decryption information, independent of the speed of replay.
In the embodiment of
Preferably the apparatus creates a delay between supply of the decryption information and the corresponding encrypted data. This may be realized for example by providing a buffer (not shown) between mass storage unit 20 and receiving unit 26 to buffer the data during said delay, or by supplying information about addresses from which it is intended to retrieve encrypted information early to decryption information access unit 25. This allows decryption information access unit 25 to supply decryption information in advance so that receiving unit 26 has time to decrypt the control words before they are needed.
In some types of trick mode play (e.g. reverse play back) the encrypted data may be retrieved at least partially in reverse order. In such a mode decryption information access unit 25 preferably determines points in the encrypted data where an item of decryption information would become valid during forward play. When play back passes such a point in reverse direction decryption information access unit 25 selects an item of decryption information that would chronologically be a last preceding item before that point during normal play. Obviously other methods of selecting the item may be used, such as associating items with intervals starting and ending at respective points, and detecting whether play back will access data in such an interval to select the associated item. Decryption information access unit 25 then outputs the selected item for use during reverse play. (Of course, although useable, this is not needed in the embodiment of
In this way the apparatus allows for replay and/or trick mode replay of stored encrypted data. The mass storage unit 20 does not need to be tamperproof: replaceable memories, discs or tapes may be used. Preferably parts of the receiving unit 26 are made tamper proof (for example by using a secure device, such as a smart card, to decrypt control words), as well as, in the case of the embodiment of
Other Aspects
It will be appreciated that the invention is not limited to the embodiments shown. For example, although it is preferred, for ease of access, that both encrypted data and the items of decryption information are stored in the same mass storage unit 20, this is of course not necessary. A separate memory may be used for items of decryption information. Also, although the items of decryption information are preferably retrieved as playback progresses, it is also possible to retrieve all relevant items for a recorded stream as a block in advance. This is facilitated by the use of subsampling to select the items that are stored in the first place. By using items that have been preloaded as a block, decryption information access unit 25 is able to respond quickly to the addresses of encrypted data that control unit 24 selects for replay.
Number | Date | Country | Kind |
---|---|---|---|
02077289.3 | Jun 2002 | EP | regional |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/IB03/02362 | 5/27/2003 | WO | 12/7/2004 |