Criptografia autenticada - Authenticated encryption

A criptografia autenticada ( AE ) e a criptografia autenticada com dados associados ( AEAD ) são formas de criptografia que garantem simultaneamente a confidencialidade e a autenticidade dos dados.

Garantias de segurança

Além de proteger a integridade e a confidencialidade da mensagem, a criptografia autenticada pode fornecer segurança contra o ataque de texto cifrado escolhido . Nesses ataques, um adversário tenta obter uma vantagem contra um criptossistema (por exemplo, informações sobre a chave de descriptografia secreta) submetendo textos cifrados cuidadosamente escolhidos a algum "oráculo de descriptografia" e analisando os resultados descriptografados. Esquemas de criptografia autenticados podem reconhecer textos cifrados construídos incorretamente e se recusar a descriptografá-los. Isso, por sua vez, evita que o invasor solicite a descriptografia de qualquer texto cifrado, a menos que tenha sido gerado corretamente usando o algoritmo de criptografia, o que implica que o texto simples já é conhecido. Implementada corretamente, a criptografia autenticada remove a utilidade do oráculo de descriptografia, evitando que um invasor obtenha informações úteis que o invasor ainda não possui.

Muitos modos de criptografia autenticados especializados foram desenvolvidos para uso com cifras de bloco simétrico . No entanto, a criptografia autenticada pode ser construída genericamente combinando um esquema de criptografia e um código de autenticação de mensagem (MAC), desde que:

Interface de programação

Uma interface de programação típica para uma implementação AE fornece as seguintes funções:

  • Encriptação
    • Entrada: texto simples , chave e, opcionalmente, um cabeçalho em texto simples que não será criptografado, mas será coberto pela proteção de autenticidade.
    • Saída: texto cifrado e etiqueta de autenticação ( código de autenticação de mensagem ).
  • Decifrar
    • Entrada: texto cifrado , chave , etiqueta de autenticação e, opcionalmente, um cabeçalho (se usado durante a criptografia).
    • Saída: texto simples ou um erro se a etiqueta de autenticação não corresponder ao texto cifrado ou cabeçalho fornecido .

A parte do cabeçalho destina-se a fornecer proteção de autenticidade e integridade para metadados de rede ou armazenamento para os quais a confidencialidade é desnecessária, mas a autenticidade é desejada.

História

A necessidade de criptografia autenticada surgiu da observação de que a combinação segura de modos de operação de criptografia de bloco de autenticação e confidencialidade separados pode ser propensa a erros e difícil. Isso foi confirmado por uma série de ataques práticos introduzidos em protocolos de produção e aplicativos por implementação incorreta ou falta de autenticação (incluindo SSL / TLS ).

Por volta do ano 2000, uma série de esforços evoluiu em torno da noção de modos de padronização que garantiam a implementação correta. Em particular, um grande interesse em modos possivelmente seguros foi despertado pela publicação dos modos CBC e Parallelizable , IAPM, de Charanjit Jutla com reconhecimento de integridade em 2000 (ver OCB e cronologia). Seis modos de criptografia autenticados diferentes (ou seja, modo de livro de código de deslocamento 2.0 , OCB  2.0; Key Wrap ; contador com CBC-MAC , CCM; criptografar, autenticar e traduzir , EAX; criptografar então MAC , EtM; e modo Galois / contador , GCM) foram padronizados na ISO / IEC 19772: 2009. Métodos de criptografia mais autenticados foram desenvolvidos em resposta à solicitação do NIST . As funções de esponja podem ser usadas no modo duplex para fornecer criptografia autenticada.

Bellare e Namprempre (2000) analisaram três composições de criptografia e primitivas MAC, e demonstraram que criptografar uma mensagem e, posteriormente, aplicar um MAC ao texto cifrado (a abordagem Encrypt-then-MAC ) implica segurança contra um ataque de texto cifrado escolhido adaptativo , desde que ambos as funções atendem às propriedades mínimas exigidas. Katz e Yung investigaram a noção sob o nome de "criptografia imprevisível" e provaram que implica segurança contra ataques de texto cifrado escolhidos.

Em 2013, foi anunciado um concurso para incentivar o design de modos de criptografia autenticados.

Criptografia autenticada com dados associados (AEAD)

AEAD é uma variante do AE que permite a um destinatário verificar a integridade das informações criptografadas e não criptografadas em uma mensagem. AEAD vincula dados associados (AD) ao texto cifrado e ao contexto onde ele deve aparecer, de forma que as tentativas de "recortar e colar" um texto cifrado válido em um contexto diferente sejam detectadas e rejeitadas.

Ele é exigido, por exemplo, por pacotes ou quadros de rede em que o cabeçalho precisa de visibilidade, a carga útil precisa de confidencialidade e ambos precisam de integridade e autenticidade .

Abordagens para criptografia autenticada

Encrypt-then-MAC (EtM)

Abordagem EtM

O texto simples é primeiro criptografado e, em seguida, um MAC é produzido com base no texto cifrado resultante. O texto cifrado e seu MAC são enviados juntos. Usado em, por exemplo, IPsec . O método padrão de acordo com a ISO / IEC 19772: 2009. Este é o único método que pode atingir a mais alta definição de segurança no AE, mas isso só pode ser alcançado quando o MAC usado é "fortemente não confiável". Em novembro de 2014, a extensão TLS e DTLS para EtM foi publicada como RFC  7366 . Vários conjuntos de criptografia EtM também existem para SSHv2 (por exemplo,hmac-sha1-etm@openssh.com)

Observe que a separação de chaves é obrigatória (chaves distintas devem ser usadas para criptografia e para o hash com chave), caso contrário, é potencialmente inseguro, dependendo do método de criptografia específico e da função hash usada.

Criptografar e MAC (E&M)

Abordagem E&M

Um MAC é produzido com base no texto simples, e o texto simples é criptografado sem o MAC. O MAC do texto simples e o texto cifrado são enviados juntos. Usado em, por exemplo, SSH . Mesmo que a abordagem E&M não tenha se provado ser fortemente imprevisível em si mesma, é possível aplicar algumas pequenas modificações ao SSH para torná-lo fortemente imprevisível, apesar da abordagem.

MAC-then-Encrypt (MtE)

Abordagem MtE

Um MAC é produzido com base no texto simples, então o texto simples e o MAC são criptografados juntos para produzir um texto cifrado baseado em ambos. O texto cifrado (contendo um MAC criptografado) é enviado. Usado, por exemplo, em SSL / TLS . Mesmo que a abordagem MtE não tenha se provado ser fortemente imprevisível em si mesma, a implementação SSL / TLS provou ser fortemente imprevisível por Krawczyk, que mostrou que SSL / TLS era, de fato, seguro por causa da codificação usada junto com o MtE mecanismo. Apesar da segurança teórica, uma análise mais profunda de SSL / TLS modelou a proteção como MAC-then-pad-then-encrypt, ou seja, o texto simples é primeiro preenchido com o tamanho do bloco da função de criptografia. Os erros de preenchimento geralmente resultam em erros detectáveis ​​no lado do destinatário, o que, por sua vez, leva a ataques de oráculo de preenchimento , como o Treze da Sorte .

Veja também

Referências

Em geral

links externos