2 em 1: criptografia com proteção de segurança

As tarefas clássicas que são resolvidas pelos métodos criptográficos são garantir confidencialidade e garantir a autenticidade / imitabilidade dos dados armazenados e transmitidos. Antes (até meados da década de 2000), a criptografia (confidencialidade) e as funções de gerar um código de inserção / autenticação (resistência à imitação) eram usadas para resolver esses problemas. Ao mesmo tempo, a criptografia e a função de gerar a inserção foram implementadas por mecanismos criptográficos separados, o que causou muitos problemas. Antes de tudo, isso está relacionado ao gerenciamento de informações importantes: ao usar uma chave para criptografia e segurança, vários esquemas, por exemplo, AES-CBC + AES-CBC-MAC, são completamente instáveis. Para tornar essas construções seguras, é necessário gerar chaves adicionais usando, por exemplo, as funções de geração de chaves derivadas (KDF). Isso, por sua vez, leva a uma complicação significativa de protocolos criptográficos usando esquemas semelhantes. Além disso, o uso consistente de dois mecanismos nem sempre é a solução mais rápida em termos de desempenho.

Desde o início do século XXI, começaram as tentativas de criar mecanismos de criptografia com proteção contra imitações (às vezes o termo “criptografia autenticada” pode ser encontrada no English Authenticated Encryption), que resolveria essas duas tarefas ao mesmo tempo.

O próximo estágio no desenvolvimento de tais mecanismos pode ser considerado mecanismo de criptografia com segurança e dados associados (do inglês. AEAD - Criptografia autenticada com dados associados). Uma característica dos mecanismos da AEAD é que eles podem processar simultaneamente dois tipos de dados: dados para os quais é necessário garantir confidencialidade e segurança (por exemplo, dados de pacotes IP) e dados para os quais é necessário garantir apenas segurança sem privacidade - eles também são chamados " dados adicionalmente protegidos ”(“ dados associados ”,“ dados adicionalmente autenticados ”- pode ser o cabeçalho do pacote IP). Uma das aplicações mais populares para mecanismos AEAD são vários protocolos de proteção de dados criptográficos, por exemplo, o IETF TLS 1.3 RFC 8446 , recentemente adotado pela IETFsobre o que já escreveu em Habré . Portanto, este RFC 8446 considera algoritmos de criptografia autenticados usados ​​no protocolo (os princípios subjacentes ao protocolo TLS 1.3 podem ser encontrados aqui ).

Os mecanismos da AEAD podem ser construídos com base em vários projetos: cifras de fluxo e bloco, mapeamentos de compressão (funções de hash), agora construções populares do tipo "esponja" (do inglês "sponge"). Uma variedade de opções pode ser vista, em particular, no site do concurso CAESAR e em várias análises sobre esse concurso, veja, por exemplo, aqui e aqui. A propósito, o próprio concurso foi organizado em 2013 apenas para determinar o melhor mecanismo AEAD em vez do amplamente utilizado AES-GCM (o modo GCM foi padronizado pelo NIST em 2007), para o qual naquela época vários ataques foram propostos ( aqui e ali ). Ao mesmo tempo, requisitos funcionais adicionais foram apresentados aos concorrentes do CAESAR, como a capacidade de trabalhar “on-line”, a capacidade de paralelizar, liberdade de inversões, proteção contra o uso incorreto de inicialização e vetores únicos, presença de pré-cálculos, incremento de dados, simulações intermediárias, reutilização de associados fixos. dados. Nós explicamos com mais detalhes.

Trabalho "on-line": geralmente para garantir a confidencialidade / resistência à imitação, primeiro é necessário formar completamente todo o pacote de dados que será processado e só então iniciar o procedimento de processamento. Os mecanismos que permitem a operação "online" não exigem isso; eles podem trabalhar com o fluxo de dados de entrada em tempo real, processando-o "on the fly". Ao paralelizar os mecanismos da AEAD, queremos dizer a possibilidade de distribuir a computação entre vários processadores. Liberdade de inversões significa o uso no mecanismo AEAD apenas da função de criptografia ou apenas da função de decriptografia. Essa característica é importante do ponto de vista da implementação: para algumas cifras (como Grasshopper, AES), a criptografia e a descriptografia são implementadas usando diferentes transformações, respectivamente,liberdade de inversões significa uma área de chip menor em implementações de hardware ou menos software em software. Com as pré-computações, tudo é simples - após a escolha de uma chave, é uma oportunidade de realizar vários cálculos preliminares que acelerarão ainda mais o processamento dos dados recebidos.

O incremento de dados e a reutilização de dados associados fixos em certo sentido também podem ser atribuídos a pré-cálculos. Por incremento, entende-se a capacidade de recalcular rapidamente a inserção, caso adicionemos alguns dados adicionais aos dados já processados, sem reprocessar todos os dados. O uso de dados associados fixos é a capacidade de executar pré-computações para dados encontrados com freqüência, para que, sempre que eles apareçam, não sejam processados ​​novamente. A última propriedade (inserções de imitação intermediária) é, em certo sentido, também trabalhar "on the fly", ou seja, a capacidade de verificar, no lado receptor, a correção dos dados durante o processamento, sem esperar pelo final da transferência. Portanto, se a verificação da inserção intermediária da simulação falhar,todo o fluxo de dados subsequente não precisa ser processado e isso economiza tempo e recursos.

