Ataque Meet-in-the-middle - Meet-in-the-middle attack

O ataque meet-in-the-middle ( MITM ), um conhecido ataque de texto simples, é um ataque criptográfico de troca espaço-tempo genérico contra esquemas de criptografia que dependem da execução de várias operações de criptografia em sequência. O ataque MITM é a principal razão pela qual Double DES não é usado e porque uma chave Triple DES (168 bits) pode ser forçada por um invasor com 2 56 de espaço e 2 112 operações.

Descrição

Ao tentar melhorar a segurança de uma cifra de bloco, uma ideia tentadora é criptografar os dados várias vezes usando várias chaves. Pode-se pensar que isso dobra ou mesmo n- duplica a segurança do esquema de criptografia múltipla, dependendo do número de vezes que os dados são criptografados, porque uma pesquisa exaustiva em todas as combinações possíveis de chaves (força bruta simples) levaria 2 n · K tentativas se os dados forem criptografados com chaves de k bits n vezes.

O MITM é um ataque genérico que enfraquece os benefícios de segurança do uso de várias criptografias, armazenando valores intermediários das criptografias ou descriptografias e usando-os para melhorar o tempo necessário para a força bruta das chaves de descriptografia. Isso torna um ataque Meet-in-the-Middle (MITM) um ataque criptográfico de troca espaço-tempo genérico .

O ataque MITM tenta encontrar as chaves usando tanto o intervalo (texto cifrado) quanto o domínio (texto simples) da composição de várias funções (ou cifras de bloco) de modo que o mapeamento para a frente através das primeiras funções seja o mesmo que o mapeamento para trás (inverso imagem) através das últimas funções, literalmente reunião no meio da função composta. Por exemplo, embora Double DES criptografe os dados com duas chaves diferentes de 56 bits, Double DES pode ser quebrado com 2 57 operações de criptografia e descriptografia.

O MITM multidimensional (MD-MITM) usa uma combinação de vários ataques MITM simultâneos como descrito acima, onde a reunião acontece em várias posições na função composta.

História

Diffie e Hellman propuseram pela primeira vez o ataque meet-in-the-middle em uma expansão hipotética de uma cifra de bloco em 1977. Seu ataque usou uma compensação de espaço-tempo para quebrar o esquema de criptografia dupla em apenas duas vezes o tempo necessário para quebrar o único - esquema de criptografia.

Em 2011, Bo Zhu e Guang Gong investigaram o ataque multidimensional meet-in-the-middle e apresentaram novos ataques às cifras de bloco GOST , KTANTAN e Hummingbird-2 .

Meet-in-the-middle (1D-MITM)

Suponha que alguém queira atacar um esquema de criptografia com as seguintes características para um determinado texto simples P e texto cifrado C :

onde ENC é a função de criptografia, DEC a função de descriptografia definida como ENC −1 (mapeamento inverso) e k 1 e k 2 são duas chaves.

A abordagem ingênua para forçar este esquema de criptografia é descriptografar o texto cifrado com todos os k 2 possíveis e descriptografar cada uma das saídas intermediárias com todos os k 1 possíveis , para um total de 2 k 1 × 2 k 2 (ou 2 k 1 + k 2 ) operações.

O ataque meet-in-the-middle usa uma abordagem mais eficiente. Ao descriptografar C com k 2 , obtém-se a seguinte equivalência:

O atacante pode calcular ENC k 1 ( P ) para todos os valores de k 1 e DEC k 2 ( C ) para todos os valores possíveis de k 2 , para um total de 2 k 1 + 2 k 2 (ou 2 k 1 +1 , se k 1 e k 2 tiverem o mesmo tamanho) operações. Se o resultado de qualquer uma das operações ENC k 1 ( P ) corresponder ao resultado das operações DEC k 2 ( C ), o par de k 1 e k 2 é possivelmente a chave correta. Essa chave potencialmente correta é chamada de chave candidata . O invasor pode determinar qual chave candidata está correta testando-a com um segundo conjunto de teste de texto simples e texto cifrado.

O ataque MITM é uma das razões pelas quais o Data Encryption Standard (DES) foi substituído pelo Triple DES e não pelo Double DES. Um invasor pode usar um ataque MITM para força bruta Double DES com 2 57 operações e 2 56 de espaço, tornando-o apenas uma pequena melhoria em relação ao DES. Triple DES usa uma chave de "comprimento triplo" (168 bits) e também é vulnerável a um ataque de encontro no meio em 2 56 espaço e 2 112 operações, mas é considerado seguro devido ao tamanho de seu espaço de chave.

Uma ilustração do ataque 1D-MITM

Algoritmo MITM

Calcule o seguinte:

  • :
    e salve cada um junto com o correspondente em um conjunto A
  • :
    e compare cada novo com o conjunto A

Quando for encontrada uma correspondência, manter como candidato par de chaves-na uma tabela T . Teste os pares em T em um novo par de para confirmar a validade. Se o par de chaves não funcionar neste novo par, faça MITM novamente em um novo par de .

Complexidade MITM

