IP Library Granted Patent US 8,885,818
Granted Patent B2
US 8,885,818 · App. 13/388,426 · Granted Nov 11, 2014

Authentication of data streams

Inventors: Reinhold Boehm (Nürnberg, DE); Alexander Groeschel (Nürnberg, DE); Holger Hoerich (Fürth, DE); Daniel Homm (Nürnberg, DE); Wolfgang A. Schildbach (Nürnberg, DE); Michael Schug (Erlangen, DE); Oliver Watzke (Röthenbach, DE); Martin Wolters (Nürnberg, DE); Thomas Ziegler (Nürnberg, DE)
Assignee: Dolby International AB
G11B20/00086G11B20/00188G11B20/0021H04H60/73H04N21/44016H04L65/602H04N21/23424H04H2201/50H04N21/835H04H20/31H04N21/2541H04N21/435G11B20/00007G11B20/00173H04N21/6332G11B20/00166G11B2020/00028H04H60/37H04N21/8106H04N21/462H04N21/654H04N21/235
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,885,818
App. No.
13/388,426
Granted
Nov 11, 2014
Kind
B2
Abstract

The present document relates to techniques for authentication of data streams. Specifically, the present document relates to the insertion of identifiers into a data stream, such as a Dolby Pulse, AAC or HE AAC bitstream, and the authentication and verification of the data stream based on such identifiers. A method and system for encoding a data stream comprising a plurality of data frames is described. The method comprises the step of generating a cryptographic value of a number N of successive data frames and configuration information, wherein the configuration information comprises information for rendering the data stream. The method then inserts the cryptographic value into the data stream subsequent to the N successive data frames.

Claims (51)

1. A method for encoding a data stream comprising a plurality of data frames, the method comprising:

generating a cryptographic value of a number N of successive data frames and configuration information using a cryptographic hash function; wherein N is greater than one; wherein the configuration information comprises information for rendering the data stream;

inserting the cryptographic value into a frame of the data stream subsequent to the N successive data frames; and

iteratively generating an intermediate cryptographic value of each of the N successive frames using a starting state for the cryptographic hash function; wherein the starting state for the cryptographic hash function for generating the intermediate cryptographic value of a frame of the N successive frames is the intermediate cryptographic value of a previous frame of the N successive frames; wherein the starting state for the cryptographic hash function for generating the intermediate cryptographic value of the first frame of the N successive frames is an intermediate cryptographic value of the configuration information; wherein the cryptographic value which is inserted into a frame of the data stream subsequent to the N successive data frames is the intermediate cryptographic value of the N th frame; and wherein the intermediate cryptographic values of the first to (N−1) th frame are not inserted into the data stream.

2. The method of claim 1 , wherein the method further comprises:

grouping a number N of successive data frames to form a first message; and

grouping the first message with the configuration information to form a second message;

wherein the cryptographic value is generated of the second message.

3. The method of claim 1 , wherein the cryptographic value is inserted as a data stream element <DSE>; wherein the data stream element <DSE> is a syntactic element of the frame of the data stream and wherein the data stream is an MPEG4-AAC or MPEG2-AAC stream.

4. The method of claim 3 , wherein a content of the data stream element <DSE> is aligned to a byte boundary of the data stream.

5. The method of claim 1 , wherein the data frames are AAC or HE-AAC frames.

6. The method of claim 1 , wherein the configuration information comprises at least one of:

an indication of a sampling rate;

an indication of a channel configuration of an audio coding system;

an indication of the number of samples in a data frame.

7. The method of claim 1 , wherein the cryptographic value is generated using a key value.

8. The method of claim 7 , wherein the step of generating a cryptographic value comprises:

calculating an HMAC-MD5 value of the number N of successive data frames and the configuration information.

9. The method of claim 8 , wherein the step of generating a cryptographic value comprises

truncating the HMAC-MD5 value to yield the cryptographic value.

10. The method of claim 9 , wherein the HMAC-MD5 value is truncated to 16, 24, 32, 48, 64, 80, 96 or 112 bits.

11. The method of claim 1 , wherein the cryptographic value of N successive data frames is inserted into a next data frame.

12. The method of claim 1 , further comprising

inserting a synchronization indication subsequent to the N successive data frames, wherein the synchronization indication indicates that the cryptographic value has been inserted.

13. The method of claim 1 , wherein the steps for generating and inserting the cryptographic value are repeated for a plurality of blocks of N successive data frames.

14. The method of claim 13 , wherein the cryptographic value of a block of N successive data frames is generated on the block of N successive data frames comprising the cryptographic value of a previous block of N successive data frames.

