Method for ciphering a compressed audio or video stream with error tolerance
AssigneeSTMicroelectronics S.r.l.
InventorsJean Nicolai, William Orlando
Life of this patent
Estimating the term…
Abstract
A method ciphers a standardized stream of compressed audio or video data, wherein at least one part of the bits of data packets delimited by two consecutive synchronization markers is ciphered by pseudo-random stream.
Claims25
A method for ciphering a compressed audio or video data stream that includes a plurality of data packets each having data bits to be ciphered and each delimited by two consecutive synchronization markers, the method comprising:
- for each data packet, producing a new pseudo-random cipher stream at each initial synchronization marker of the data packet, each pseudo-random cipher stream being different for each data packet;
- for each data packet, applying the cipher stream for the data packet bit by bit, with the data bits to be ciphered for the data packet, using an “exclusive OR” function, to obtain ciphered data bits;
- and
- replacing in the data stream data bits to be ciphered with the ciphered data bits at positions the data bits to be ciphered respectively occupied before ciphering;
- wherein each cipher stream is generated by processing non-ciphered data of the data stream and wherein the compressed audio or video data to which the method is applied are partly coded by tables of reversible codewords of variable length and of non-reversible codewords of variable length, which are signed or unsigned.
A method for ciphering a compressed audio or video data stream that includes a plurality of data packets each having data bits to be ciphered and each delimited by two consecutive synchronization markers, the method comprising:
- for each data packet, producing a new pseudo-random cipher stream at each initial synchronization marker of the data packet, each pseudo-random cipher stream being different for each data packet;
- for each data packet, applying the cipher stream for the data packet bit by bit, with the data bits to be ciphered for the data packet, using an “exclusive OR” function, to obtain ciphered data bits;
- and
- replacing in the data stream data bits to be ciphered with the ciphered data bits at positions the data bits to be ciphered respectively occupied before ciphering;
- wherein each cipher stream is generated by processing non-ciphered data of the data stream and for each data packet, the producing step produces at least one block of the cipher stream for the data packet by ciphering at least one non-ciphered datum of the data stream by a symmetric block cipher algorithm, and then by applying a hashing algorithm to a result of the block cipher of the non-ciphered datum.
A method for ciphering a compressed audio or video data stream that includes a plurality of data packets each having data bits to be ciphered and each delimited by two consecutive synchronization markers, the method comprising:
- for each data packet, producing a new pseudo-random cipher stream at each initial synchronization marker of the data packet, each pseudo-random cipher stream being different for each data packet;
- for each data packet, applying the cipher stream for the data packet bit by bit, with the data bits to be ciphered for the data packet, using an “exclusive OR” function, to obtain ciphered data bits;
- and
- replacing in the data stream data bits to be ciphered with the ciphered data bits at positions the data bits to be ciphered respectively occupied before ciphering;
- wherein each cipher stream is generated by processing non-ciphered data of the data stream and for each data packet, the producing step comprises processing a non-ciphered datum of the data packet by using a secret key, unique and characteristic of the data stream.
A method for ciphering a compressed audio or video data stream that includes a plurality of data packets each having data bits to be ciphered and each delimited by two consecutive synchronization markers, the method comprising:
- for each data packet, producing a new pseudo-random cipher stream at each initial synchronization marker of the data packet, each pseudo-random cipher stream being different for each data packet;
- for each data packet, applying the cipher stream for the data packet bit by bit, with the data bits to be ciphered for the data packet, using an “exclusive OR” function, to obtain ciphered data bits;
- and
- replacing in the data stream data bits to be ciphered with the ciphered data bits at positions the data bits to be ciphered respectively occupied before ciphering;
- wherein each cipher stream is generated by processing non-ciphered data of the data stream and wherein for each data packet, the producing step comprises processing a non-ciphered datum, not belonging to the data packet, by using a secret first key, unique and characteristic of the stream.
A digital encoder/decoder that ciphers or deciphers an input data stream that is either a compressed audio or video data stream or a ciphered data stream, the input data stream including plural data packets that each include plural input codewords, the encoder/decoder comprising:
- an input buffer configured to temporarily store input data bits of each data packet;
- a memory to store a table of stored codewords of different lengths, the table including, for each stored codeword, an index and a parameter defining bits of the codeword to be ciphered or deciphered;
- stream cipher and decipher circuitry configured to process the input data stream by:
- for each data packet, producing a new pseudo-random cipher stream at an initial synchronization marker of the data packet, each pseudo-random cipher stream being different for each data packet;
- for each data packet, applying the cipher stream for the data packet bit by bit, with input data bits of the data packet, using an “exclusive OR” function, to obtain ciphered or deciphered data bits;
- and
- for each data packet, replacing in the data packet the input data bits with the ciphered or non-ciphered data bits at positions the input data bits respectively occupied before being replaced, the cipher stream of each data packet being generated by processing non-ciphered data of the data stream;
- and
- a controller configured to cause the stream cipher and decipher circuitry to:
- apply the exclusive OR function to the bits stored in the buffer when the buffer is full or when a synchronization marker of a subsequent data packet has been reached;
- and
- replace input bits of the input data stream with the bits ciphered or deciphered;
- and
- empty the buffer.
A computer-readable medium, on which a program code is saved that causes a computer to cipher a compressed data stream, that includes a plurality of data packets each having data bits to be ciphered and each delimited by two consecutive synchronization markers, by a method comprising:
- for each data packet, producing a new pseudo-random cipher stream at each initial synchronization marker of the data packet, each pseudo-random cipher stream being different for each data packet;
- for each data packet, applying the cipher stream for the data packet bit by bit, with the data bits to be ciphered for the data packet, using an “exclusive OR” function, to obtain ciphered data bits;
- and
- replacing in the data stream data bits to be ciphered with the ciphered data bits at positions the data bits to be ciphered respectively occupied before ciphering, wherein each cipher stream is generated by processing non-ciphered data of the data stream and for each data packet, the producing step produces at least one block of the cipher stream for the data packet by ciphering at least one non-ciphered datum of the data stream by a symmetric block cipher algorithm, and then by applying a hashing algorithm to a result of the block cipher of the non-ciphered datum.
A computer-readable medium, on which a program code is saved that causes a computer to cipher a compressed data stream, that includes a plurality of data packets each having data bits to be ciphered and each delimited by two consecutive synchronization markers, by a method comprising:
- for each data packet, producing a new pseudo-random cipher stream at each initial synchronization marker of the data packet, each pseudo-random cipher stream being different for each data packet;
- for each data packet, applying the cipher stream for the data packet bit by bit, with the data bits to be ciphered for the data packet, using an “exclusive OR” function, to obtain ciphered data bits;
- and
- replacing in the data stream data bits to be ciphered with the ciphered data bits at positions the data bits to be ciphered respectively occupied before ciphering, wherein each cipher stream is generated by processing non-ciphered data of the data stream, and for each data packet, the producing step comprises:
- block-ciphering the non-ciphered data using a secret first key;
- and
- using a hashing algorithm to produce the cipher stream for the data packet using a result of the block-ciphering of the non-ciphered data.
A computer-readable medium, on which a program code is saved that causes a computer to cipher a compressed data stream, that includes a plurality of data packets each having data bits to be ciphered and each delimited by two consecutive synchronization markers, by a method comprising:
- for each data packet, producing a new pseudo-random cipher stream at each initial synchronization marker of the data packet, each pseudo-random cipher stream being different for each data packet;
- for each data packet, applying the cipher stream for the data packet bit by bit, with the data bits to be ciphered for the data packet, using an “exclusive OR” function, to obtain ciphered data bits;
- and
- replacing in the data stream data bits to be ciphered with the ciphered data bits at positions the data bits to be ciphered respectively occupied before ciphering, wherein each cipher stream is generated by processing non-ciphered data of the data stream and the compressed data to which the method is applied comprises audio or video data partly coded by tables of reversible codewords of variable length and of non-reversible codewords of variable length, which are signed or unsigned, and wherein the data bits to be ciphered are all bits of the packet that result in codewords of the codeword table, after being subjected to the producing and applying steps.
A computer-readable medium, on which a program code is saved that causes a computer to cipher a compressed data stream, that includes a plurality of data packets each having data bits to be ciphered and each delimited by two consecutive synchronization markers, by a method comprising:
- for each data packet, producing a new pseudo-random cipher stream at each initial synchronization marker of the data packet, each pseudo-random cipher stream being different for each data packet;
- for each data packet, applying the cipher stream for the data packet bit by bit, with the data bits to be ciphered for the data packet, using an “exclusive OR” function, to obtain ciphered data bits;
- and
- replacing in the data stream data bits to be ciphered with the ciphered data bits at positions the data bits to be ciphered respectively occupied before ciphering, wherein each cipher stream is generated by processing non-ciphered data of the data stream and the compressed data to which the method is applied comprises audio or video data partly coded by tables of reversible codewords of variable length and of non-reversible codewords of variable length, which are signed or unsigned, the method further comprising adding to the table of codewords an index for identifying each codeword of the table, as well as at least one parameter which defines, for each codeword of the table, a number and a position, in the codeword, of each bit to be ciphered.
A method for deciphering an audio or video ciphered data stream that includes a plurality of data packets each having input data bits to be deciphered and each delimited by two consecutive synchronization markers, the method comprising:
- for each data packet, producing a new pseudo-random cipher stream at each initial synchronization marker of the data packet, each pseudo-random cipher stream being different for each data packet;
- for each data packet, applying the cipher stream for the data packet bit by bit, with the input data bits for the data packet, using an “exclusive OR” function, to obtain deciphered data bits;
- and
- replacing in the data stream the input data bits with the ciphered data bits at positions the input data bits respectively occupied before deciphering, wherein each cipher stream is generated by processing non-ciphered data of the data stream and for each data packet, the producing step produces at least one block of the cipher stream for the data packet by ciphering at least one non-ciphered datum of the data stream by a symmetric block cipher algorithm, and then by applying a hashing algorithm to a result of the block cipher of the non-ciphered datum.
A method for deciphering an audio or video ciphered data stream that includes a plurality of data packets each having input data bits to be deciphered and each delimited by two consecutive synchronization markers, the method comprising:
- for each data packet, producing a new pseudo-random cipher stream at each initial synchronization marker of the data packet, each pseudo-random cipher stream being different for each data packet;
- for each data packet, applying the cipher stream for the data packet bit by bit, with the input data bits for the data packet, using an “exclusive OR” function, to obtain deciphered data bits;
- and
- replacing in the data stream the input data bits with the ciphered data bits at positions the input data bits respectively occupied before deciphering, wherein each cipher stream is generated by processing non-ciphered data of the data stream and for each data packet, the producing step comprises:
- block-ciphering the non-ciphered data using a secret first key;
- and
- using a hashing algorithm to produce the cipher stream for the data packet using a result of the block-ciphering of the non-ciphered data.
A method for deciphering an audio or video ciphered data stream that includes a plurality of data packets each having input data bits to be deciphered and each delimited by two consecutive synchronization markers, the method comprising:
- for each data packet, producing a new pseudo-random cipher stream at each initial synchronization marker of the data packet, each pseudo-random cipher stream being different for each data packet;
- for each data packet, applying the cipher stream for the data packet bit by bit, with the input data bits for the data packet, using an “exclusive OR” function, to obtain deciphered data bits;
- and
- replacing in the data stream the input data bits with the ciphered data bits at positions the input data bits respectively occupied before deciphering, wherein each cipher stream is generated by processing non-ciphered data of the data stream and the data packets to which the method is applied are partly coded by tables of reversible codewords of variable length and of non-reversible codewords of variable length, which are signed or unsigned, and wherein the input data bits to be ciphered are all bits of the data packets that result in codewords of the codeword table, after being subjected to the producing and applying steps.
A method for deciphering an audio or video ciphered data stream that includes a plurality of data packets each having input data bits to be deciphered and each delimited by two consecutive synchronization markers, the method comprising:
- for each data packet, producing a new pseudo-random cipher stream at each initial synchronization marker of the data packet, each pseudo-random cipher stream being different for each data packet;
- for each data packet, applying the cipher stream for the data packet bit by bit, with the input data bits for the data packet, using an “exclusive OR” function, to obtain deciphered data bits;
- and
- replacing in the data stream the input data bits with the ciphered data bits at positions the input data bits respectively occupied before deciphering, wherein each cipher stream is generated by processing non-ciphered data of the data stream and the data packets to which the method is applied are partly coded by tables of reversible codewords of variable length and of non-reversible codewords of variable length, which are signed or unsigned, the method further comprising adding to the table of codewords an index for identifying each codeword of the table, as well as at least one parameter which defines, for each codeword of the table, a number and a position, in the codeword, of each bit to be ciphered.
Dependencies are inferred from the claim text.