Cryptology Academy · Aula

Encontro no meio e compromissos entre tempo e memória

Ataque o DES duplo com MITM e estude as tabelas de Hellman.

Aula 4 de 413 etapas

Encontro no meio e compromissos entre tempo e memória é uma aula grátis de Cryptology Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cryptology Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cryptology Academy inclui 4 aulas no total.

Ataque de encontro no meio (MITM)

Os ataques MITM dividem uma cifra em duas metades e as atacam de forma independente. O atacante constrói uma tabela a partir de uma extremidade e, em seguida, procura uma correspondência a partir da outra. Isso reduz a complexidade do ataque de O(2^{2n}) para O(2^n), ao custo de O(2^n) de memória.

Quebrando o DES duplo

O DES duplo aplica DES duas vezes: C = DES_{K2}(DES_{K1}(P)). Espaço de chaves: 2^{112}. Ataque MITM: para todos os 2^{56} valores de K1, calcule DES_{K1}(P) e armazene o resultado. Para todos os 2^{56} valores de K2, calcule DES_{K2}^{-1}(C) e procure na tabela. Correspondência → candidato (K1, K2). Apenas 2^{57} de trabalho no total.

Algoritmo MITM

Etapa 1: criptografe o texto simples P com todos os K1 possíveis → tabela T[DES_{K1}(P)] = K1. Etapa 2: para cada K2, descriptografe o texto cifrado C: v = DES^{-1}_{K2}(C). Verifique se v ∈ T. Se T[v] = K1 existir, verifique (K1, K2) em um segundo par de texto simples e texto cifrado. Espere 1–2 correspondências falsas; descarte-as.

Resistência do DES triplo

O DES triplo (3DES) utiliza três chaves K1,K2,K3: C = DES_{K3}(DES^{-1}_{K2}(DES_{K1}(P))). O MITM ainda se aplica, mas com menor eficácia: o 3DES de duas chaves (K3=K1) requer 2^{112} de trabalho. Para o 3DES de três chaves, existe um ataque MITM de 2^{112}, o que explica por que o 3DES oferece apenas cerca de 112 bits de segurança efetiva, apesar de ter uma chave de 168 bits.

Compromisso entre tempo e memória de Hellman

Hellman (1980): pré-calcule uma tabela de cadeias de (ponto inicial, ponto final) para acelerar a busca offline de chaves. Dado um resumo ou texto cifrado alvo, procure na tabela de Hellman uma cadeia que o contenha. Compromisso: P = N (tempo × memória = constante de espaço). Essa é a base das tabelas arco-íris.

Tabelas arco-íris

As tabelas arco-íris (Oechslin, 2003) aprimoram as tabelas de Hellman utilizando funções de redução diferentes em cada posição da cadeia, eliminando falsos alarmes (cadeias mescladas). São eficientes para quebrar resumos de senhas sem sal. Uma consulta leva O(table_size/chain_length) de tempo.

Derrotando tabelas arco-íris com sal

Um sal é um valor aleatório acrescentado ao início da senha antes do cálculo do resumo: H(salt||password). Sais diferentes produzem resumos diferentes para a mesma senha — uma tabela arco-íris para "password" é inútil se outro sal tiver sido utilizado. Os sais devem ser armazenados junto com o resumo.

MITM no escalonamento de chaves do AES

Os ataques MITM contra o AES-128 (10 rodadas) dividem o algoritmo na rodada 5 — criptografa-se para frente por 5 rodadas, descriptografa-se para trás por 5 rodadas e encontra-se o ponto de encontro no meio. O melhor ataque conhecido, o ataque de biclique, reduz 2^{128} para 2^{126.1} — não é prático, mas mostra que o AES não possui margem de segurança contra abordagens no estilo MITM.

MITM em pré-imagens de resumos

Para resumos Merkle-Damgård, o MITM pode encontrar pré-imagens mais rapidamente que a força bruta em algumas construções. Ataque: construa uma tabela a partir dos blocos da mensagem, começando pelo IV; pesquise para trás a partir do resumo alvo. Contra o SHA-256 com todas as rodadas: ainda são necessários cerca de 2^{255} — nenhuma melhoria em relação à força bruta.

Ataque de dissecação

O ataque de dissecação generaliza o MITM para divisões em r partes. Em uma divisão da cifra em 3 partes: criptografe para frente por 1/3 das rodadas, encontre o ponto de encontro no meio da cadeia e, em seguida, descriptografe para trás por 1/3. Requer O(2^{n*2/3}) de tempo e O(2^{n/3}) de memória — um compromisso mais equilibrado.

A derivação de chaves impede o MITM

Em protocolos, os ataques MITM podem ser impedidos por: utilizar chaves longas derivadas por KDF a partir de senhas de alta entropia (reduz o espaço de chaves que pode ser enumerado), utilizar tokens de hardware (FIDO2) em que a chave nunca sai do dispositivo ou utilizar autenticação de chave pública (não há segredo compartilhado a enumerar).

Verificação rápida

Qual é a segurança efetiva do DES duplo (2x DES, chave combinada de 112 bits) contra um ataque MITM?

Recapitulação

Os ataques MITM dividem as cifras em metades, reduzindo o tempo de 2^{2n} para 2^n com 2^n de memória. Eles quebram o DES duplo; o 3DES é atenuado, mas tem segurança efetiva de 112 bits. As tabelas arco-íris utilizam a lógica do MITM para quebrar senhas — são derrotadas pelo uso de sais. Próximo: ataques de temporização e ataques de canal lateral.

Grátis para começar

Aprenda Cryptology Academy com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
67
Aulas
261

Perguntas Frequentes

A aula “Encontro no meio e compromissos entre tempo e memória” é grátis?

Sim — o texto completo de “Encontro no meio e compromissos entre tempo e memória” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cryptology Academy, atualize para CoddyKit PRO. O curso de Cryptology Academy inclui 4 aulas no total.

O que vou aprender em “Encontro no meio e compromissos entre tempo e memória”?

Ataque o DES duplo com MITM e estude as tabelas de Hellman. Você pratica Cryptology Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Cryptology Academy?

Nenhuma experiência prévia é necessária. Cryptology Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Encontro no meio e compromissos entre tempo e memória”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Cryptology Academy?

Sim. Cada aula de Cryptology Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Fundamentos da criptoanálise diferencial
  2. Criptoanálise linear e tabelas de aproximação
  3. Ataques de aniversário e de colisão
  4. Encontro no meio e compromissos entre tempo e memória
← Voltar para Cryptology Academy