Como se viu, a criação de um mecanismo AEAD que atenda simultaneamente a uma ampla gama de requisitos é extremamente difícil. Isso levou o concurso do CAESAR a ser repetidamente prolongado, os prazos sendo adiados porque o júri não pôde escolher um vencedor - todos os participantes tinham conjuntos de propriedades diferentes - e o concurso terminou apenas na primavera de 2019, selecionando vários participantes com propriedades diferentes.

O protótipo do modo AEAD doméstico, mais tarde denominado MGM (Multi Linear Galois Mode), foi introduzido pela primeira vezem 2017, o MGM é um modo de operação de cifra de bloco. O modo consiste em duas partes, cada uma delas baseada em seu próprio contador. O primeiro contador é usado para gerar uma sequência, que é usada para criptografia. O princípio de operação é semelhante ao contador do modo CTR (consulte GOST R 34.13-2015 ou ISO / IEC 10116), mas tem uma diferença significativa: o valor inicial do contador é obtido usando a criptografia de um vetor de inicialização exclusivo (nonce). O segundo contador é usado para criar uma função multilinear, com base na qual uma inserção de imitação é gerada. O primeiro e o segundo contadores funcionam de maneira diferente, o primeiro incrementa a metade direita do bloco e o segundo incrementa a esquerda. O modo de operação é mostrado na figura.



AquiEk - cifra de bloco arbitrária com comprimento de bloco nmordeu, A1,...,Ah- blocos de dados associados, P1,...,Pq- blocos de texto simples, nonce- vetor de inicialização de comprimento único n1mordeu, - operação de adição bit a bit, - operação de multiplicação no campo GF(2128), MSBS- truncamento do bloco de comprimento em comprimento S, len(A)||len(C)- o comprimento em bits dos dados associados e do texto cifrado, respectivamente, incr,incl- funções de incremento.

No relatório e no artigo, você pode encontrar uma descrição detalhada dos princípios de criação do modo MGM. Em resumo, a seguinte tarefa foi resolvida durante o desenvolvimento: criar um modo de operação funcional e bem paralelo para cifras de bloco que não seriam suscetíveis a ataques conhecidos, em particular, ataques aplicados com êxito ao modo GCM. Os seguintes recursos do modo são mostrados no relatório mencionado:

  • paralelização
  • trabalhar online
  • falta de inversões,
  • (.. , MGM ),
  • ,
  • ( ()),
  • .

Ao contrário de muitos dos modos atualmente usados, a MGM conseguiu obter uma justificativa formal de durabilidade no modelo da chamada segurança comprovável , que pode ser resumida na forma de dois teoremas que avaliam o número seguro de blocos de texto sem formatação que podem ser processados ​​usando o modo MGM sem alteração de chave. Lamentamos os leitores e damos aqui apenas suas palavras, aqueles que querem ver a prova completa e derreter completamente o cérebro podem consultar a publicação original. O primeiro teorema diz sobre garantir a confidencialidade das informações.

Teorema
, q, σ, :

AdvMGMPerm({0,1}n)Priv3(σ+4q)22n



O segundo é sobre a segurança da autenticação de dados (sua resistência à imitação).

Teorema
, q, σ, l, :

AdvMGMPerm({0,1}n)Auth3(σ+3q+l+2)22n+12s1



Observe que, ao usar a abordagem de "persistência comprovável", sempre surge a questão da precisão das estimativas obtidas (ou seja, quanto elas realmente correspondem à realidade e são adequadas para a prática). Portanto, nesse caso, eles se mostraram precisos, o que confirmou os resultados de um trabalho no qual ataques teóricos para o modo MGM são indicados se o volume de material não atender aos teoremas acima.

A tabela abaixo apresenta uma comparação do regime desenvolvido com os finalistas do concurso CAESAR de acordo com as características acima.



Na tabela, cifra em bloco BC, cifra em fluxo SC, design original Dedic (não usa a cifra), Sponge - usa uma esponja, são indicadas como primitivas usadas.

Como você pode ver, foi possível desenvolver um regime que satisfaz um conjunto suficientemente grande de requisitos operacionais e, o que é extremamente importante, obter uma justificativa formal para sua durabilidade.

Em setembro do ano passado, Rosstandart aprovou o regime MGM nas recomendações para padronização R 1323565.1.026–2019 “Tecnologia da Informação. Segurança da informação criptográfica. Bloquear modos de cifra que implementam criptografia autenticada . Além disso, no início deste ano, a IANA alocou identificadores e a Rosstandart adotou recomendações para padronização da R 1323565.1.030-2020 “Tecnologia da informação. Segurança da informação criptográfica. O uso de algoritmos criptográficos no protocolo de segurança da camada de transporte (TLS 1.3) " usar algoritmos criptográficos russos no protocolo TLS 1.3, - e apenas usando o modo MGM.

All Articles