Se o tamanho da chave for k , este ataque usa apenas 2 k + 1 criptografias (e decriptografias) e O (2 k ) de memória para armazenar os resultados dos cálculos de encaminhamento em uma tabela de pesquisa , em contraste com o ataque ingênuo, que precisa de 2 2 · K criptografias, mas espaço O (1).

MITM multidimensional (MD-MITM)

Embora 1D-MITM possa ser eficiente, um ataque mais sofisticado foi desenvolvido: ataque de encontro no meio multidimensional , também abreviado como MD-MITM . É preferível quando os dados foram criptografados usando mais de 2 criptografias com chaves diferentes. Em vez de se encontrar no meio (um lugar na sequência), o ataque MD-MITM tenta alcançar vários estados intermediários específicos usando os cálculos para frente e para trás em várias posições na cifra.

Suponha que o ataque tenha que ser montado em uma cifra de bloco, onde a criptografia e descriptografia são definidas como antes:


isto é um texto simples P é criptografado várias vezes usando uma repetição da mesma cifra de bloco

Uma ilustração do ataque MD-MITM

O MD-MITM foi usado para criptanálise de, entre muitas, a cifra de bloco GOST , onde foi demonstrado que um 3D-MITM reduziu significativamente a complexidade de tempo para um ataque a ele.

Algoritmo MD-MITM

Calcule o seguinte:

e salve cada um junto com o correspondente em um conjunto .
e salve cada um junto com o correspondente em um conjunto .

Para cada suposição possível no estado intermediário, calcule o seguinte:

e para cada combinação entre este e o conjunto , salve e em um novo conjunto .
e salve cada um junto com o correspondente em um conjunto .
Para cada suposição possível em um estado intermediário, calcule o seguinte:
  • e para cada combinação entre este e o conjunto , verifique também se
    ele combina com e, em seguida, salva a combinação de subchaves em um novo conjunto .
  • Para cada suposição possível em um estado intermediário, calcule o seguinte:
  1. e para cada correspondência entre este e o conjunto , verifique também se ela combina com , salve e em um novo conjunto .
  2. e para cada combinação entre este e o conjunto , verifique também

se corresponde com . Se for este o caso, então: "

Use a combinação encontrada de subchaves em outro par de texto simples / texto cifrado para verificar a exatidão da chave.

Observe o elemento aninhado no algoritmo. A estimativa de cada valor possível em s j é feita para cada estimativa no s j -1 anterior . Isso constitui um elemento de complexidade exponencial para a complexidade geral de tempo desse ataque MD-MITM.

Complexidade MD-MITM

A complexidade de tempo deste ataque sem força bruta é ⋅ ⋅

Em relação à complexidade da memória, é fácil ver que são muito menores do que a primeira tabela construída de valores candidatos: à medida que i aumenta, os valores candidatos contidos em devem satisfazer mais condições, portanto, menos candidatos serão transmitidos ao destino final .

Um limite superior da complexidade da memória do MD-MITM é então

onde k denota o comprimento de toda a chave (combinada).

A complexidade dos dados depende da probabilidade de que uma chave errada possa passar (obter um falso positivo), ou seja , onde l é o estado intermediário na primeira fase do MITM. O tamanho do estado intermediário e o tamanho do bloco são geralmente os mesmos! Considerando também quantas chaves faltam para teste após a primeira fase MITM, é .

Portanto, após a primeira fase do MITM, existem , onde está o tamanho do bloco.

Para cada vez que o valor candidato final das chaves é testado em um novo par de texto simples / texto cifrado, o número de chaves que passarão será multiplicado pela probabilidade de que uma chave possa passar, que é .

A parte do teste de força bruta (testar a chave candidata em novos pares -pares, tem complexidade de tempo , claramente para aumentar os múltiplos de b no expoente, o número tende a zero.

A conclusão sobre a complexidade dos dados é por um raciocínio semelhante restrito por aqueles em torno de pares.

Abaixo está um exemplo específico de como um 2D-MITM é montado:

Um exemplo geral de 2D-MITM

Esta é uma descrição geral de como 2D-MITM é montado em uma criptografia de cifra de bloco.

No MITM bidimensional (2D-MITM), o método é atingir 2 estados intermediários dentro da criptografia múltipla do texto simples. Veja a figura abaixo:

Uma ilustração do ataque 2D-MITM

Algoritmo 2D-MITM

Calcule o seguinte:

e salve cada um junto com o correspondente em um conjunto A
e salve cada um junto com o correspondente em um conjunto B.

Para cada possível suposição em um estado intermediário de entre e calcular o seguinte:

  • e para cada combinação entre este e o conjunto A, salve e em um novo conjunto T.
  • e para cada correspondência entre este e o conjunto B, verifique também se ela corresponde a T para
    se for este o caso, então:

Use a combinação encontrada de subchaves em outro par de texto simples / texto cifrado para verificar a exatidão da chave.

Complexidade 2D-MITM

A complexidade de tempo deste ataque sem força bruta, é

onde | ⋅ | denota o comprimento.

O consumo da memória principal é restringido pela construção dos conjuntos A e B onde T é muito menor que os outros.

Para a complexidade dos dados, consulte a subseção sobre complexidade para MD-MITM .

Veja também

Referências