The present invention relates to the field of data decoding. More particularly, the invention relates to a method for efficiently decoding a number of data channels.
As of today, TV channels, or digital media content services, are presently communicated by: land-based radio-type broadcast transmissions, cable network transmissions or space satellite transmissions. In order to limit reception to registered subscribers, it is common practice for content providers to scramble, i,e. encode, their transmissions and to require their registered customers to use a special set-top control box which uses deciphering techniques to decode the received signals. The term of encode refers hereinafter to include scrambling, ciphering or any other process of encrypting data, similarly, the term of decode refers hereinafter to include descrambling, deciphering or any other process of decrypting data.
In order to efficiently encode digital media contents, each media content is divided into data blocks where each block is encoded using a cipher key. After encoding, the encoded media contents are sent to the customers' set-top box. The encoding technique may be a symmetric encoding technique such as the Data Encryption Standard (DES). In symmetric encoding, the cipher key used for encoding data is the same key used for decoding the data. Therefore, the encoded media contents, i.e. the encoded blocks, are typically supplied with their corresponding encoding/decoding cipher key to the customer's set-top box for decoding. Typically, the supplied cipher key itself is also encrypted in order to eliminate content theft. In many cases, the provider of the media contents first encodes the media contents, using one general cipher key, after which he encodes the general cipher key with a customer-specific cipher key for each of his customers. The general cipher key may be decrypted only in the customer's setup box which has a specific decrypting key stored within. Thus the encoded media contents may be broadcasted over open transmission channels, such as stated before, where only the registered customers are able to view the media contents.
It is an object of the present invention to provide a method for efficiently encoding/decoding a number of data blocks.
It is another object of the present invention to provide a reduced hardware system for efficiently encoding/decoding a number of data channels.
Other objects and advantages of the invention will become apparent as the description proceeds.
The present invention relates to a method for efficiently decoding a plurality of ciphertexts comprising the steps of: (a) receiving at least one cipher key associated with said ciphertexts; (b) expanding said at least one cipher key for producing its corresponding subkeys; (c) storing said subkeys in a memory; (d) loading said subkeys from said memory; and (e) decoding said ciphertexts using said loaded subkeys.
Preferably, the plurality of ciphertexts is received from different data channels.
The present invention relates to a system for efficiently decoding a plurality of ciphertexts comprising: (a) a processing unit for expanding at least one cipher key into subkeys; (b) memory for storing said subkeys; and (c) a plurality of cipher block decoders which receive said subkeys from said memory and decode said ciphertexts using said subkeys.
In one embodiment, the processing unit is implemented in hardware.
In another embodiment, the processing unit is implemented in software running on a general processing unit.
Preferably, the processing unit is used for encoding and decoding.
In one embodiment, the memory may store keys from different standards.
In the drawings:
A block cipher is a symmetric key cipher which operates on fixed-length groups of bits, termed blocks, with an unvarying transformation. When encoding, a block cipher might take, for example, a 128-bit block of plaintext as input, and output a corresponding 128-bit block of ciphertext. The exact transformation is controlled using a cipher key. Prior art block ciphers, which are also referred as substitution-permutation networks, involve a sequential repetition of an internal function called round function. The round function uses in each repetition a derivative of the cipher key known as a subkey for encoding. The basic idea of the round function is to build a complex encoding scheme by composing several simple operations which offer complementary, but individually insufficient, protection. Basic operations include transpositions, translations (e.g., XOR) and linear transformations, arithmetic operations, modular multiplication, and simple substitutions and permutation (non-linear transformations). Decoding is similar to encoding where, in this example; a 128-bit block of ciphertext is decoded using the cipher key, for yielding the original 128-bit block of plaintext. The full description of the encoding and decoding methods can be found in the Federal Information Processing Standards Publication 46-3, Oct. 25, 1999 of the “DATA ENCRYPTION STANDARD” (DES). Other descriptions of the encoding and decoding methods are also present in the Federal Information Processing Standards Publication 197, Nov. 26, 2001 of the “ADVANCED ENCRYPTION STANDARD” (AES), the ISO/IEC standard 9979 (9)—otherwise known as Mulit2, the 4C Entity, LLC. Jan. 17, 2003—C2, X. Lai, J. L. Massey and S. Murphy, Markov ciphers and differential cryptanalysis, Advances in Cryptology—Eurocrypt '91, Springer-Verlag (1992), 17-38—IDEA, and Block encryption algorithm with data-dependent rotations—such as U.S. Pat. No. 5,724,428.
The desirable characteristics for a block cipher include: (a) that each bit of the ciphertext should depend on all bits of the cipher key and all bits of the plaintext, (b) that there should be no statistical relationship evident between the plaintext and the ciphertext, (c) that altering any single plaintext or cipher key bit should alter each ciphertext bit with probability of 0.5, and (d) that altering a ciphertext bit should result in an unpredictable change to the recovered plaintext.
In one of the embodiments the same processing unit and memory may be used for encoding and decoding.
In one of the embodiments the same memory may be used for storing subkeys produced by different standards. The memory may be connected to a plurality of processing units, where each processing unit performs according to one of the standards. For example a memory may be connected to a processing unit, which expands keys according to the DES standard, and to a processing unit which expands keys according to the AES standard.
In one of the embodiments the key expansion processing unit is implemented in hardware. In one embodiment the key expansion processing unit is implemented in a time relaxed hardware design as opposed to the time strict hardware design of the hardware circuits decoding the cipher blocks. In another embodiment the key expansion processing unit may be implemented in software processed by a general processing unit.
In one of the embodiments the key expansion processing unit and a number of cipher block decoders are implemented together, where each cipher block decoder decodes an incoming data channel in a continual manner, cipher block after cipher block, and the key expansion processing unit services all the cipher blocks decoders in turns. In one of the embodiments the data channels are media channels.
For the sake of brevity an example is set forth for depicting the process of a key expansion processing unit according to an embodiment of the invention. In this example many media channels are received in parallel. If 1 full HD channel is transmitted at a rate of 8 MB/s video together with two audio channels each 384 KB/s and additional information, then the total data rate can be assumed at around 9 MB/s. An AES decoder can decode 128 bits in a cipher block, meaning that 74K AES cipher blocks are required to be processed each second in order to decode one channel (9M/128=9*220/27=9*213˜74K AES cipher blocks per second). If for example each AES cipher block round requires 500 machine cycles, then the total machine cycles required for decoding one full HD channel is 37M machine cycles per second. Since the cipher blocks are required to be encoded in tandem, in order to decode 1 HD channel without causing delays requires the cipher block decoders to process in a rate at least 40 MHz. In this example the key expansion circuit requires an estimated 4K machine cycles for expanding one cipher key into a set of subkeys. Thus the key expansion processing unit may expand one key in a 0.0001 sec, in a 40 MHz rate, effectively allowing the key expansion processing unit to expand many keys for many AES cipher blocks. Since several blocks share the same key, it is apparent that even if multiple AES cipher block decoders are required in order to support this scenario of receiving and displaying multiple HD channels only one key expansion engine is required, which can service these AES cipher block decoders.
While some embodiments of the invention have been described by way of illustration, it will be apparent that the invention can be carried into practice with many modifications, variations and adaptations, and with the use of numerous equivalents or alternative solutions that are within the scope of persons skilled in the art, without departing from the invention or exceeding the scope of claims.