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:
- O esquema de criptografia é semanticamente seguro sob um ataque de texto simples escolhido .
- A função MAC é imperceptível sob um ataque de mensagem escolhida .
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)
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)
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)
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
- Modo de operação de cifra de bloco
- Modo CCM
- Modo CWC
- Modo OCB
- Modo EAX
- Poly1305
- GCM
- GCM-SIV
- SGCM
- Signcryption
Referências
- Em geral
- Bellare, M .; Namprempre, C. (2000), T. Okamoto (ed.), "Authenticated Encryption: Relations between notions and analysis of the generic composition paradigm" , Extended Abstract in Advances in Cryptology: Asiacrypt 2000 Proceedings , Lecture Notes in Computer Science, Springer -Verlag, 1976 : 531, doi : 10.1007 / 3-540-44448-3_41 , ISBN 978-3-540-41404-9
links externos
- NIST: Desenvolvimento de Modos
- Como escolher um modo de criptografia autenticado