15. A non-transitory storage medium having a software program stored thereon, the software program being adapted for execution on a processor and for performing the method steps of claim 1 when carried out on a computing device.

16. A method for verifying a data stream at a decoder, the data stream comprising a plurality of data frames and a cryptographic value associated with a number N of preceding successive data frames, wherein N is greater than one, the method comprising:

generating a second cryptographic value of the number N of successive data frames and configuration information using a cryptographic hash function; wherein the configuration information comprises information for rendering the data stream;

extracting the cryptographic value from a frame of the data stream;

comparing the cryptographic value with the second cryptographic value; and

iteratively generating an intermediate second cryptographic value of each of the N successive frames using a starting state for the cryptographic hash function; wherein the starting state for the cryptographic hash function for generating the intermediate second cryptographic value of a frame of the N successive frames is the intermediate second cryptographic value of a previous frame of the N successive frames; wherein the starting state for the cryptographic hash function for generating the intermediate second cryptographic value of the first frame of the N successive frames is an intermediate second cryptographic value of the configuration information; wherein the second cryptographic value is the intermediate second cryptographic value of the N th frame.

17. The method of claim 16 , wherein the data stream is an MPEG4-AAC or MPEG2-AAC stream; wherein the cryptographic value is extracted from a data stream element <DSE>; and wherein the data stream element <DSE> is a syntactic element of the frame of the data stream.

18. The method of claim 16 , further comprising:

extracting the N successive data frames to form a first message; and

grouping the first message with the configuration information to form a second message;

wherein the second cryptographic value is generated of the second message.

19. The method of claim 16 , wherein the data stream comprises a plurality of N successive data frames and associated cryptographic values and wherein the method further comprises:

determining the number N as the number of frames between two succeeding cryptographic values.

20. A non-transitory storage medium having a software program stored thereon, the software program being adapted for execution on a processor and for performing the method steps of claim 16 when carried out on a computing device.

21. An encoder operable to encode a data stream comprising a plurality of data frames, the encoder comprising:

a hardware processor operable to:

generate a cryptographic value of a number N of successive data frames, wherein N is greater than one, and configuration information using a cryptographic hash function; wherein the configuration information comprises information for rendering the data stream;

insert the cryptographic value into a frame of the data stream subsequent to the N successive data frames; and

iteratively generate an intermediate cryptographic value of each of the N successive frames using a starting state for the cryptographic hash function; wherein the starting state for the cryptographic hash function for generating the intermediate cryptographic value of a frame of the N successive frames is the intermediate cryptographic value of a previous frame of the N successive frames; wherein the starting state for the cryptographic hash function for generating the intermediate cryptographic value of the first frame of the N successive frames is an intermediate cryptographic value of the configuration information; wherein the cryptographic value which is inserted into a frame of the data stream subsequent to the N successive data frames is the intermediate cryptographic value of the N th frame; and wherein the intermediate cryptographic values of the first to (N−1) th frame are not inserted into the data stream.

22. A decoder operable to verify a data stream comprising a plurality of data frames and a cryptographic value associated with a number N of preceding successive data frames, wherein N is greater than one, the decoder comprising:

a hardware processor operable to:

generate a second cryptographic value of the number N of successive data frames and configuration information using a cryptographic hash function; wherein the configuration information comprises information for rendering the data stream;

extract the cryptographic value from a frame of the data stream;

compare the cryptographic value with the second cryptographic value; and

iteratively generate an intermediate second cryptographic value of each of the N successive frames using a starting state for the cryptographic hash function; wherein the starting state for the cryptographic hash function for generating the intermediate second cryptographic value of a frame of the N successive frames is the intermediate second cryptographic value of a previous frame of the N successive frames; wherein the starting state for the cryptographic hash function for generating the intermediate second cryptographic value of the first frame of the N successive frames is an intermediate second cryptographic value of the configuration information; wherein the second cryptographic value is the intermediate second cryptographic value of the N th frame.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2012
From: BOEHM, REINHOLD; GROESCHEL, ALEXANDER; HOERICH, HOLGER; HOMM, DANIEL; SCHILDBACH, WOLFGANG; SCHUG, MICHAEL; WATZKE, OLIVER; WOLTERS, MARTIN; ZIEGLER, THOMAS
To: DOLBY INTERNATIONAL AB
Reel/Frame 027636/0213 →
Continuity (2)
Provisional Application 61232295 · Aug 7, 2009
Related Publication 20120128151A1 · May 24, 2012