BR112012002831B1 - Método para codificar um fluxo de dados, método para verificar um fluxo de dados, fluxo de dados, codificador, decodificador, meio de armazenamento e método para concatenar um primeiro e um segundo fluxos de bits - Google Patents

Método para codificar um fluxo de dados, método para verificar um fluxo de dados, fluxo de dados, codificador, decodificador, meio de armazenamento e método para concatenar um primeiro e um segundo fluxos de bits Download PDF

Info

Publication number
BR112012002831B1
BR112012002831B1 BR112012002831-6A BR112012002831A BR112012002831B1 BR 112012002831 B1 BR112012002831 B1 BR 112012002831B1 BR 112012002831 A BR112012002831 A BR 112012002831A BR 112012002831 B1 BR112012002831 B1 BR 112012002831B1
Authority
BR
Brazil
Prior art keywords
data
cryptographic value
frames
successive
frame
Prior art date
Application number
BR112012002831-6A
Other languages
English (en)
Other versions
BR112012002831A2 (pt
Inventor
Reinhold Boehm
Alexander Groeschel
Holger Hoerich
Daniel Homm
Wolfgang A. Schildbach
Michael Schug
Oliver Watzke
Martin Wolters
Thomas Ziegler
Original Assignee
Dolby International Ab
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dolby International Ab filed Critical Dolby International Ab
Publication of BR112012002831A2 publication Critical patent/BR112012002831A2/pt
Publication of BR112012002831B1 publication Critical patent/BR112012002831B1/pt

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2347Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving video stream encryption
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/00166Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which result in a restriction to authorised contents recorded on or reproduced from a record carrier, e.g. music or software
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/00166Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which result in a restriction to authorised contents recorded on or reproduced from a record carrier, e.g. music or software
    • G11B20/00173Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which result in a restriction to authorised contents recorded on or reproduced from a record carrier, e.g. music or software wherein the origin of the content is checked, e.g. determining whether the content has originally been retrieved from a legal disc copy or another trusted source
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/00188Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which result in a restriction to authorised devices recording or reproducing contents to/from a record carrier
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/0021Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H20/00Arrangements for broadcast or for distribution combined with broadcast
    • H04H20/28Arrangements for simultaneous broadcast of plural pieces of information
    • H04H20/30Arrangements for simultaneous broadcast of plural pieces of information by a single channel
    • H04H20/31Arrangements for simultaneous broadcast of plural pieces of information by a single channel using in-band signals, e.g. subsonic or cue signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H60/00Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
    • H04H60/35Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users
    • H04H60/37Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users for identifying segments of broadcast information, e.g. scenes or extracting programme ID
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H60/00Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
    • H04H60/68Systems specially adapted for using specific information, e.g. geographical or meteorological information
    • H04H60/73Systems specially adapted for using specific information, e.g. geographical or meteorological information using meta-information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/23424Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/254Management at additional data server, e.g. shopping server, rights management server
    • H04N21/2541Rights Management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44016Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving splicing one content stream with another content stream, e.g. for substituting a video clip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/633Control signals issued by server directed to the network components or client
    • H04N21/6332Control signals issued by server directed to the network components or client directed to client
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/654Transmission by server directed to the client
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8106Monomedia components thereof involving special audio data, e.g. different tracks for different languages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • H04N21/8352Generation of protective data, e.g. certificates involving content or source identification data, e.g. Unique Material Identifier [UMID]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00007Time or data compression or expansion
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00007Time or data compression or expansion
    • G11B2020/00014Time or data compression or expansion the compressed signal being an audio signal
    • G11B2020/00028Advanced audio coding [AAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H2201/00Aspects of broadcast communication
    • H04H2201/50Aspects of broadcast communication characterised by the use of watermarks

Abstract

AUTENTICAÇÃO DE FLUXOS DE DADOS. A presente invenção refere-se às técnicas para autenticação e verificação de fluxos de dados. Especificamente, a invenção refere-se à inserção de identificadores em um fluxo de dados, tal como um fluxo de bits Dolby Pulse, AAC ou HE AAC, e as autenticação e verificação do fluxo de dados baseadas nesses identificadores. Um método e um sistema para codificar um fluxo de dados, compreendendo uma pluralidade de quadros de dados, são descritos. O método compreende a etapa de gerar um valor criptográfico de um número N de quadros de dados sucessivos e informações de configuração, em que as informações de configuração compreendem informações para sintetizar o fluxo de dados. O método, então, insere o valor criptográfico no fluxo de dados, subsequente aos N sucessivos quadros de dados.

Description

CAMPO TÉCNICO
[001] A presente invenção refere-se às técnicas para autentica ção e verificação de fluxos de dados. Especificamente, a invenção refere-se à inserção de identificadores em um fluxo de dados, tal como um fluxo de bits Dolby Pulse, AAC ou HE AAC, e as autenticação e verificação do fluxo de dados baseadas nesse identificador.
ANTECEDENTES
[002] Com a proliferação crescente de sistemas de rádio e TV digitais, os fluxos de dados, compreendendo, por exemplo, dados de vídeo e/ou dados de áudio, são difundidos mais e mais frequentemente. Além do conteúdo efetivo de vídeo e/ou áudio, esses fluxos de dados compreendem ainda metadados, o que propicia, por exemplo, o controle no lado do receptor de volume e variação dinâmica, bem como o controle de remixagem estérea e outros aspectos.
[003] Em cenários de redes típicas, os quadros de vídeo e/ou os quadros de áudio, e os seus metadados associados, são codificados em um sistema de cabeça de rede de difusão. Para esse fim, vários esquemas de codificação, tais como Dolby E, Dolby Digital, AAC, HE AAC, DTS ou Dolby Pulse podem ser usados. Alguns desses esquemas de codificação, notavelmente, Dolby Pulse, AAC e HE AAC, são particularmente bem adequados para a transmissão por vários meios de transmissão, tais como rádio (faixa de frequência FM, DVB/T, ATSC), cobre trançado (DSL), cabos coaxiais (por exemplo, CATV) ou fibras ópticas. O receptor, por exemplo, um aparelho de TV, um recep- tor de rádio, um computador pessoal ou uma caixa de sinal de frequência, tem um decodificador adequado e proporciona o fluxo de meios decodificado. Além disso, o receptor proporciona usualmente aspectos, que são sinalizados por meio dos metadados associados aos dados de vídeo e/ou áudio.
[004] Os exemplos de esquemas de codificação / decodificação são especificados na norma ISO/IEC 14496-3 (2005) "Information technology - Coding of audio-visual objects - Part 3: Audio" para MPEG-4 AAC, e na norma ISO/IEC 13818-7 (2003) "Generic Coding of Moving Pictures and Associated Audio Information - Part 7:Advanced Audio Coding (AAC)" para MPEG-4 AAC, que são incorporadas por referência no presente relatório descritivo.
[005] Várias técnicas para autenticação e/ou identificação são conhecidas. Algumas se baseiam na incorporação de dados de autenticação e/ou informações dentro de dados multimídia codificados. Essas técnicas são também conhecidas como marcação d'água, e são elaboradas especificamente para proteção de direitos autorais. Uma outra técnica para autenticação e/ou identificação é a assinatura digital, na qual dados de autenticação separados são proporcionados com arquivos de dados, tais como e-mails, e usados em um decodificador para fins de autenticação e identificação.
[006] Para que um receptor de fluxos de dados seja capaz de identificar o codificador do fluxo de dados, é desejável proporcionar um meio de autenticação juntamente com o fluxo de dados. Pode ser também benéfico verificar a integridade do fluxo de dados. Além disso, pode ser benéfico garantir a configuração correta do receptor, no que diz respeito ao fluxo de dados, que vão ser reproduzido ou processado. Além do mais, pode ser benéfico permitir a implementação de serviços com valor incorporado ou funcionalidades de controle especial para os fluxos de dados, que tenham sido adequadamente autentica- dos e/ou verificados. Esses e outros aspectos são abordados no presente documento de patente.
SUMÁRIO
[007] Os método e sistema propostos fazem uso de um identifi cador, que pode ser proporcionado como metadados dentro de um fluxo de dados. Esses fluxos de dados são, de preferência, fluxos de dados que são transmitidos por um meio de transmissão com ou sem fio, mas os fluxos de dados podem ser também proporcionados em um meio de armazenamento de dados, tal como um CD, DVD ou memória instantânea. O identificador permite que um decodificador, no lado de recebimento, verifique se ou não um fluxo de dados, que ele recebe, é de um codificador seguro, isto é, um codificador legítimo, no lado de transmissão e/ou codificação. Essa verificação pode ser particularmente benéfica, se um decodificador for compatível com diferentes tipos de codificadores. Por meio de exemplo, um decodificador Dolby Pulse pode ser compatível com um codificador versão HE-AAC 2. Nesse cenário, pode ser desejável permitir que um decodificador Dolby Pulse proporcione certos aspectos não padronizados e não obrigatórios, apenas se o tráfego, isto é, os fluxos de dados, se originar de codificadores Dolby Pulse adequados. Por uso desse identificador, um decodi- ficador Dolby Pulse vai ser capaz de diferenciar entre um fluxo de dados ou um fluxo de bits, gerado por um codificador Dolby Pulse adequado, e um fluxo de dados ou fluxo de bits, gerado por um codificador de acordo com HE-AACv2. Como tal, pode-se garantir que os aspectos adicionais, por exemplo, o uso de metadados dinâmicos, são apenas considerados pelo decodificador, se o fluxo de dados se originar de um codificador seguro. Fazendo-se isso, o funcionamento correto de aspectos adicionais pode ser garantido.
[008] Um outro benefício do identificador é que pode permitir que um decodificador verifique que um fluxo de bits tenha sido recebido de uma maneira correta, e que o fluxo de bits não foi modificado ou falsificado durante a transmissão. Em outras palavras, o identificador permite que o decodificador verifique a integridade do fluxo de bits recebido.
[009] Além do mais, o identificador pode ser usado para garantir que o decodificador seja ajustado ao processamento correto, por exemplo, reprodução, configuração, para sintetizar adequadamente o sinal de meios / multimídia. Por meio de exemplo, essa configuração pode ser dirigida à frequência de amostragem, na qual o sinal de meios é reproduzido. A configuração pode ser também dirigida à configuração de canais, por exemplo, 2 canais estéreos, com diferentes ajustes de som circundante, etc., que vão ser usados para reprodução. Um outro aspecto de configuração pode ser dirigido ao comprimento de quadro, por exemplo, 1.024 quadros de amostra ou 960 quadros de amostra no caso de AAC, que é usado no esquema de codificação particular.
[0010] À parte dos fins de identificação e autenticação do codifica dor, o identificador pode ser usado para verificar a autenticidade da carga útil do fluxo de dados. Para esse fim, o identificador não deve ser facilmente esquecível, e uma manipulação do segmento protegido deve ser identificável. Além do mais, é desejável que um decodificador identifique a autenticidade de um fluxo de bits, a intervalos de tempo relativamente curtos. É preferível que o tempo máximo, até que um decodificador ou dispositivo de decodificação seja capaz de identificar um fluxo de bits autêntico, quando o fluxo contínuo não excede 1 segundo. Além disso, a complexidade introduzida pela verificação do identificador, no decodificador, deve ser mantida baixa, isto é, o aumento da complexidade do decodificador deve ser desprezível. Finalmente, o código extra de transmissão, introduzido pelo identificador, deve ser mantido baixo.
[0011] De acordo com uma concretização, os benefícios mencio- nados acima podem ser atingidos fazendo-se uso de um valor ou identificador criptográfico, originado de acordo com o método descrito a seguir. O identificador pode ser determinado, no codificador, por aplicação de uma função de modo único a um grupo de um ou mais quadros de dados. Um quadro compreende, tipicamente, os dados associados com um determinado segmento de um fluxo de áudio e/ou ví-deo, por exemplo, um segmento compreendendo um determinado número de fluxos de meios. Por meio de exemplo, um quadro de um fluxo de áudio pode compreender 1.024 amostras de dados de áudio e os metadados correspondentes.
[0012] Como mencionado acima, com a finalidade de determinar um identificador, um número determinado de quadros é agrupado. O número de quadros, em cada grupo, pode ser selecionado pelo codificador, e não é, tipicamente, conhecido de antemão pelo decodificador. A função de modo único é, de preferência, uma função hash criptográfica (código de autenticação de mensagem hash) HMAC-MD5, ainda que outras funções hash, tal como uma SHA-1, possam ser usadas no lugar da MD5. Um possível critério para seleção de uma função hash criptográfica adequada pode ser o seu tamanho, que deve ser mantido pequeno, para reduzir o código extra de transmissão requerido. O tamanho de uma função hash criptográfica é dado, tipicamente, por seu número de bits.
[0013] Uma vez que um identificador, para um grupo de quadros, tenha sido calculado por uso, por exemplo, do procedimento HMAC- MD5, pode ser associado com, por exemplo, inserido em, um quadro do grupo seguinte de quadros. Por meio de exemplo, o identificador pode ser escrito em um campo de dados ou em um elemento sintático do quadro. De preferência, o identificador é inserido no primeiro nome do grupo de quadros seguinte. Isso permite que o identificador seja calculado como uma operação de passagem única, sem introduzir la- tência adicionada ao codificador / decodificador, o que é particularmente benéfico para transmissão de meios em tempo real. O fluxo de dados compreendendo o identificador pode ser então transmitido para os receptores / decodificadores correspondentes.
[0014] Em um receptor, o identificador inserido pode ser usado para fins de identificação, autenticação, verificação e/ou configuração do codificador. O receptor compreende, tipicamente, um decodificador, que pode sincronizar a um grupo de quadros, isto é, pode determinar os quadros que compreendem um identificador. Com base na distância entre dois quadros sucessivos, que compreendem um identificador, o número de quadros por grupo de quadros, que foram usados para calcular o identificador, pode ser determinado. Em outras palavras, isso pode permitir que o decodificador determine o comprimento do grupo de quadros, sem notificação do codificador correspondente.
[0015] O decodificador pode calcular o identificador para um grupo de quadros recebido. Os identificadores, que são calculados com base no grupo de quadros recebido, podem ser referidos como identificadores de verificação. Se for considerado que os identificadores são inseridos no primeiro quadro de um grupo de quadros sucessivo, então cada grupo de quadros vai começar com um primeiro quadro, que compreende um identificador para o grupo de quadros prévio, e vai terminar com o quadro que precede diretamente o quadro seguinte, que compreende um identificador para o presente grupo de quadros. Para o presente grupo de quadros, um identificador de verificação pode ser calculado de acordo com os métodos descritos acima.
[0016] Em uma outra etapa, o decodificador pode extrair o identifi cador, transmitido pelo codificador do respectivo quadro do grupo de quadros subsequente. De novo, se no codificador os identificadores forem inseridos no primeiro quadro de um grupo de quadros sucessivo, então também o receptor extrai o identificador desse primeiro qua dro. Esse identificador, que foi recuperado do fluxo de dados, pode ser comparado com o identificador de verificação, isto é, o identificador que é calculado pelo decodificador com base no fluxo de dados recebido. Se ambos os identificadores são iguais, o decodificador pode considerar, tipicamente, que não ocorreu nenhum erro durante a transmissão, o grupo de quadros foi recebido intacto, o grupo de quadros não foi modificado durante a transmissão, e o grupo de quadros é de um codificador seguro e/ou legítimo. Adicionalmente, se ambos os identificadores são iguais, o decodificador pode selecionar permitir que um ou mais aspectos ou aperfeiçoamentos específicos de codificação / decodificação, que não são habilitados quando um fluxo de bits arbitrário é selecionado, sejam decodificados. Por meio de exemplo, serviços adicionais podem ser habilitados, se o decodificador identificar um fluxo de bits Dolby Pulse específico, enquanto que esses serviços incor-porados não vão estar disponíveis para um fluxo de bits codificado padrão HE-AAC versão 2. Não obstante, o decodificador pode ser habilitado para decodificar o fluxo de bits codificado padrão HE-AAC versão 2, sem, no entanto, usar os serviços adicionais.
[0017] Deve-se notar que, além do mais, o identificador pode ser permitido garantir que a configuração adequada, para, corretamente, decodificar e/ou reproduzir o fluxo de meios, seja ajustada no decodifi- cador. Nesses casos, um identificador de verificação e um identificador transmitido iguais vão indicar que o decodificador usa os ajustes de configuração corretos.
[0018] Se, por outro lado, os identificadores, isto é, o identificador de verificação e o identificador transmitido, não são iguais, então o de- codificador vai saber que um erro ocorreu durante a transmissão, o grupo de quadros não foi recebido intacto, o grupo de quadros foi modificado durante a transmissão, ou o grupo de quadros não era um codificador seguro. Nesses casos, o decodificador pode ser inteiramente desabilitado, ou, alternativamente, aspectos ou aperfeiçoamentos específicos podem ser desabilitados.
[0019] Deve-se notar que o identificador pode ser também usado para informar ao decodificador que os ajustes de configuração errados foram estabelecidos. Nesses casos, um desacordo entre o identificador de verificação e o identificador transmitido pode ser devido ao fato de que o decodificador usa os ajustes de configuração errados, ainda que o grupo de quadros seja recebido intacto e de um codificador inseguro. Pode-se considerar que, nesses casos, o decodificador pode ser operante para modificar os seus ajustes de configuração e determinar os identificadores de verificação correspondentes, até que o identificador de verificação seja igual ao identificador transmitido. Isso vai permitir que o decodificador ajuste, de fato, a sua configuração aos requisitos do fluxo de bits recebido.
[0020] A seguir, diferentes aspectos do método proposto são des critos. De acordo com um primeiro aspecto, um método para codificar um fluxo de dados, compreendendo uma pluralidade de grupo de quadros, é descrito. Os fluxos de dados podem ser fluxos de áudio, vídeo e/ou meios e multimídia. Em particular, os fluxos de dados podem ser fluxos de dados Dolby Pulse, AAC ou HE AAC. Os fluxos de dados são tipicamente organizados em quadros de dados, que compreendem um determinado número de amostras de dados e cobrem um determinado segmento do fluxo de dados. Por meio de exemplo, um quadro pode compreender 1.024 amostras de um sinal de áudio, amostrado a uma taxa de amostragem de 44,1 kHz, isto é, cobre um segmento de cerca de 23 ms. Deve-se notar que as amostras podem ser codificadas a taxas de bits constantes ou variáveis, e o número efetivo de bits dentro de um quadro pode variar.
[0021] O método pode compreender a etapa de agrupamento de um número N de quadros de dados sucessivos, para formar uma pri- meira mensagem. O número N de quadros de dados sucessivos é selecionado, tipicamente, com relação às considerações de código extra de taxa de dados. Usualmente, o código extra diminui com o aumento do número N. N é, de preferência, maior do que um. Os valores típicos para N são em torno de 20. Em uma concretização preferida, N pode ser selecionado de modo que os N quadros sucessivos cubram 0,5 segundo de um sinal correspondente, quando reproduzidos em um decodificador correspondente, com uma configuração de decodificador adequada. Deve-se notar que a etapa de agrupamento pode compreender a concatenação dos N quadros sucessivos na ordem natural, isto é, de fluxo contínuo.
[0022] Em uma outra etapa, a primeira mensagem pode ser agru pada com as informações de configuração, para formar uma segunda mensagem. Essas informações de configuração compreendem informações externas ao fluxo de dados, e são tipicamente relacionadas ao fluxo de dados, em particular, às informações para sintetizar o fluxo de dados em um lado do receptor. As informações de configuração podem compreender informações relativas aos ajustes dos respectivos receptor e/ou decodificador, que podem ser usadas para processar o fluxo de dados. Como essas informações de configuração não são tipicamente transmitidas ou incluídas no fluxo de dados, podem ser também referidas como dados fora de banda. Isso é oposto ao fluxo de dados, que pode ser também referido como dados dentro de banda.
[0023] As informações de configuração podem ser agrupadas com a primeira mensagem de vários modos. Podem ser concatenadas com a primeira mensagem, isto é, podem ser colocadas no início e/ou no final da primeira mensagem. As informações de configuração podem ser também colocadas em certas posições dentro da primeira mensagem, por exemplo, entre alguns ou todos dos quadros sucessivos.
[0024] Os exemplos típicos para as informações de configuração compreendem uma indicação de uma taxa de amostragem, que foi usada para amostrar o fluxo de meios analógicos associados. As informações de configuração podem também compreender uma configuração de canal de um sistema de codificação de áudio, tal como uma configuração de canal som mono, de dois canais estéreos ou circundante 5.1. Pode também compreender uma indicação do número de amostras em um quadro de dados, por exemplo, 960, 1.024 ou 2.048 amostras por quadro de dados.
[0025] O método compreende ainda a etapa de gerar um valor criptográfico da primeira e/ou segunda mensagem. O valor criptográfico pode ser também referido como um identificador. O valor criptográfico pode ser gerado por uso de um valor principal e de uma função hash criptográfica. Em particular, o valor criptográfico pode ser gerado por cálculo de um valor HMAC-MD5, para a primeira e/ou segunda mensagem. Além do mais, a geração do valor criptográfico pode compreender truncar o valor HMAC-MD5, por exemplo, truncar a 16, 24, 32, 48 ou 64 bits. Isso pode ser benéfico em vista da redução do código extra requerido para o valor criptográfico no fluxo de dados.
[0026] Além do mais, o método compreende inserir o valor cripto gráfico no fluxo de dados, subsequente aos N quadros de dados sucessivos. De preferência, o valor criptográfico é inserido no primeiro quadro, seguinte aos N sucessivos quadros de dados, para permitir uma rápida decodificação e autenticação e verificação do codificador, em um decodificador correspondente. Pode ser benéfico também inserir uma indicação de sincronização, subsequente aos N quadros de dados sucessivos, em que a indicação de sincronização indica que o valor criptográfico foi inserido. Essa indicação de sincronização pode ser colocada nas vizinhanças do valor criptográfico, para permitir uma extração conveniente do valor criptográfico a um decodificador corres- pondente.
[0027] Em uma concretização exemplificativa, o fluxo de dados é um fluxo MPEG4-AAC ou MPEG2-AAC, e o valor criptográfico é inserido como um elemento de fluxo de dados <DSE>. Esse elemento de fluxo de dados <DSE> pode ser inserido ao final de um quadro, antes de um elemento <TERM>. Além do mais, o conteúdo desse elemento de fluxo de dados <DSE> pode ser, de preferência, alinhado a um limite de byte do fluxo de dados, para simplificar a extração do elemento de fluxo de dados <DSE>, e, em particular, do valor criptográfico e/ou da indicação de sincronização, a um decodificador correspondente.
[0028] Deve-se notar que a etapa de gerar um valor criptográfico pode ser, de preferência, conduzida iterativamente nos quadros individuais de um grupo de N quadros sucessivos. Para esse fim, um valor criptográfico intermediário pode ser gerado para cada um dos N quadros sucessivos, usando um estado de partida. O estado de partida pode ser o valor criptográfico intermediário da iteração prévia. Por meio de exemplo, um valor criptográfico intermediário pode ser gerado para o primeiro quadro. Esse valor criptográfico intermediário pode ser então usado como o estado de partida para a geração de um valor criptográfico intermediário do segundo quadro. Esse processo é repetido até que um valor criptográfico intermediário do N° quadro seja gerado. Esse último valor criptográfico intermediário representa, tipicamente, o valor criptográfico para o grupo de N quadros sucessivos. Para considerar as informações de configuração, o estado de partida da primeira iteração pode ser um valor criptográfico intermediário das informações de configuração.
[0029] Em uma concretização preferida, o valor criptográfico de um bloco de N quadros de dados sucessivos é gerado no bloco de N quadros de dados sucessivos compreendendo o valor criptográfico do bloco prévio de N quadros de dados sucessivos. Fazendo-se isso, um fluxo de valores criptográficos interligados pode ser gerado.
[0030] De acordo com um outro aspecto, o método pode compre ender a etapa de interação com um codificador de vídeo e/ou áudio do fluxo de dados. Essa pode ser implementada por condução de codificação de vídeo e/ou áudio, bem como de geração do valor criptográfico de uma maneira integrada. Em particular, a interação, entre o codificador de vídeo e/ou áudio do fluxo de dados e a geração do valor criptográfico, pode ser dirigida a um ajuste de taxa de bits máxima para o codificador de vídeo e/ou áudio, de modo que uma taxa de bits do fluxo de dados, compreendendo o valor criptográfico, não exceda um valor predeterminado. Isso pode ser particularmente benéfico se a codificação / decodificação do fluxo de dados associado ajusta um limite de taxa de bits superior para um fluxo de dados completo.
[0031] De acordo com um outro aspecto, um método para verificar um fluxo de dados em um decodificador e/ou receptor é descrito. Deve-se notar que os métodos e sistemas descritos podem ser aplicáveis no contexto de fluxos de dados transmitidos, bem como de fluxos de dados proporcionados em um meio de armazenamento. Como descrito acima, o fluxo de dados compreende tipicamente uma pluralidade de quadros de dados, e um valor criptográfico, associado a um número N de quadros de dados sucessivos precedentes. Faz-se referência à consideração apresentada nesse documento, notavelmente, com relação aos possíveis valores para N e à estrutura do fluxo de dados e dos seus quadros.
[0032] O método compreende a etapa de extração de N quadros de dados sucessivos, para formar uma primeira mensagem. O método também compreende a etapa de determinação do valor de N. Essa pode ser executada em um fluxo de dados, que compreende uma pluralidade de N quadros de dados sucessivos e de valores criptográficos associados. Se N quadros de dados sucessivos são referidos como um grupo de quadros, esse fluxo de dados compreende, tipicamente, uma pluralidade de grupos de quadros e um valor criptográfico associado com cada grupo de quadros. Nesses casos, o número N pode ser determinado como o número de quadros entre dois valores criptográficos sucessivos.
[0033] Deve-se notar que o presente grupo de quadros, que é usado para calcular um segundo valor criptográfico, pode compreender o valor criptográfico do grupo de quadros precedente. Alternativamente, o valor criptográfico do grupo de quadros precedente e qualquer indicação de sincronização e/ou elemento sintático associados podem ser primeiro removidos do presente grupo de quadros, antes do cálculo do segundo valor criptográfico. Esta solução pode ser preferível, para impedir variações e discrepâncias de propagação de um grupo de quadros para o seguinte.
[0034] O método pode compreender ainda a etapa de agrupamen to da primeira mensagem com as informações de configuração, para formar uma segunda mensagem, em que as informações de configuração compreendem tipicamente informações externas ao fluxo de dados, tais como para sintetizar o fluxo de dados. A etapa de agrupamento e os diferentes aspectos com relação às informações de configuração foram descritos acima. Esses aspectos são igualmente aplicáveis ao decodificador.
[0035] O método continua por geração de um segundo valor crip tográfico das primeira e/ou segunda mensagem, por extração do valor criptográfico do fluxo de dados e por comparação do valor criptográfico com o segundo valor criptográfico. O segundo valor criptográfico pode ser também referido como o valor criptográfico de verificação ou o identificador de verificação.
[0036] Deve-se notar que o segundo valor criptográfico pode ser gerado de uma maneira iterativa, como descrito no contexto da gera- ção do valor criptográfico.
[0037] Em uma concretização preferida, o valor criptográfico foi gerado em um codificador e/ou transmissor correspondentes dos N quadros de dados sucessivos e das informações de configuração, de acordo com um método correspondente ao método usado para gerar o segundo valor criptográfico. Em outras palavras, o método para gerar o valor criptográfico no codificador correspondente está em conformidade com o método para gerar o segundo valor criptográfico no deco- dificador. Em particular, o valor criptográfico e o segundo valor criptográfico são gerados por uso de um único valor principal e/ou uma única função hash criptográfica.
[0038] Além do mais, o conjunto de N quadros sucessivos, usado para gerar o valor criptográfico no codificador, corresponde ao conjunto de N quadros sucessivos para gerar o segundo valor criptográfico no decodificador. Como mencionado acima, o valor criptográfico e o segundo valor criptográfico podem ser determinados no conjunto de N quadros sucessivos, que compreendem ou que não compreendem o valor criptográfico do conjunto precedente de N quadros sucessivos. A mesma regra deve ser aplicada no codificador e no decodificador.
[0039] Ainda que os conjuntos de quadros no codificador e no de- codificador sejam idênticos, deve-se notar que o conteúdo dos quadros no codificador e no decodificador podem diferir, por exemplo, devido às modificações incorridas durante a transmissão dos quadros ou devido a erros no meio de armazenamento do fluxo de dados.
[0040] De acordo com um outro aspecto, o método pode compre ender as etapas de ajustar um sinalizador, se o valor criptográfico cor-responder ao segundo valor criptográfico, e/ou de proporcionar uma indicação visual no receptor e/ou decodificador, se o sinalizador for estabelecido. De uma maneira análoga, o sinalizador e/ou indicação visual pode(m) ser removido(s), se o valor criptográfico não corres- ponder ao segundo valor criptográfico, ou se nenhum valor criptográfico puder ser extraído do fluxo de dados. Isso pode ser benéfico para proporcionar, a um usuário do decodificador e a um espectador / ouvinte do fluxo de dados, informações sobre a autenticidade do fluxo de dados.
[0041] De acordo com outro aspecto, um fluxo de dados compre endendo um valor criptográfico, gerado e inserido de acordo com os métodos descritos no presente documento de patente, é descrito.
[0042] De acordo com outro aspecto, um codificador operante para codificar um fluxo de dados, compreendendo uma pluralidade de quadros de dados, é descrito. O codificador é operante para executar as etapas do método descritas no presente documento de patente. Em particular, o codificador pode compreender um processador operante para agrupar um número N de quadros de dados sucessivos, para formar uma primeira mensagem, em que N é maior do que um, para agrupar a primeira mensagem com informações de configuração, para formar uma segunda mensagem, em que as informações de configuração compreendem informações externas ao fluxo de dados, tais como para sintetizar o fluxo de dados, para gerar um valor criptográfico da segunda mensagem, e inserir o valor criptográfico no fluxo de dados, subsequente aos N quadros de dados sucessivos.
[0043] De acordo com um outro aspecto, um decodificador operan te para verificar um fluxo de dados, compreendendo uma pluralidade de quadros de dados e um valor criptográfico associado a um número N de quadros de dados sucessivos precedentes, em que N é superior a um, é descrito. O decodificador é operante para executar as etapas do método descritas no presente documento de patente. Em particular, o decodificador pode compreender: um processador operante para: extrair os N quadros de dados sucessivos para formar uma primeira mensagem; para agrupar a primeira mensagem com as informações de configuração; para formar uma segunda mensagem, em que as in-formações de configuração compreendem informações para: sintetizar o fluxo de dados; para gerar um segundo valor criptográfico da segunda mensagem; para extrair o valor criptográfico do fluxo de dados; e para comparar o valor criptográfico com o segundo valor criptográfico.
[0044] De acordo com um outro aspecto, um programa de softwa re é descrito. O programa de software é adaptado para execução em um processador e para condução das etapas de processo descritas no presente documento de patente, quando conduzidas em um dispositivo de computação.
[0045] De acordo com um outro aspecto, um meio de armazena mento é descrito. O meio de armazenamento compreende um programa de software adaptado para execução em um processador e para execução das etapas de método descritas no presente documento de patente, quando conduzidas em um dispositivo de computação.
[0046] De acordo com um outro aspecto, um produto programa de computador é descrito. O produto programa de computador compreende instruções executáveis para condução das etapas de método descritas no presente documento de patente, quando executadas em um computador.
[0047] De acordo com um outro aspecto, uma caixa de sinal de frequência, um dispositivo eletrônico portátil (por exemplo, um telefone móvel, um PDA, um telefone inteligente, etc.) ou um computador (por exemplo, um computador de mesa, um laptop, etc.), para decodificar um fluxo de dados recebido, é descrito. O fluxo de dados pode compreender um sinal de áudio. A caixa de sinal de frequência compreende um decodificador, de acordo com os aspectos descritos no presente documento de patente.
[0048] De acordo com um outro aspecto, um sistema de difusão, para transmitir um fluxo de dados, é descrito. O fluxo de dados pode compreender um sinal de áudio. O sistema de difusão compreende, de preferência, um codificador, de acordo com os aspectos descritos no presente documento de patente.
[0049] De acordo com um outro aspecto, um método para conca tenar um primeiro e um segundo fluxo de bits, em um ponto de emenda, é descrito. Cada um dos dois fluxos de bits pode compreender uma pluralidade de quadros de dados e um valor criptográfico associado com um determinado número de quadros de dados. O primeiro fluxo de bits pode compreender um valor criptográfico para cada N1 quadros sucessivos, enquanto que o segundo fluxo de bits pode compreender um valor criptográfico para cada N2 quadros sucessivos. Os números N1 e N2 podem ser idênticos, isto é, os dois fluxos de bits têm o mesmo período de repetição criptográfico, ou os números N1 e N2 podem ser diferentes, isto é, os números de quadros, após os valores criptográficos terem sido incluídos nos fluxos de bits, são diferentes.
[0050] O método de concatenação compreende a etapa de gerar um fluxo de bits concatenado dos primeiro e segundo fluxos de bits, em que o fluxo de bits concatenado compreende pelo menos uma parte da pluralidade de quadros de dados dos primeiro e segundo fluxos de bits. Em outras palavras, o segundo fluxo de bits ou uma parte dele é preso, no ponto de emenda, no primeiro fluxo de bits ou em uma parte dele.
[0051] O fluxo de bits concatenado compreende valores criptográ ficos gerados e inseridos de acordo com os métodos descritos no presente documento de patente. Vantajosamente, os valores criptográficos no fluxo de bits concatenado cobrem uniformemente o ponto de emenda, de modo que nenhuma interrupção de autenticidade de fluxo de bits é perceptível em um receptor / decodificador. Isso pode ser alcançado por geração explícita de novos valores criptográficos para o fluxo de bits concatenado, após o ponto de emenda.
[0052] Novos valores criptográficos podem ser gerados pelo me nos para um determinado número de quadros sucessivos, em uma seção do fluxo de bits concatenado, partindo no ponto de emenda. Em alguns casos, os valores criptográficos do segundo fluxo de bits podem ser reutilizados e copiados no fluxo de bits concatenado, após a seção na qual novos valores criptográficos foram incluídos. Isso se aplica em particular quando o valor criptográfico do grupo de quadros prévio, que é incluído no primeiro quadro do grupo seguinte, não é considerado para o cálculo do valor criptográfico do grupo seguinte, e os grupos podem ser manipulados independentemente, isto é, as variações nos valores criptográficos não são propagadas de um grupo no seguinte.
[0053] A geração explícita de valores criptográficos, de acordo com os métodos descritos no presente documento de patente, pode ser particularmente benéfica nos limites entre o primeiro fluxo de bits e o segundo fluxo de bits, isto é, para os quadros finais do primeiro fluxo de bits e para os quadros primários do segundo fluxo de bits, que são incluídos no fluxo de bits concatenado. Em geral, Em geral, quando da emenda de dois fluxos de bits, o número de quadros finais do primeiro fluxo de bits é tipicamente menor ou igual a N1, e/ou o número de quadros tirados do segundo fluxo de bits, antes do primeiro valor criptográfico ser incluído, é tipicamente menor ou igual a N2. Em outras palavras, o ponto de emenda não é tipicamente posicionado nos limites de grupos dos primeiro e segundo fluxos de bits.
[0054] De acordo com um aspecto do método de concatenação ou emenda, um novo valor criptográfico é gerado para os quadros finais do primeiro fluxo de bits e inserido no quadro do fluxo de bits concatenado, que é o primeiro quadro tirado do segundo fluxo de bits. Esse novo valor criptográfico é considerado para "completar" o primeiro flu- xo de bits. Os novos valores criptográficos podem ser então gerados para o segundo fluxo de bits e incluídos no fluxo de bits concatenado nas posições adequadas. Isso é particularmente útil se, sem o valor criptográfico adicionado, inserido no primeiro quadro, tirado do segundo fluxo de bits, o número de quadros, entre o último valor criptográfico, gerado para os quadros do primeiro fluxo de bits, e o primeiro valor criptográfico, gerado para os quadros do segundo fluxo de bits, vai exceder um número máximo permitido pelo sistema.
[0055] No caso no qual o ponto de emenda não é alinhado com os grupos de quadros dos primeiro e segundo fluxos de bits, o método de emenda pode gerar um valor criptográfico para um grupo misto, compreendendo quadros tirados dos primeiro e segundo fluxos de bits. Como já mencionado, os valores criptográficos são tipicamente incluídos no quadro seguinte, depois do grupo de quadros usado para calcular o respectivo valor criptográfico.
[0056] De acordo com um outro aspecto, um emendador e/ou uma cabeça de rede de difusão é(são) descrito(s). Esse(s) emendador e/ou cabeça de rede de difusão é(são) operantes para concatenar um primeiro e um segundo fluxo de bits, cada um deles compreendendo uma pluralidade de quadros de dados e valores criptográficos associados com um determinado número de quadros de dados. O dispositivo pode compreender um decodificador, tendo qualquer combinação de aspectos descritos no presente documento de patente. Esse decodificador pode ser usado para decodificar os quadros finais do primeiro fluxo de dados, os quadros primários do segundo fluxo de bits e os valores criptográficos associados. O(s) emendador e/ou cabeça de rede de difusão pode(m) compreender ainda um codificador, tendo qualquer combinação de aspectos descritos no presente documento de patente. O codificador pode ser usado para codificar os quadros finais do pri-meiro fluxo de bits e os quadros primários do segundo fluxo de bits. Além disso, o(s) emendador e/ou cabeça de rede de difusão pode(m) compreender uma unidade de encaminhamento para encaminhar quadros e valores criptográficos associados dos primeiro e segundo fluxo de bits, que não são decodificados e codificados. Em outras palavras, a unidade de encaminhamento pode simplesmente copiar ou encaminhar ou conduzir pelos quadros e valores criptográficos associados para o fluxo de bits concatenado.
[0057] Deve-se notar que o emendador pode ser também operante para decodificar e codificar os fluxos de dados completos, isto é, para decodificar os valores criptográficos de um fluxo de dados de chegada, e gerar valores criptográficos para o fluxo de dados de saída. Isso pode ser benéfico para gerar uma interligação contínua do fluxo de bits pelos valores criptográficos. Na verdade, uma pluralidade de fluxos de bits pode ser decodificada e um fluxo de bits concatenado, compreendendo partes da pluralidade de fluxos de bits, pode ser codificado com valores criptográficos continuamente interligados. Como tal, um receptor do fluxo de bits concatenado vai considerar o fluxo de bits concatenado como um fluxo de bits originário de um único codificador inseguro.
[0058] Deve-se também notar que para a finalidade de decodifica- ção e/ou codificação dos fluxos de bits compreendendo valores criptográficos, o emendador pode não precisa estar ciente do decodificador / codificador associado do fluxo de dados. Por meio de exemplo, o emendador não precisa ser habilitado para conduzir decodificação / codificação HE-AAC, para extrair e/ou gerar os valores criptográficos dos fluxos de dados. Em algumas situações, por exemplo, quando um novo valor criptográfico é inserido em um quadro que não tinha previamente qualquer valor criptográfico, a decodificação e a subsequente recodificação do fluxo de dados podem ser necessárias para criar espaço no fluxo de bits para o novo valor criptográfico, em particular, pa- ra satisfazer os requisitos do fluxo de bits.
[0059] Deve-se notar que os métodos e sistemas, incluindo as concretizações preferidas, como descritos no presente pedido de patente, podem ser usados autonomamente ou em combinação com os outros métodos e sistemas descritos neste documento. Além do mais, todos os aspectos dos métodos e sistemas, descritos no presente pedido de patente, podem ser arbitrariamente combinados. Em particular, os aspectos das reivindicações podem ser combinados entre si de uma maneira arbitrária. Além disso, deve-se notar que a ordem das etapas do método podem ser variadas. DESCRIÇÃO DAS FIGURAS
[0060] A invenção é explicada abaixo em uma maneira exemplifi- cativa, com referência aos desenhos em anexo, em que:
[0061] a figura 1 ilustra um método exemplificativo para determinar um identificador de acordo com a invenção;
[0062] as figuras 2a e 2b mostram fluxogramas de um método exemplificativo para geração e inserção de identificador no codificador;
[0063] a figura 3 mostra um diagrama de blocos das etapas de au tenticação e verificação conduzidas no decodificador;
[0064] a figura 4 ilustra uma concretização exemplificativa de um codificador e um decodificador;
[0065] a figura 5 ilustra um exemplo para o uso de um identificador dentro de um sistema de difusão; e
[0066] as figuras 6 e 7 ilustram exemplos de emenda de fluxos de bits para formar um fluxo de bits concatenado.
[0067] As concretizações a seguir são descritas por meio de exemplo e não devem ser limitadas ao âmbito do presente documento de patente. A invenção vai ser descrita no contexto de AAC (Codificação de Áudio Avançada) e, em particular, MPEG-2 AAC e MPEG-4 AAC. Deve-se notar, no entanto, que a invenção pode ser também aplicada a outros esquemas de codificação de meios, notavelmente, esquemas de codificação de áudio, vídeo e/ou multimídia. Além do mais, pode ser aplicada em um emendador, proporcionando fluxo de bits combinado de uma pluralidade de codificadores.
[0068] A figura 1 ilustra um fluxo de bits 100 e um método de como um identificador é determinado para esse fluxo de bits 100. Os exemplos para esses fluxos de bits são fluxos de bits de vídeo e/ou áudio com AAC, HE-AAC (Codificação de Áudio Avançada de Alta Eficiência), Dolby Pulse, MPEG-4 AVC/H.264, MPEG-2 Vídeo ou MPEG-4 Vídeo, como uma codificação / decodificação associada. Essas codificações / decodificações e os seus formatos são definidos, por exemplo, na especificação ISO/IEC 14496-3 para MPEG-4 AAC, na especificação ISO/IEC 13818-7 para MPEG-2 AAC, na especificação ISO/IEC 14496-10 para MPEG-4 AAC/H.264, na especificação ISO/IEC 13818-2 para MPEG-2 Vídeo, e na especificação ISO/IEC 14496-2 para MPEG-4 Vídeo. Essas especificações são incorporadas por referência. Nessas codificações / decodificações, os fluxos de dados são dispostos nos denominados quadros, em que os quadros compreendem um determinado número de amostras de meios. Diferentes codificações / decodificações podem usar um número diferente de amostras por quadro. Os exemplos típicos são 960, 1.024 ou 2.048 amostras por quadro.
[0069] Além dos dados de meios efetivos, os quadros podem compreender ainda os denominados metadados, que podem conduzir informações de controle adicionais, por exemplo, em volume ou variação dinâmica de programa.
[0070] A figura 1 mostra uma sucessão de quadros 101, 102, 103 até 106. O eixo de tempo vai da esquerda para a direita, de modo que o quadro 101 seja processado antes do quadro 106. Como descrito acima, cada quadro pode compreender dados de meios e outros me tadados. A estrutura de cada quadro e os possíveis campos ou elementos de dados, que ele pode compreender, são definidos pelo esquema de codificação associado. Por meio de exemplo, um quadro MPEG-4 AAC ou um quadro MPEG-2 AAC pode compreender dados de áudio, por um período de tempo de 1.024 ou 960 amostras, informações relativas e outros dados. As suas sintaxe e estrutura são definidas nas seções 4.4 e 4.5 da especificação ISO/IEC 14496-3 PARA MPEG-4 AAC e nas seções 6 e 8 da especificação ISO/IEC 13818-7 mencionada acima para MPEG-2 AAC. Essas seções são incorpora-das por referência.
[0071] Um quadro MPEG-4 AAC ou MPEG-2 AAC pode compre ender diferentes elementos sintáticos, tais como: . um single_channel_element(), abreviado como SCE, que é o elemento sintático do fluxo de bits contendo dados codificados para um único canal de áudio; . um channel_pair_element(), abreviado como CPE, que é o elemento sintático da carga útil de fluxos de bits contendo dados para um par de canais; . um coupling_channel_element(), abreviado como CCE, que é o elemento sintático que contém dados de áudio para um canal de acoplamento; . um lfe_channel_element(), abreviado como LFE, que é o elemento sintático que contém um canal de aperfeiçoamento de baixa frequência de amostragem; . um program_config_element(), abreviado como PCE, que é o elemento sintático que contém os dados de configuração de programas; . um fill_element(), abreviado como FIL, que é o elemento sintático que contém dados de preenchimento; . um data_stream_element(), abreviado como DSE, que é o elemento sintático que contém dados auxiliares; e . um elemento sintático TERM, indicando o fim de um bloco de dados brutos ou quadro.
[0072] Esses elementos sintáticos são usados dentro de um qua dro ou bloco de dados brutos, para especificar os dados de meios e dados de controle relacionados. Por meio de exemplo, dois quadros de um sinal de áudio mono podem ser especificados por meio dos elementos sintáticos <SCE><TERM><SCE><TERM>. Dois quadros de um sinal de áudio estéreo podem ser especificados pelos elementos sintáticos <CPE><TERM><CPE><TERM>. Dois quadros de um sinal de áudio 5.1 podem ser especificados pelos elementos sintáticos <SCE><CPE><CPE><LFE><TERM><SCE><CPE><CPE><LFE><TE RM>.
[0073] O método proposto agrupa um determinado número N des ses quadros e forma, desse modo, os grupos de quadros 111, 112 e 113. A figura 1 mostra um grupo de quadros completo 112, compreendendo N = 5 quadros 103 a 105. Os cinco quadros do grupo de quadros 112 são concatenados para formar uma primeira mensagem.
[0074] Usando-se uma função hash criptográfica H(.) e uma chave "secreta" K, que é tipicamente adicionada à direita com zeros extras ao tamanho de bloco da função hash H(.), um código de autenticação de mensagem hash (HMAC) da primeira mensagem, pode ser determinada. Vai-se especificar que o signo || denote uma concatenação e o signo Φ denote um exclusivo, e o enchimento externo opad = 0x5c5c5c...5c5c e o enchimento interno ipad = 0x363636...3636 sejam constantes do comprimento do tamanho de bloco da função hash H(.), então o valor HMAC da primeira mensagem vai ser escrito como HMAC (m) = H((KΦopad)||H((kθipad)||m)),
[0075] onde m é uma mensagem, também referida, nesse caso, como a primeira mensagem. O tamanho do bloco, usado com as fun- ções hash MD5 ou SHA-1, é, tipicamente, de 512 bits. O tamanho da saída da operação HMAC é igual àquele da função “hash” associada, isto é, 128 bits, no caso de MD5, ou 160 bits, no caso de SHA-1.
[0076] O valor HMAC da primeira mensagem, isto é, o valor HMAC dos quadros concatenados 103 a 105 do grupo de quadros 112, pode ser usado como o identificador do grupo de quadros 112. Para reduzir o comprimento do identificador, o valor HMAC pode ser truncado, por exemplo, truncado a 16, 24, 32, 48 ou 64 bits. Deve-se notar, no entanto, que essa operação de truncamento afeta tipicamente a segurança do código de autenticação de mensagem hash. Como o identificador é inserido no fluxo de dados, o método proposto usa, de preferência, uma versão truncada do valor HMAC, como o identificador.
[0077] Como mostrado na figura 1, o identificador 122 do grupo de quadros 112 é inserido em um quadro do grupo de quadros 113 seguinte. De preferência, o identificador 122 é inserido no primeiro quadro 106 do grupo de quadros 113 sucessivo. De uma maneira similar, um identificador 121 foi determinado para o grupo de quadros 111 precedente e inserido no primeiro quadro 103 do grupo de quadros 112.
[0078] Deve-se notar que o identificador 122 do grupo de quadros 112 pode ser calculado com base em uma primeira mensagem m, que compreende o identificador 121 do grupo de quadros 111 prévio, ou pode ser calculado com base em uma primeira mensagem m, que não compreende o identificador 121 do grupo de quadros 111 prévio. Neste caso, as informações relativas ao identificador 121 vão precisar ser removidas da primeira mensagem m, antes da determinação do identificador 122. Vai-se precisar ter certeza de que o codificador e o deco- dificador apliquem o mesmo método para definir a primeira mensagem m. Em uma concretização preferida, o identificador 122 é determinado com base em uma primeira mensagem m, que compreende o identificador 121 do grupo de quadros 111 prévio. Fazendo-se isso, os identi- ficadores podem ser interligados continuamente, e, desse modo, um fluxo de bits interligado pode ser criado, que não pode ser modificado, por exemplo, por modificação ou substituição de determinados grupos de quadros do fluxo de bits. Consequentemente, a autenticidade do fluxo de dados ou fluxo de bits completo pode ser garantida. Por outro lado, garante-se ainda que um receptor possa ressincronizar em um fluxo de bits parcialmente corrompido, ainda que os identificadores sejam interligados.
[0079] Em uma concretização preferida, o identificador é colocado em um único data_stream_element (elemento de fluxo de dados)(), abreviado como <DSE>, e definido em ISO/IEC 14496-3, tabela 4.10 para MPEG-4 AAC, ou definido em ISO/IEC 13818-7, tabela 24 para MPEG-2 AAC, que são incorporadas por referência. Para facilitar uma sincronização do decodificador, um quadro AAC deve apenas compreender um data_stream_element() <DSE>, possuindo um identificador, de modo que o decodificador possa determinar o comprimento de um grupo de quadros, como a distância entre dois identificadores recebidos. Em outras palavras, um quadro AAC pode compreender vários data_stream_element() <DSE>, mas deve compreende apenas um data_stream_element() <DSE>, que compreende um identificador. Em uma concretização preferida, a localização do <DSE> é no fim do quadro AAC, antes do elemento <TERM>.
[0080] Para permitir uma rápida extração do identificador, o aspec to de alinhamento de byte do DSE pode ser usado. Para esse fim, o DSE compreende tipicamente um campo ou um bit, que indica que os dados compreendidos no DSE sejam alinhados por bytes. Isso indica a um decodificador que os dados efetivos do DSE começam em uma posição de bit no início de um byte.
[0081] Um fluxo de bits ou fluxo de dados pode compreender múl tiplo <DSE>. Para que seja possível distinguir um <DSE> do outro, ca- da <DSE> inclui, tipicamente, um element_instance_tag, como definido para MPEG-4 AAC em ISO/IEC 14496-3, seção 4.5.2.1.1, e para MPEG-2 AAC em ISO/IEC 13818-7, seção 8.2.2, ambos sendo incorporados por referência. Deve-se notar que o valor do ele- ment_instance_tag do data_stream_element() compreendendo o identificador não é limitado a um valor específico, isto é, as regras genéricas dos padrões ISO/IEC se aplicam. Em outras palavras, não há, de preferência, quaisquer regras especiais para o sinalizador de caso de elemento para um <DSE>, contendo um identificador transmitido além daqueles estabelecidos para MPEG-4 AAC no documento ISO/IEC 14496-3 e para MPEG-2 AAC no documento ISO/IEC 13818-7.
[0082] Em analogia com os exemplos de possíveis fluxos mostra dos acima, um fluxo de dados para um programa de áudio de 2 canais pode compreender os elementos sintáticos <CPE><FIL><DSE><TERM><CPE><FIL><DSE><TERM> Um programa de áudio de 2 canais com SBR (Réplica de Banda Espectral) pode compreender os elementos sintáticos <CPE><SBR(CPE)><FIL><DSE><TERM><CPE><SBR(CPE)><FIL>< DSE><TERM>..., em que <SBR(CPE)> é um elemento sintático específico para SBR. Um programa de áudio de 5.1 canais pode ser constituído dos elementos sintáticos <SCE><CPE><CPE><LFE><DSE><TERM><SCE><CPE><CPE><LF E><FIL><DSE><TERM>
[0083] Em uma concretização preferida, o campo de identificador colocado no elemento <DSE> pode compreender um campo identifi- er_sync e um campo identifier_value. O campo identifier_sync pode ser usado para permitir uma rápida identificação, com base no fato de que o elemento <DSE> particular compreende um identificador. Por meio de exemplo, o codificador pode ajustar o seu campo a um valor predefinido, por exemplo, um modelo binário, para indicar que o ele- mento <DSE> compreende um campo de identificador. O decodifica- dor pode usar esse campo para verificar a disponibilidade do valor do identificador. Em outras palavras, o decodificador é informado de que o fluxo de dados recebido compreende um identificador, que pode ser usado para fins de autenticação, verificação e, possivelmente, configuração mencionadas acima.
[0084] Em uma concretização preferida, o campo identifier_value compreende o valor do identificador que foi determinado como descrito no presente documento. O campo compreende o número requerido de bits para o identificador, isto é, para a versão truncada do valor HMAC. Como descrito acima, o identificador cobre, tipicamente, N, em que N > 1, os quadros AAC e cada N° quadro AAC compreende um identificador, isto é, compreende um elemento <DSE>, que compreende um elemento identificador, como descrito acima. Tipicamente, é o codificador que decide o número N de quadros AAC cobertos. O decodifica- dor é capaz de determinar esse valor pela distância em quadros entre os quadros AAC, compreendendo os identificadores correspondentes.
[0085] Como descrito acima, o identificador pode ser também usa do para garantir que o decodificador use os ajustes de configuração corretos. Para esse fim, o identificador pode ser gerado com base em uma mensagem estendida, que não apenas compreende a concatena- ção de N quadros sucessivos, mas que também compreende dados de configuração. Em outras palavras, a primeira mensagem, que compreende N quadros sucessivos, como descrito acima, pode compreender ainda dados de configuração. Esses dados de configuração podem compreender um Sampling Frequency Index, isto é, uma indicação da frequência de amostragem associada do sinal de áudio, um Channel Configuration, isto é, uma indicação da configuração de canal usada, e um Frame Lenght Flag, isto é, uma indicação do comprimento de quadro usado. Também outros parâmetros de configuração são igualmen- te possíveis.
[0086] Esses parâmetros, isto é, a taxa de amostragem (núcleo) AAC ou "sampling Frequency Index", a configuração de canal e a indicação de comprimento de transformação AAC, ou "frame Lenght Flag", podem ser usadas para formar um configuration_word. Esse configura- tion_word pode também compreender bits de enchimento, para colocá-lo em um tamanho predeterminado.
[0087] Em uma concretização preferida, os parâmetros "sampling Frequency Index" e "Channel Configuration" têm os mesmos significado e valor que os elementos de mesmo nome no "Audio Specific Config", descrito na respectiva especificação ISO/IEC (por exemplo, a seção 1.6.2.1 da ISO/IEC 14496-3). O parâmetro "frame Lenght Flag" têm os mesmos significado e valor que os elementos de mesmo nome no "GAS pecific Config", descritos na respectiva especificação ISO/IEC (por exemplo, a seção 4.4.1, tabela 4.1 da ISO/IEC 14496-3).
[0088] O “configuration_word” e os N quadros AAC são concate nados para formar uma mensagem m, que pode ser também referida como a segunda mensagem, que compreende o configuration_word, além da primeira mensagem, que compreende a concatenação de N quadros AAC: m = (configuration_word || AACframe1 || AACframe2 || ... || AACframeN);
[0089] em que || denota concatenação. No exemplo mostrado aci ma, o configuration_word é colocado em frente da primeira mensagem. Deve-se notar que o configuration_word pode ser também colocado em outras posições, por exemplo, no fim da primeira mensagem.
[0090] Em uma maneira análoga como descrita acima, um valor HMAC, por exemplo, um código HMAC-MD5, HMAC (m) pela mensagem m é calculado por uso da chave "secreta" K. A chave K pode ser, por exemplo, um determinado código ASCII ou qualquer outro valor secreto, e o valor HMAC da mensagem m é calculado por uso da fórmula HMAC mencionada acima.
[0091] Deve-se notar que o valor criptográfico da mensagem m pode ser determinado em uma maneira sequencial. Isso significa que, em uma primeira etapa, o valor criptográfico do configuration_word pode ser determinado. Isso produz um primeiro valor HMAC, como um estado de partida para a determinação do valor criptográfico do AACframe1. A saída dessa operação é um segundo valor HMAC, que é o estado de partida para a determinação do valor HMAC do AACframe2, e assim por diante. Eventualmente, o valor criptográfico do AACframeN é determinado por uso do valor criptográfico do AACframeN-1, como um estado de partida. Por uso dessa determinação sequencial do valor HMAC pela mensagem m, isto é, pela sequência de quadros e/ou do configuration_word, é possível gerar um identificador, sem aumentar o retardo incorrido pelo fluxo de bits. Além do mais, os requisitos de memória para a geração de um valor criptográfico e/ou identificador são mantidos baixos, como apenas o quadro atual do fluxo de bits e o estado de partida, isto é, um valor de 128 bits, necessário para ser armazenado. Uma geração e um armazenamento da mensagem completa m não são necessários.
[0092] Para reduzir o código extra no fluxo de bits, provocado pelo identificador adicional, o valor HMAC é truncado de 128 bits a um número reduzido de bits por eliminação dos bits menos significativos. Por meio de exemplo, o valor HMAC "9e107d9d372bb6826bd3542a419d6" pode ser truncado a "9e107d9d". O grau de truncamento é, de preferência, selecionado como um compromisso entre a segurança do identificador e o código extra de taxa de bits requerido. Os possíveis comprimentos do identificador podem ser, por exemplo, 16, 24, 32, 48, 64, 80 ou 96. O valor HMAC truncado é o identificador, que é inserido no campo identifier_value do elemento DSE.
[0093] A seguir, outros detalhes com relação ao processo de codi ficação são proporcionados. Como já mencionado, é, tipicamente, o decodificador que decide o número N de quadros AAC, que são cobertos por um identificador. Como um exemplo, pode ser desejável garantir que um decodificador seja capaz de sincronizar com o comprimento do grupo de quadros em não mais do que 1 segundo. Em virtude de que dois identificadores são requeridos para que o decodificador sincronize com o comprimento do grupo de quadros, que é dado pelo número de quadros entre dois quadros compreendendo um identificador, devendo-se garantir que o decodificador receba pelo menos dois identificadores dentro do intervalo de tempo desejado. Portanto, o codificador deve selecionar um valor N, de modo que a representação de tempo dos N quadros AAC não exceda, ou exceda minimamente 0,5 segundo. Uma vez que a representação dos N quadros AAC é dependente da taxa de amostragem AAC (núcleo), o valor N selecionado pe-lo codificador pode variar dependendo da taxa de amostragem AAC (núcleo).
[0094] Para minimizar o código extra de taxa de bits introduzido pelo identificador, o codificador pode selecionar o maior valor de N que satisfaça a limitação de que a representação de tempo dos N quadros AAC não exceda 0,5 segundo. Em algumas aplicações, pode ser aceitável que a representação de tempo dos N quadros AAC exceda ligeiramente 0,5 segundo. Nessas aplicações, o codificador pode selecionar o valor de N, de modo que a representação de tempo dos N quadros AAC seja a mais próxima possível de 0,5 segundo, ainda que isso possa, em alguns casos, resultar na representação de tempo dos N quadros AAC excedendo ligeiramente 0,5 segundo. O código extra, que é introduzido pela transmissão do identificador, pode ser determinado por avaliação da razão entre o comprimento do DSE, compreendendo o identificador, e o comprimento global do grupo de quadros (em número de bits).
[0095] Além do mais, é recomendável alinhar a inserção de um identificador com a inserção de outros elementos de configuração, como o cabeçalho SBR. Isso permite que um decodificador sincronize facilmente a um fluxo de bits e permita a recepção de todas as palavras de configuração, durante uma decodificação de quadro único.
[0096] Deve-se notar que o primeiro quadro AAC produzido pode conter um identificador fictício. A finalidade do primeiro identificador vai ser o de sinalizar para o decodificador o início de uma sequência de quadros AAC compreendendo identificadores. O decodificador não vai, no entanto, ficar em uma posição para conduzir autenticação e verificação, pois o identificador não seria baseado em dados de meios efetivos.
[0097] Como descrito em relação à figura 1, o primeiro identifica dor calculado cobre os quadros AAC 1 a N e é armazenado no quadro AAC N + 1. O identificador seguinte cobre os quadros AAC N + 1 a 2N e é armazenado no quadro AAC 2N + 1, e assim por diante.
[0098] A figura 2a ilustra um fluxograma do processo de codifica ção. Na etapa 201, o codificador é iniciado proporcionando um número N de quadros compreendido em um grupo de quadros. Além do mais, a chave K é proporcionada. Na etapa 202 seguinte, os N quadros em um grupo de quadros são concatenados para proporcionar a primeira mensagem. Depois, na etapa 203, a primeira mensagem é concatenada com a palavra de configuração, para produzir a segunda mensagem. Na etapa 204, o identificador é determinado como a versão truncada do valor HMAC, calculado pela segunda mensagem. Esse identificador é colocado no primeiro quadro do grupo de quadros sucessivo (etapa 205). Finalmente, o grupo de quadros é transmitido na etapa 206. Deve-se notar que o grupo de quadros transmitido contém o identificador do grupo de quadros transmitido previamente. As etapas 202 a 206 são repetidas até que o fluxo de dados completo seja transmitido.
[0099] Como já mencionado, o processo mencionado acima pode ser conduzido de uma maneira iterativa sequencial. Isso significa que o identificador pode ser determinado quadro a quadro, sem a necessidade para primeiro concatenar os N quadros e a configuration_word e conduzir o cálculo de HMAC nessa mensagem concatenada completa. Isso é ilustrado na figura 2b. O procedimento iterativo é iniciado na etapa 207 por estabelecimento de um estado de partida. O estado de partida pode ser o valor HMAC da configuration_word, que é armazenado em uma memória de 128 bits. Depois, um valor HMAC pode ser determinado para o primeiro dos N quadros (etapa 208). O valor HMAC resultante é armazenado na memória de 128 bits (etapa 209) e usado como um estado de partida para o cálculo do valor HMAC do segundo quadro (etapa 208). Esse processo é repetido até que o valor HMAC do N° quadro seja determinado, em que o valor HMAC do (N - 1)° quadro é tirado da memória de 128 bits e usado como um estado de partida (etapa 208). O identificador é determinado na versão truncada do valor HMAC do N° quadro (etapa 210). Como alternativa para a etapa 206, cada quadro pode ser expedido imediatamente após ser processado para o cálculo do valor HMAC, sem utilização de memória intermediária de todo o grupo de quadros. O identificador é depois adicionado ao (N + 1)° quadro e expedido com esse quadro. Esse quadro é depois o primeiro quadro a ser usado no cálculo iterativo do valor HMAC para os N quadros seguintes. Por uso desse processo iterativo, o processo de codificação pode ser conduzido quadro a quadro a um baixo retardo, uma baixa complexidade computacional e baixos requisitos de memória.
[00100] A seguir, outros detalhes são proporcionados com relação ao processo de decodificação. Tipicamente, o decodificador começa com a consideração de que o fluxo a ser decodificado não compreende um identificador válido. Isto é, um indicador para a presença de um identificador válido no fluxo de bits de meios vai ser inicialmente estabelecido como um valor "falso", e vai ser apenas tipicamente estabelecido como um valor "verdadeiro" mediante uma primeira recepção bem-sucedida de um identificador válido. Isso pode ser indicado no receptor, por exemplo, uma caixa de sinal de frequência, por um indicador visual, tal como um LED, que indica a um usuário que o fluxo de bits recebido é um fluxo de bits autenticado e válido. Consequentemente, o identificador pode ser usado para indicar a qualidade de um fluxo de dados recebido a um usuário.
[00101] Por outro lado, se o identificador no decodificador for estabelecido como "verdadeiro", mas para mais do que Nmax quadros não há qualquer atualização relativa ao identificador dentro do fluxo de bits, o indicador pode ser restabelecido como "falso". Em outras palavras, o decodificador pode estar ciente de um valor máximo para N, por exemplo, Nmax, que não deve ser excedido. Se o decodificador não detectar um identificador válido para mais do que Nmax quadros, então, isso indica ao decodificador que o fluxo de bits recebido pode não se originar mais de um codificador legítimo, ou que o fluxo de bits recebido pode ter sido alterado. Consequentemente, o decodificador estabelece que o respectivo indicador como "falso". Isso vai resultar tipi-camente que o indicador visual, por exemplo, o LED, seja restabelecido.
[00102] O procedimento de decodifica de identificador é ilustrado na figura 3 e pode ser descrito como a seguir: . o decodificador é iniciado e limpa o sinalizador "ID Verified" na etapa 300; . a seguir, o estado de memória interno (128 bits) é iniciado na etapa 301; . o decodificador espera até que um quadro seja recebido (etapa 302) e checa o quadro recebido para a presença de um identificador de fluxo de bits na etapa 303; a presença de um identificador dentro de um quadro pode ser detectada por meio do campo identifi- er_sync especificado acima; o decodificador extrai o identifier_value do respectivo campo no <DSE>, na etapa 307, se um identificador for detectado na etapa 304; . a seguir, o identificador de verificação é gerado por truncamento do valor HMAC contido no estado de 128 bits na etapa 308; . o decodificador continua por comparação do identificador de fluxo de bits e do identificador de verificação na etapa 309; se for determinado que ambos IDs não são iguais (etapa 310), o sinalizador "ID Verified" é limpo na etapa 311, para indicar que o fluxo de bits não se origine de um codificador inseguro; no caso de IDs idênticos, o sinalizador "ID Verified" é estabelecido na etapa 312, para indicar que o identificador de fluxo de bits é verificado e o fluxo de bits é considerado válido, porque se origina de um codificador seguro; nesse caso, os aspectos adicionais do decodificador podem ser habilitados e/ou o usuário informado do estado de verificação do fluxo de bits; alternati-vamente, alguns aspectos podem ser desabilitados se o fluxo de bits for determinado para não se originar de um codificador seguro e/ou, consequentemente, o usuário informado; . o processo de decodificação continua na etapa 313 por inicialização do estado de memória interno de 128 bits; . a seguir, o valor HMAC de 128 bits para o quadro atual é calculado na etapa 314 e o estado de memória interno de 128 bits é atualizado com o valor HMAC calculado na etapa 315; o decodificador então retorna para a etapa 302, para esperar pela recepção de outro quadro; . se nenhum identificador estiver presente no quadro (de- terminado na etapa 304), o decodificador segue para a etapa 305, na qual o decodificador determina se um identificador está presente dentro dos últimos Nmax quadros; . no caso em que nenhum identificador está presente dentro dos últimos Nmax quadros, o decodificador limpa o sinalizador "ID Verified" na etapa 306, porque o número máximo de quadros Nmax passou sem um identificador ser recebido; o decodificador então retorna para a etapa 302 para aguardar por outro quadro; e . se um identificador estiver presente dentro do últimos Nmax quadros, determinado na etapa 305, o decodificador prossegue para a etapa 314, para calcular o valor HMAC de 128 bits para o quadro de momento.
[00103] Como descrito acima, o decodificador pode determinar o identificador de verificação em um processo iterativo sequencial. Isso significa que apenas o quadro de momento é processado e não é requerido para primeiro concatenar um conjunto de quadros, para a determinação do identificador de verificação. Consequentemente, a de- codificação do identificador pode ser conduzida a baixo retardo, baixa complexidade computacional e baixos requisitos de memória.
[00104] A figura 4 ilustra uma concretização exemplificativa de um codificador 400 e um decodificador 410 de um fluxo de dados. Um fluxo de dados analógico 405, por exemplo, um fluxo de áudio, é convertido em um fluxo de dados digital 406 por uso de um conversor de analógico para digital 402. O fluxo de dados digital 406 é codificado por uso de um codificador de áudio 403, por exemplo, Dolby E, Dolby Digital, AAC, HE AAC, DTS ou Dolby Pulse. O codificador de áudio 403 segmenta, tipicamente, o fluxo de dados digital 406 em quadros de áudio e proporciona compressão de dados. Além do mais, o codificador de áudio 403 pode adicionar metadados. A saída do codificador de áudio 403 é um fluxo de dados 407, compreendendo uma pluralidade de quadros de dados. Subsequentemente, o fluxo de dados 407 introduz um codificador de quadros 404 adicional, que adicionar identificadores ou valores criptográficos ao fluxo de dados 407. O codificador de quadros 404 executa de acordo com os aspectos descritos no presente documento de patente.
[00105] Deve-se notar que, tipicamente, os identificadores são determinados e adicionados de uma maneira sequencial, de modo que cada quadro oriundo do codificador de áudio 403 é processado diretamente pelo codificador de quadros 404. De preferência, o codificador de áudio 403 e o codificador de quadros 404 formam um codificador unido 401, que pode ser implementado em um processador de sinais digitais. Desse modo, os aspectos da codificação de áudio e os aspectos da geração de identificadores podem interagir. Em particular, pode ser necessário considerar o código extra adicional, provocado pelo identificador durante a codificação do fluxo de áudio. Isso significa que a taxa de bits disponível para o fluxo de bits de áudio pode ser reduzida. Essa interação entre o codificador de áudio e a geração de identificadores pode ser usada para satisfazer uma largura de banda global e/ou uma limitação de taxa de bits de certos esquemas de codificação, por exemplo, HE-AAC.
[00106] O codificador unido 401 transmite um fluxo de dados 408, que compreende uma pluralidade de grupos de quadros e identificadores associados. O fluxo de dados 408 é proporcionado tipicamente a um decodificador e/ou receptor associado(s) 410, usando vários meios de transmissão e/ou meios de armazenamento. Atinge o decodificador 410 como um fluxo de dados 418, que pode ter sido alterado com relação ao fluxo de dados 408. O fluxo de dados 418 entra em um decodi- ficador de quadros 414, que executa verificação e autenticação do fluxo de dados 418, de acordo com os métodos e sistemas descritos no presente documento de patente. O decodificador de quadros 414 transmite um fluxo de dados 417, que corresponde, tipicamente, ao fluxo de dados 418, sem os identificadores e o campo de dados ou os elementos sintáticos correspondentes. O fluxo de dados 417 é decodificado no decodificador de áudio 413, no qual é descomprimido e no qual os metadados adicionados são removidos. Como descrito acima, a decodificação de quadros é conduzida, tipicamente, de uma maneira iterativa sequencial, de modo que o processamento seja conduzido quadro a quadro.
[00107] Deve-se também notar que os diferentes componentes de decodificação / recepção podem ser agrupados conjuntamente, para formar um decodificador unido. Por meio de exemplo, o decodificador de quadros 414 e o decodificador de áudio 413 podem formar um de- codificador / receptor unido 411, que pode ser implementado em um processador de sinais digitais. Como descrito acima, isso pode ser benéfico, para propiciar a interação entre o decodificador de áudio e a verificação do identificador. Eventualmente, o decodificador / receptor unido 411 transmite um fluxo de dados digitais 416, que é convertido em um sinal de áudio analógico 415, usando um conversor analógico / digital 412.
[00108] Deve-se notar que no presente documento, o termo "codificador" pode se referir ao codificador completo 400, codificador unido 401 ou codificador de quadros 404. O termo "decodificador" pode se referir ao decodificador completo 410, decodificador unido 411 ou de- codificador de quadros 414. Por outro lado, os denominados "codificadores inseguros" são codificadores que não geram de modo algum um identificador, ou que não geram um identificador de acordo com os métodos descritos no presente documento.
[00109] A figura 5 ilustra um sistema de difusão 500 exemplificativo, que compreende uma cabeça de rede de difusão 504. A cabeça de rede 504 também compreende um emendador ou um meio de emen- da, que é operável para combinar os fluxos de bits 501, 502 e 503 originários de diferentes codificadores. Dentro de um sistema de difusão, esses diferentes fluxos de bits 501, 502 e 503 podem ser diferentes fluxos de bits de áudio, que são tipicamente codificados por diferentes codificadores de áudio. Os fluxos de bits 501, 502 e 503 são compostos de uma pluralidade de quadros, que são representados pelos diferentes blocos sombreados. No exemplo ilustrativo, o fluxo de bits 501 compreende cinco quadros, o fluxo de bits 502 compreende quatro quadros e o fluxo de bits 503 compreende seis quadros. O emendador e/ou a cabeça de rede 504 é(são) operável (operáveis) para combinar o fluxo de bits, para gerar um fluxo de bits unido 505. Como mostrado no exemplo, isso pode ser feito por fixação do fluxo de bits 501 no fluxo de bits 503, e por fixação do fluxo de bits 502 no fluxo de bits 501. No entanto, como é também mostrado na Figura 5, pode ser necessário apenas selecionar partes dos fluxos de bits originais 501, 502 e 503, por exemplo, apenas as partes dos fluxos de bits de áudio. Como tal, o fluxo de bits combinado 505 compreende apenas dois quadros do fluxo de bits 503, seguidos por três quadros do fluxo de bits 501, e seguidos por dois quadros do fluxo de bits 502.
[00110] Os fluxos de bits originais 501, 502 e 503 podem compreender identificadores, isto é, os fluxos de bits 501, 502 e 503 podem se originar de codificadores seguros. Todos os identificadores podem ser baseados em um número diferente N de quadros. Sem perda de generalidade, considera-se que os identificadores de fluxos de bits 501 e 503 foram determinados para um grupo de quadros compreendendo dois quadros. Por outro lado, o fluxo de bits 502 não se origina de um codificador seguro e, portanto, não compreende um identificador.
[00111] É desejável que o emendador e/ou cabeça de rede 504 di- funda(m) um fluxo de bits 505, que também compreende um identificador, se os fluxos de bit 501 e 503 de entrada se originarem de um codificador seguro. Esse identificador deve ser enviado dentro do fluxo de bits 505 para todas as partes do fluxo de bits 505, que se originam de um codificador seguro. Por outro lado, as partes do fluxo de bits 505, que não se originam de um codificador seguro, isto é, as partes tiradas do fluxo de bits 502, não devem compreender um identificador.
[00112] Para atingir esse objeto, o emendador e/ou a cabeça de rede 504 pode(m) ser operável (operáveis) para conduzir uma decodi- ficação e/ou codificação do identificador. Como mostrado na figura 5, os primeiros dois quadros do fluxo de bits de saída 505 se originam do fluxo de bits 503. Se esses dois quadros corresponderem a um grupo de quadros, então o identificador desse grupo de quadros pode ser colocado no terceiro quadro do fluxo de bits 505. Isso é descrito em relação à figura 1. Se, por outro lado, os dois quadros pertencerem a diferentes grupos de quadros, então a cabeça de rede 504 pode ser operável para: . verificar se o fluxo de bits 503 se origina de um codificador seguro; e . gerar um novo identificador para os quadros de saída do fluxo de bits 503, isto é, para os primeiros dois quadros do fluxo de bits 505.
[00113] O número N usado para gerar um identificador no fluxo de bits de saída 505 não tem necessariamente que ser o mesmo número N usado para gerar um identificador nos fluxos de bits de entrada 501 e 503. Isso pode ser visto no contexto do fluxo de bits 501, para o qual apenas três quadros são incluídos no fluxo de bits de saída 505. Um primeiro identificador pode ser gerado no fluxo de bits de saída 505. Um primeiro identificador pode ser gerado para os primeiros dois quadros, enquanto que um segundo identificador pode ser gerado para o terceiro quadro. Em outras palavras, N pode ser dois para os primeiros dois quadros e não pode ser um para o terceiro quadro. Em geral, po- de-se, portanto, afirmar que N pode ser variado dentro de um fluxo de bits 505. Isso é devido ao fato de que N pode ser determinado independentemente no decodificador. De preferência, o número N usado par ao fluxo de bits de saída 505 é menor ou igual ao número N usado para os fluxos de bits de entrada 501 e 503.
[00114] Além do mais, deve-se notar que o fluxo de bits de entrada 502 não compreende um identificador, isto é, o fluxo de bits 502 não se origina de um codificador seguro. Consequentemente, o emendador e/ou cabeça de rede 504 não proporciona(m) um identificador no fluxo de bits 505 para os quadros originários do fluxo de bits 502. Como já descrito acima, o decodificador é tipicamente operável para detectar a ausência de um identificador no fluxo de bits 505. Se o número de quadros, que não compreendem um identificador, exceder um número máximo predefinido Nmax, então o decodificador vai detectar, tipicamente, que um fluxo de bits 505 não é mais de um codificador seguro.
[00115] Como mostrado pelo exemplo da figura 5, o fluxo de bits 505 pode ser constituído de partes que se originam de um codificador seguro e de outras partes, que não se originam de um codificador seguro. Consequentemente, um fluxo de bits 505 pode compreender partes que incluem um identificador válido e outras partes, que não incluem um identificador válido. Um emendador e/ou cabeça de rede 504 pode(m) ser operável (operáveis) para: . detectar os fluxos de bits de entrada compreendendo um identificador; . encaminhar um fluxo de bits, compreendendo um identificador, como um fluxo de bits de saída; . autenticar o fluxo de bits de entrada, com base no identificador; e . codificar o fluxo de bits com um novo identificador.
[00116] Em outras palavras, um emendador e/ou cabeça de rede 504 pode(m) compreender os aspectos de um codificador e/ou um de- codificador descrito(s) no presente documento de patente. Isto é, um emendador e/ou cabeça de rede 504 pode(m) funcionar como um de- codificador, quando do recebimento de um fluxo de bits de entrada, e pode funcionar como um codificador, quando da geração de um fluxo de bits de saída. Além do mais, podem ser operáveis para encaminhar um fluxo de bits, compreendendo um identificador, sem conduzir autenticação e recodificação. Essa operação de encaminhamento pode ser conduzida para transmissão contínua do mesmo fluxo de bits, enquanto que a decodificação e a recodificação podem ser usadas, de preferência, nos limites entre os fluxos de bits de diferentes codificadores. Por uso da operação de encaminhamento, a carga computacional do emendador e/ou cabeça de rede 504 pode ser reduzida.
[00117] Deve-se notar que a operação de encaminhamento pode ser usada nos casos em que o identificador de um grupo de quadros precedente não está influenciando o valor do identificador de um grupo de quadros de momento. Nesses casos, o grupo de quadros e o identificador associado dele podem ser vistos como sendo uma entidade independente, que pode ser encaminhada diretamente para o fluxo de bits de saída. Por outro lado, se identificadores interligados contínuos são usados, quando um identificador de um grupo de quadros de momento depende do identificador do grupo de quadros anterior, então o emendador vai, de preferência, recodificar todo o fluxo de bits, para gerar um fluxo de identificadores interligados continuamente para o fluxo de bits de saída. Isso vai garantir que uma parte desautorizada não seja capaz de substituir os segmentos do fluxo de bits de saída.
[00118] Deve-se notar que, na maior parte dos casos, a recodifica- ção do emendador é apenas limitada à geração de novos identificadores. O próprio fluxo de bits, isto é, notavelmente, a codificação de áudio, não é tipicamente afetada. Consequentemente, a recodificação do fluxo de bits pode ser conduzida a uma baixa complexidade computacional. No entanto, se um valor criptográfico for inserido em um quadro, que não continha previamente qualquer valor criptográfico, então pode ser necessário conduzir recodificação de áudio.
[00119] A figura 6 ilustra ainda a emenda de fluxos de bits de entrada 1 a 4 em um fluxo de bits concatenado de saída para uma concretização preferida. No exemplo ilustrado, o fluxo de bits de entrada 1 forma grupos de 4 quadros para a geração de valores criptográficos. As setas anguladas, sob o fluxo de bits, ilustram que o valor criptográfico de um grupo de quadros é inserido no primeiro quadro do grupo seguinte. Os quadros nos quais os valores criptográficos são inseridos são sombreados na figura. Os grupos de quadros do fluxo de bits de entrada 3 compreendem 5 quadros. O fluxo de bits de entrada 4 não tem quaisquer valores criptográficos e não são verificados e inseguros.
[00120] As linhas verticais na figura indicam os pontos de emenda. Como pode-se notar da figura, o fluxo de bits de saída compreende uma primeira seção I, correspondente ao fluxo de bits de entrada 1, uma segunda seção II, correspondente ao fluxo de bits de entrada 2, uma terceira seção III, correspondente ao fluxo de bits de entrada 3, e uma quarta seção IV, correspondente ao fluxo de bits de entrada 4, as seções sendo emendadas nos pontos de emenda. Até o primeiro ponto de emenda, o fluxo de bits de entrada 1, incluindo os valores criptográficos, pode ser copiado no fluxo de bits concatenado. O primeiro valor criptográfico na seção II, no entanto, precisa ser recalculado, porque, devido à emenda, se refere a diferentes quadros de dados que o valor criptográfico correspondente do fluxo de bits 2. Em detalhes, esse valor criptográfico é gerado com base em 5 quadros, um pertencente ao fluxo de bits de entrada 1 (antes do ponto de emenda) e quatro pertencentes ao fluxo de bits de entrada 2 (após o ponto de emenda). O recálculo dos valores criptográficos é indicado pelas setas aci- ma do fluxo de bits e sombreamento inalterado. Em virtude da propagação da variação no primeiro valor criptográfico recalculado no fluxo de bits concatenado, os seguintes valores criptográficos do fluxo de bits 2 também precisam ser recalculados.
[00121] No segundo ponto de emenda, o fluxo de bits selecionado varia de 2 a 3. O valor criptográfico do primeiro quadro do fluxo de bits III é recalculado, com base nos 6 quadros anteriores do fluxo de bits 2. No ponto de emenda seguinte, o fluxo de bits inseguro 4 é selecionado e nenhum valor criptográfico é inserido na seção IV do fluxo de bits concatenado. Alternativamente, um valor criptográfico pode ser gerado para os quadros finais do fluxo de bits 3, copiados no fluxo de bits concatenado, para indicar corretamente quando a seção insegura do fluxo de bits concatenado termina. Esse valor criptográfico adicional é, de preferência, inserido no primeiro quadro da seção IV, como indicado na figura com um círculo pontilhado. Dependendo dos requisitos de taxa de bits, pode ser necessário recodificar esse quadro, para criar espaço para inserção do valor criptográfico adicional.
[00122] A figura 7 ilustra outro exemplo de concatenação de fluxos de bits de entrada 1 e 2 em um fluxo de bits de saída. Nesse caso, o ponto de emenda é pouco antes de um quadro conduzindo um valor criptográfico no segundo fluxo de bits. Devem ser consideradas as posições dos valores criptográficos a partir dos primeiro e segundo fluxos de bits, um grande vão de valores criptográficos vai resultar no fluxo de bits concatenado. A distância entre os valores criptográficos nessa seção do fluxo de bits concatenado pode exceder o valor máximo, Nmax, que um decodificador aceita sem indicar uma perda de confiança no fluxo de bits. Desse modo, é preferido inserir um valor criptográ-fico adicional no ponto de emenda, por exemplo, no primeiro quadro do segundo fluxo de bits, de modo que o número de quadros nos quadros não excede Nmax. De novo, dependendo das limitações de taxa de bits, pode ser necessário recodificar esse quadro para criar espaço para inserir o valor criptográfico adicional no fluxo de bits. Como uma observação, o valor criptográfico pode ser, nesse caso, copiado do primeiro quadro do fluxo de bits 1, após o ponto de emenda, porque o valor criptográfico adicional no fluxo de bits concatenado se refere aos mesmos 6 quadros do fluxo de bits 1. O conteúdo de dados do quadro, no qual o valor criptográfico é incluído, no entanto, pertence ao fluxo de bits 2 (precisamente, corresponde ao primeiro quadro do fluxo de bits 2, após o ponto de emenda).
[00123] O presente documento descreve um método e um sistema, que permitem a introdução de um identificador ou valor criptográfico em um fluxo de dados. Esse identificador pode ser usado para autenticar e verificar o fluxo de dados. Além do mais, o identificador pode ser usado para garantir o ajuste da configuração correta do decodificador para o fluxo de dados, que vai ser reproduzido ou processado. Em particular, o método e o sistema incorporam dados adicionais, isto é, um identificador, a um fluxo de bits HE AAC, que autentica esse fluxo de bits como originário de um codificador ou transmissor legítimo. Isso pode indicar ao receptor que o fluxo de bits HE AAC segue uma certa especificação e/ou um certo padrão de qualidade. O identificador é, de preferência, derivado de um cálculo HDMAC-MD5.
[00124] O método e o sistema podem ser usados para a autenticação de arquivos multimídia e fluxos multimídia, e também podem detectar uma concatenação de vários fluxos protegidos, sem quebrar, em geral, a autenticação. Isso significa que não um fluxo completo é checado para consistência, mas um conjunto de quadros consecutivos. Isso suporta cenários de difusão típicos, isto é, a denominada "emenda", em que, frequentemente, um dispositivo comuta entre diferentes codificadores de fluxos de bits, para criar o fluxo de saída efetivo. Além do mais, o método e o sistema podem ser usados para proteger as informações em banda e fora de banda, em que as informações em banda compreendem, tipicamente, os dados de meios e os metadados associados, e em que os dados fora de banda compreendem, tipicamente, dados de configuração. Os método e sistema permitem, portanto, o controle e/ou a detecção da reprodução e/ou decodificação correta(s) de um fluxo multimídia.
[00125] Os método e sistema descritos no presente documento podem ser implementados como software, programação em hardware /ou hardware. Certos componentes podem ser, por exemplo, implementados como software sendo executado em um processador ou microprocessador de sinais digitais. Outros componentes podem ser, por exemplo, implementados como hardware, e/ou como circuitos integrados específicos de aplicação. Os sinais encontrados nos método e sistema descritos podem ser armazenados em meios, tais como memória de acesso aleatório ou meios de armazenamento ópticos. Podem ser transferidos por meio de redes, tais como redes de rádio, redes de satélite, redes sem fio ou redes ligadas, por exemplo, a Internet. Os dispositivos típicos, que fazem uso dos método e sistema descritos no presente documento, são as caixas de sinais de frequência ou outro equipamento para premissas de clientes, que decodificam sinais de áudio. No lado de codificação, os método e sistema podem ser usados em estações de difusão, por exemplo, em sistemas de cabeças de rede de vídeo e áudio.

Claims (13)

1. Método para codificar um fluxo de dados (100) compreendendo uma pluralidade de quadros de dados (101,102,103,104,105,106) caracterizado pelo fato de que compreende as etapas de: gerar (207,208,209,210) um valor criptográfico (122) de N quadros de dados sucessivos (112) e informações de configuração usando uma função hash criptográfica, com N>1; em que as informações de configuração compreendem in-formações para sintetizar o fluxo de dados (100); em que gerar (207,208,209,210) o valor criptográfico (122) dos N quadros de dados sucessivos (112) compreende gerar (208) iterativamente um valor criptográfico intermediário de cada um dos N quadros de dados sucessivos (112) usando um estado de partida do valor criptográfico intermediário até que um valor criptográfico intermediário do enésimo quadro de dados (105) seja gerado, o valor criptográfico intermediário do enésimo quadro de dados (105) representando o valor criptográfico (122) dos N quadros de dados sucessivos (112); em que o estado de partida do primeiro quadro de dados (103) dos N quadros de dados sucessivos (112) é um valor criptográfico intermediário das informações de configuração, em que o estado de partida de cada quadro de dados subsequente (104,105) dos N quadros de dados sucessivos (112) é o valor criptográfico intermediário do quadro de dados (103,104) dos N quadros de dados sucessivos (112), que precede o quadro de dados subsequente (104,105) dos N quadros de dados sucessivos (112); e inserir (205) o valor criptográfico (122) dos N quadros de dados sucessivos (112) em um quadro (106) do fluxo de dados subsequente (100) aos N quadros de dados sucessivos (112).
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o valor criptográfico (122) é inserido como um elemento de fluxo de dados (DSE); e em que o elemento de fluxo de dados (DSE) é um elemento sintático do quadro de dados (106) do fluxo de dados (100) e em que o fluxo de dados (100) é um fluxo MPEG4-AAC ou MPEG2-AAC.
3. Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que as informações de configuração compreendem pelo menos uma dentre: uma indicação de uma taxa de amostragem; uma indicação de uma configuração de canal de um sistema de codificação de áudio; uma indicação do número de amostras em um quadro de dados (101,102,103,104,105,106).
4. Método, de acordo com qualquer uma das reivindicações 1 a 3, caracterizado pelo fato de que compreende selecionar N de modo que os N quadros de dados sucessivos (112) cubram o mais próximo possível de uma duração predeterminada de um sinal correspondente quando reproduzido com uma configuração apropriada.
5. Método para verificar um fluxo de dados (100) em um decodificador (414), o fluxo de dados (100) compreendendo uma pluralidade de quadros de dados (101,102,103,104,105,106) e um valor criptográfico (122) associado com N quadros de dados sucessivos (112) precedentes, com N>1, caracterizado pelo fato de que compreende as etapas de: gerar (308) um segundo valor criptográfico dos N quadros de dados sucessivos (112) e de informações de configuração usando uma função hash criptográfica; em que as informações de configuração compreendem in-formações para sintetizar o fluxo de dados (100); em que gerar o segundo valor criptográfico dos N quadros de dados sucessivos (112) compreende gerar (208) iterativamente um segundo valor criptográfico intermediário de cada um dos N quadros de dados sucessivos (112) usando um estado de partida do valor criptográfico intermediário até que um segundo valor criptográfico intermediário do enésimo quadro de dados (105) seja gerado, o segundo valor criptográfico intermediário do enésimo quadro de dados (105) representando o segundo valor criptográfico dos N quadros de dados sucessivos (112); em que o estado de partida do primeiro quadro de dados (103) dos N quadros de dados sucessivos (112) é um segundo valor criptográfico intermediário das informações de configuração, em que o estado de partida de cada quadro de dados subsequente (104,105) dos N quadros de dados sucessivos (112) é o segundo valor criptográfico intermediário do quadro de dados (103,104) dos N quadros de dados sucessivos (112), que precede o quadro de dados subsequente (104,105) dos N quadros de dados sucessivos (112); extrair (307) o valor criptográfico (122) de um quadro de dados (106) do fluxo de dados (100); e comparar (309) o valor criptográfico (122) com o segundo valor criptográfico.
6. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que o fluxo de dados (100) é um fluxo MPEG4-AAC ou MPEG2-AAC; em que o valor criptográfico (122) é extraído a partir de um elemento de fluxo de dados (DSE); e em que o elemento de fluxo de dados (DSE) é um elemento sintático do quadro de dados (106) do fluxo de dados (100).
7. Método, de acordo com a reivindicação 5 ou 6, caracterizado pelo fato de que o valor criptográfico (112), que é gerado cal- culando um valor HMAC-MD5 (código de autenticação de mensagem hash), é uma versão truncada de um valor criptográfico mais longo, e em que gerar (308) o segundo valor criptográfico compreende truncar o segundo valor criptográfico.
8. Método, de acordo com a reivindicação 7, caracterizado pelo fato de que um comprimento do valor criptográfico é 16, 24, 32, 48, 64, 80, 96 ou 112 bits, e em que o segundo valor criptográfico é truncado para o comprimento do valor criptográfico.
9. Fluxo de dados (100) caracterizado pelo fato de que compreende um valor criptográfico (122) gerado e inserido de acordo com o método conforme definido em qualquer uma das reivindicações 1 a 4.
10. Codificador (404) operável para codificar um fluxo de dados (100) compreendendo uma pluralidade de quadros de dados (101,102,103,104,105,106) caracterizado pelo fato de que compreende um processador operável para: gerar um valor criptográfico (122) de N de quadros de dados sucessivos (112) e de informações de configuração usando uma função hash criptográfica, com N>1; em que as informações de configuração compreendem in-formações para sintetizar o fluxo de dados (11); em que gerar o valor criptográfico (122) dos N quadros de dados sucessivos (112) compreende gerar iterativamente um valor criptográfico intermediário de cada um dos N quadros de dados sucessivos (112) usando um estado de partida do valor criptográfico intermediário até um valor criptográfico intermediário do enésimo quadro de dados (105) é gerado, o valor criptográfico intermediário do enési- mo quadro de dados (105) representando o valor criptográfico (122) dos N quadros de dados sucessivos (112); em que o estado de partida do primeiro quadro de dados (103) dos N quadros de dados sucessivos (112) é um valor criptográfico intermediário das informações de configuração, em que o estado de partida de cada quadro de dados subsequente (104,105) dos N quadros de dados sucessivos (112) é o valor criptográfico intermediário do quadro de dados (103,104) dos N quadros de dados sucessivos (112), que precede o quadro de dados subsequente (104,105) dos N quadros de dados sucessivos (112); e inserir o valor criptográfico (122) em um quadro (106) do fluxo de dados (100) subsequente aos N quadros de dados sucessivos (112).
11. Decodificador (414) operável para verificar um fluxo de dados (100) compreendendo uma pluralidade de quadros de dados (101,102,103,104,105,106) e um valor criptográfico (122) associado com N quadros de dados sucessivos (112) precedentes, com N>1 caracterizado pelo fato de que compreende um processador operável para: gerar um segundo valor criptográfico de N quadros de dados sucessivos (112) e de informações de configuração usando uma função hash criptográfica; em que as informações de configuração compreendem in-formações para sintetizar o fluxo de dados (100); em que gerar o segundo valor criptográfico dos N quadros de dados sucessivos (112) compreende gerar iterativamente um segundo valor criptográfico intermediário de cada um dos N quadros de dados sucessivos (112) usando um estado de partida do valor criptográfico intermediário até um segundo valor criptográfico intermediário do enésimo quadro de dados (105) é gerado, o segundo valor criptográfico intermediário do enésimo quadro de dados (105) representando o segundo valor criptográfico dos N quadros de dados sucessivos (112); em que o estado de partida do primeiro quadro de dados (103) dos N quadros de dados sucessivos (112) é um segundo valor criptográfico intermediário das informações de configuração, em que o estado de partida de cada quadro de dados subsequente (104,105) dos N sucessivos quadros de dados (112) é o segundo valor criptográfico intermediário do quadro de dados (103,104) dos N quadros de dados sucessivos (112), que precede o quadro de dados subsequente (104,105) dos N quadros de dados sucessivos (112); extrair o valor criptográfico (122) a partir de um quadro de dados (106) do fluxo de dados (100); e comparar o valor criptográfico (122) com o segundo valor criptográfico.
12. Meio de armazenamento caracterizado pelo fato de que compreende um programa de computador adaptado para execução em um processador e para executar as etapas do método conforme definido em qualquer uma das reivindicações 1 a 8, quando executado em um dispositivo de computação.
13. Método para concatenar um primeiro e um segundo fluxos de bits (501,502), cada um deles compreendendo uma pluralidade de quadros de dados (101,102,103,104,105,106) e um valor criptográfico (122) associado com um determinado número de quadros de dados (101,102,103,104,105,106) caracterizado pelo fato de que compreende a etapa de gerar um fluxo de bits concatenado (505) a partir do primeiro e segundo fluxos de bits (501,502), em que o fluxo de bits concatenado (505) compreende pelo menos uma parte da pluralidade dos quadros de dados (101,102,103,104,105,106) a partir dos primeiro e segundo fluxos de bits (501,502), e compreende um valor criptográfico (122) gerado e inserido de acordo com o método conforme definido em qualquer uma das reivindicações 1 a 4.
BR112012002831-6A 2009-08-07 2010-08-06 Método para codificar um fluxo de dados, método para verificar um fluxo de dados, fluxo de dados, codificador, decodificador, meio de armazenamento e método para concatenar um primeiro e um segundo fluxos de bits BR112012002831B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US23229509P 2009-08-07 2009-08-07
US61/232,295 2009-08-07
PCT/EP2010/004827 WO2011015369A1 (en) 2009-08-07 2010-08-06 Authentication of data streams

Publications (2)

Publication Number Publication Date
BR112012002831A2 BR112012002831A2 (pt) 2021-01-26
BR112012002831B1 true BR112012002831B1 (pt) 2021-08-31

Family

ID=43014283

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112012002831-6A BR112012002831B1 (pt) 2009-08-07 2010-08-06 Método para codificar um fluxo de dados, método para verificar um fluxo de dados, fluxo de dados, codificador, decodificador, meio de armazenamento e método para concatenar um primeiro e um segundo fluxos de bits

Country Status (18)

Country Link
US (1) US8885818B2 (pt)
EP (1) EP2462587B1 (pt)
JP (1) JP5542205B2 (pt)
KR (1) KR101489364B1 (pt)
CN (1) CN102576559B (pt)
AR (1) AR077680A1 (pt)
AU (1) AU2010280971B2 (pt)
BR (1) BR112012002831B1 (pt)
CA (1) CA2768327C (pt)
HK (1) HK1168461A1 (pt)
IL (1) IL217469A (pt)
MX (1) MX2012001558A (pt)
MY (1) MY152679A (pt)
RU (1) RU2509424C2 (pt)
SG (1) SG177605A1 (pt)
TW (1) TWI501580B (pt)
UA (1) UA104483C2 (pt)
WO (1) WO2011015369A1 (pt)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI538394B (zh) 2009-04-10 2016-06-11 杜比實驗室特許公司 利用順逆向濾波方式獲取所欲非零相移之技術
TWI413110B (zh) 2009-10-06 2013-10-21 Dolby Int Ab 以選擇性通道解碼的有效多通道信號處理
WO2011048010A1 (en) 2009-10-19 2011-04-28 Dolby International Ab Metadata time marking information for indicating a section of an audio object
US9210456B1 (en) * 2012-03-07 2015-12-08 The Directv Group, Inc. Method and system for detecting unauthorized use of a user device using receiver identification in a network
US9813705B2 (en) * 2012-04-26 2017-11-07 Qualcomm Incorporated Parameter set coding
WO2014050597A1 (ja) * 2012-09-28 2014-04-03 シャープ株式会社 画像復号装置
ES2629195T3 (es) * 2013-01-21 2017-08-07 Dolby Laboratories Licensing Corporation Codificación y descodificación de una secuencia de bits según un nivel de confianza
KR101428770B1 (ko) * 2013-05-29 2014-08-08 한국전자통신연구원 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치 및 방법
KR101516573B1 (ko) * 2013-07-26 2015-05-04 한국전자통신연구원 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치 및 방법
US10263783B2 (en) * 2013-08-23 2019-04-16 Nec Corporation Method and system for authenticating a data stream
FR3015167A1 (fr) * 2013-12-13 2015-06-19 Orange Systeme de transport de donnees radio multipoint a multipoint
WO2016049895A1 (zh) * 2014-09-30 2016-04-07 华为技术有限公司 配置的方法、配置的装置及设备
JP2016122917A (ja) * 2014-12-24 2016-07-07 パナソニックIpマネジメント株式会社 署名生成装置、署名検証装置、署名生成方法及び署名検証方法
CN107531676A (zh) 2015-04-13 2018-01-02 拜耳作物科学股份公司 N‑环烷基‑n‑(双杂环基亚乙基)‑(硫代)羧酰胺衍生物
EP3288025A4 (en) * 2015-04-24 2018-11-07 Sony Corporation Transmission device, transmission method, reception device, and reception method
EP3402301B1 (en) * 2015-05-19 2019-07-10 Telefonaktiebolaget LM Ericsson (publ) Methods, wireless communication device and radio network node for managing contention resolution
JP2017009663A (ja) * 2015-06-17 2017-01-12 ソニー株式会社 録音装置、録音システム、および、録音方法
CN106610995B (zh) * 2015-10-23 2020-07-07 华为技术有限公司 一种创建密文索引的方法、装置及系统
TWI589153B (zh) * 2015-12-29 2017-06-21 晨星半導體股份有限公司 資料流的同步偵測方法
CN107040793A (zh) * 2016-02-04 2017-08-11 晨星半导体股份有限公司 数据流的同步检测方法
DE102016207642A1 (de) * 2016-05-03 2017-11-09 Siemens Aktiengesellschaft Verfahren und Vorrichtungen zum Authentisieren eines Datenstroms
PL3568853T3 (pl) 2017-01-10 2021-06-14 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Dekoder audio, enkoder audio, sposób dostarczania dekodowanego sygnału audio, sposób dostarczania enkodowanego sygnału audio, strumień audio, moduł dostarczania strumienia audio i program komputerowy używający identyfikator strumienia
US9870508B1 (en) * 2017-06-01 2018-01-16 Unveiled Labs, Inc. Securely authenticating a recording file from initial collection through post-production and distribution
KR102275868B1 (ko) * 2017-11-07 2021-07-12 한국전자기술연구원 비디오 데이터의 위/변조 방지 장치 및 방법
US10956246B1 (en) * 2018-07-16 2021-03-23 Amazon Technologies, Inc. Isolated read channel management interfaces at streaming data service
JP7113589B2 (ja) * 2018-07-17 2022-08-05 株式会社デンソー 情報仲介装置、情報提供装置、及び情報取得装置
US11343108B2 (en) * 2019-06-12 2022-05-24 Arizona Board Of Regents On Behalf Of Northern Arizona University Generation of composite private keys
BR112021025587A2 (pt) * 2019-07-17 2022-02-01 Dolby Int Ab Gerenciamento de latência para entrega de conteúdo
US11431512B2 (en) 2019-10-16 2022-08-30 Microsoft Technology Licensing, Llc Cryptographic validation of media integrity
JP2023500632A (ja) * 2019-10-30 2023-01-10 ドルビー ラボラトリーズ ライセンシング コーポレイション 没入的音声およびオーディオ・サービスにおけるビットレート配分
US11838267B2 (en) * 2020-07-16 2023-12-05 Twistlock, Ltd. Distributed identity-based firewall policy evaluation

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5463424A (en) 1993-08-03 1995-10-31 Dolby Laboratories Licensing Corporation Multi-channel transmitter/receiver system providing matrix-decoding compatible signals
ATE237197T1 (de) 1993-11-18 2003-04-15 Digimarc Corp Identifikations/beglaubigungskodierungsverfahre und -vorrichtung
US5646997A (en) 1994-12-14 1997-07-08 Barton; James M. Method and apparatus for embedding authentication information within digital data
US5915027A (en) 1996-11-05 1999-06-22 Nec Research Institute Digital watermarking
US6009176A (en) 1997-02-13 1999-12-28 International Business Machines Corporation How to sign digital streams
US7197156B1 (en) 1998-09-25 2007-03-27 Digimarc Corporation Method and apparatus for embedding auxiliary information within original data
US6904089B1 (en) * 1998-12-28 2005-06-07 Matsushita Electric Industrial Co., Ltd. Encoding device and decoding device
WO2000054453A1 (en) 1999-03-10 2000-09-14 Digimarc Corporation Signal processing methods, devices, and applications for digital rights management
US6785815B1 (en) 1999-06-08 2004-08-31 Intertrust Technologies Corp. Methods and systems for encoding and protecting data using digital signature and watermarking techniques
GB9929364D0 (en) * 1999-12-10 2000-02-02 Microbar Security Limited Improvements in or relating to coding techniques
US7058815B2 (en) 2001-01-22 2006-06-06 Cisco Technology, Inc. Method and system for digitally signing MPEG streams
US6996717B2 (en) * 2001-05-24 2006-02-07 Matsushita Electric Industrial Co., Ltd. Semi-fragile watermarking system for MPEG video authentication
WO2003024020A1 (en) 2001-09-10 2003-03-20 Entriq Limited Bvi Method and computer system to perform on the fly fingerprinting for media content
RU2308077C2 (ru) 2001-12-04 2007-10-10 Майкрософт Корпорейшн Способы и системы для криптографической защиты охраняемого содержимого
GB2392337B (en) 2002-07-19 2005-12-07 Matsushita Electric Ind Co Ltd Digital watermarking apparatus and application apparatus using the same
US7360093B2 (en) * 2002-07-22 2008-04-15 Xerox Corporation System and method for authentication of JPEG image data
US20040243820A1 (en) * 2003-05-14 2004-12-02 Kenichi Noridomi Information-embedding apparatus and method, tampering-detecting apparatus and method, and recording medium
JP2004364263A (ja) * 2003-05-14 2004-12-24 Matsushita Electric Ind Co Ltd 情報埋め込み装置、改ざん検出装置及びそれらの方法並びに記録媒体
GB0317571D0 (en) * 2003-07-26 2003-08-27 Koninkl Philips Electronics Nv Content identification for broadcast media
US7417989B1 (en) 2003-07-29 2008-08-26 Sprint Spectrum L.P. Method and system for actually identifying a media source in a real-time-protocol stream
US20060136728A1 (en) 2003-08-15 2006-06-22 Gentry Craig B Method and apparatus for authentication of data streams with adaptively controlled losses
GB0403331D0 (en) 2004-02-14 2004-03-17 Koninkl Philips Electronics Nv Watermark detection
US8539608B1 (en) * 2004-03-25 2013-09-17 Verizon Corporate Services Group Inc. Integrity checking at high data rates
JP2005318068A (ja) * 2004-04-27 2005-11-10 Kddi Corp コンテンツ認証データの電子透かし埋め込み方式および認証方式
JP4499631B2 (ja) 2005-08-31 2010-07-07 株式会社日立国際電気 画像受信装置及びプログラム
US7752449B1 (en) * 2006-02-22 2010-07-06 Avaya, Inc. System and method for generating a non-repudiatable record of a data stream
US20080005558A1 (en) 2006-06-29 2008-01-03 Battelle Memorial Institute Methods and apparatuses for authentication and validation of computer-processable communications
KR100781528B1 (ko) * 2006-06-29 2007-12-03 삼성전자주식회사 무결성을 보장하는 비디오 스트림을 제공하는 장치 및 그방법
US20080010466A1 (en) * 2006-07-10 2008-01-10 William Hopper Digital identifier chaining
WO2008046492A1 (en) 2006-10-20 2008-04-24 Dolby Sweden Ab Apparatus and method for encoding an information signal
US7930554B2 (en) * 2007-05-31 2011-04-19 Vasco Data Security,Inc. Remote authentication and transaction signatures
JP5101964B2 (ja) 2007-09-25 2012-12-19 京セラ株式会社 受信装置
CN101855635B (zh) 2007-10-05 2013-02-27 杜比实验室特许公司 可靠地与媒体内容对应的媒体指纹
JP2009093506A (ja) 2007-10-11 2009-04-30 Sony Corp 信号処理装置、信号処理方法および信号処理プログラム
JP4584300B2 (ja) 2007-12-19 2010-11-17 富士通株式会社 電子署名プログラム、コンピュータにより読み取り可能な記録媒体、電子署名装置、電子署名方法
US8798776B2 (en) 2008-09-30 2014-08-05 Dolby International Ab Transcoding of audio metadata
BRPI0919880B1 (pt) 2008-10-29 2020-03-03 Dolby International Ab Método e aparelho para prover proteção contra o ceifamento de sinal de um sinal de áudio derivado de dados de áudio digital e transcodificador
TWI538394B (zh) 2009-04-10 2016-06-11 杜比實驗室特許公司 利用順逆向濾波方式獲取所欲非零相移之技術
CN103854651B (zh) 2009-12-16 2017-04-12 杜比国际公司 Sbr比特流参数缩混
TWI529703B (zh) 2010-02-11 2016-04-11 杜比實驗室特許公司 用以非破壞地正常化可攜式裝置中音訊訊號響度之系統及方法
TWI525987B (zh) 2010-03-10 2016-03-11 杜比實驗室特許公司 在單一播放模式中組合響度量測的系統

Also Published As

Publication number Publication date
TW201134135A (en) 2011-10-01
KR101489364B1 (ko) 2015-02-03
IL217469A0 (en) 2012-03-01
AU2010280971B2 (en) 2013-02-14
UA104483C2 (uk) 2014-02-10
KR20120050446A (ko) 2012-05-18
MY152679A (en) 2014-10-31
IL217469A (en) 2015-02-26
CN102576559A (zh) 2012-07-11
WO2011015369A8 (en) 2012-03-01
AR077680A1 (es) 2011-09-14
JP2013500655A (ja) 2013-01-07
CA2768327C (en) 2015-10-27
WO2011015369A1 (en) 2011-02-10
MX2012001558A (es) 2012-04-10
AU2010280971A1 (en) 2012-02-09
US20120128151A1 (en) 2012-05-24
HK1168461A1 (zh) 2012-12-28
RU2509424C2 (ru) 2014-03-10
CA2768327A1 (en) 2011-02-10
JP5542205B2 (ja) 2014-07-09
TWI501580B (zh) 2015-09-21
SG177605A1 (en) 2012-02-28
BR112012002831A2 (pt) 2021-01-26
EP2462587A1 (en) 2012-06-13
RU2012107995A (ru) 2013-09-20
EP2462587B1 (en) 2016-07-06
US8885818B2 (en) 2014-11-11
CN102576559B (zh) 2015-09-09

Similar Documents

Publication Publication Date Title
BR112012002831B1 (pt) Método para codificar um fluxo de dados, método para verificar um fluxo de dados, fluxo de dados, codificador, decodificador, meio de armazenamento e método para concatenar um primeiro e um segundo fluxos de bits
US11075762B2 (en) Metadata transcoding
ES2739886T3 (es) Procesador de datos y transporte de datos de control del usuario a decodificadores de audio y renderizadores
KR101673131B1 (ko) 프로그램 정보 또는 서브스트림 구조 메타데이터를 갖는 오디오 인코더 및 디코더
EP2647006B1 (en) Adaptive processing with multiple media processing nodes
BRPI0908035B1 (pt) Metodo para produzir um arquivo de computador para inclusao em um pacote de audio, codificador de movimento, metodo para decodificar, em tempo real, um sinal vibro-cinetico multicanal, e decodificador de movimento
CN111064717B (zh) 数据编码方法、数据解码方法以及相关终端、装置
KR0177314B1 (ko) 엠펙시스템에서의 전송패킷 보호장치

Legal Events

Date Code Title Description
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B06A Patent application procedure suspended [chapter 6.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 06/08/2010, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO.

B25G Requested change of headquarter approved

Owner name: DOLBY INTERNATIONAL AB (IE)