0Pricing
Cryptology Academy · Aula

ECB versus CBC: padrões e IVs

Demonstre o ataque do pinguim do ECB e entenda por que o CBC exige um IV aleatório.

ECB versus CBC: padrões e IVs é uma aula grátis de Cryptology Academy no CoddyKit. Esta é a aula 2 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.

Boas-vindas

ECB e CBC são dois modos de cifra de bloco. O ECB é notoriamente inseguro devido ao vazamento de padrões. O CBC com um IV aleatório é muito mais forte. Vamos entender os dois em profundidade.

Modo ECB: livro de códigos eletrônico

O ECB criptografa cada bloco de forma independente: Ci = AES(K, Pi). O mesmo bloco de texto simples gera o mesmo bloco de texto cifrado todas as vezes. Blocos da mesma mensagem ou de mensagens diferentes são idênticos quando o conteúdo coincide.

O pinguim ECB

O «pinguim ECB» é uma demonstração clássica: criptografe um PNG do Tux, o pinguim do Linux, com AES-ECB. O resultado ainda se parece com o pinguim — áreas da mesma cor são criptografadas nos mesmos padrões.

Vulnerabilidade do ECB: reprodução de blocos

No modo ECB, um atacante pode reorganizar blocos de texto cifrado sem conhecer a chave: - Os blocos são independentes - Reordenar os blocos → reordenar o texto simples descriptografado - Duplicar os blocos → duplicar o conteúdo - Excluir os blocos → remover o conteúdo

Modo CBC: encadeamento de blocos de cifra

O CBC aplica XOR a cada bloco de texto simples com o bloco de texto cifrado anterior antes de criptografá-lo: C0 = AES(K, P0 XOR IV) Ci = AES(K, Pi XOR C(i-1)) O mesmo texto simples em posições diferentes → texto cifrado diferente.

Vetor de inicialização (IV)

O IV é o «C(-1)» do primeiro bloco. Ele deve ser: - Aleatório e exclusivo para cada mensagem - Não secreto (transmitido junto com o texto cifrado) - Nunca reutilizado com a mesma chave Um IV previsível compromete a segurança do CBC.

Descriptografia CBC

Pi = AES_Dec(K, Ci) XOR C(i-1) P0 = AES_Dec(K, C0) XOR IV Observação: descriptografar o bloco i requer apenas Ci e C(i-1). Os blocos podem ser descriptografados em paralelo, ao contrário da criptografia.

Ataque de inversão de bits no CBC

Alterar o bit i no bloco Ci causa: (1) um Pi corrompido; (2) uma inversão previsível no bit i de P(i+1). Sem autenticação, um atacante pode modificar bits específicos do texto simples sabendo onde eles estão.

Ataque BEAST ao TLS 1.0 (2011)

O BEAST explorou o uso de CBC com IVs previsíveis no TLS 1.0. O último bloco de um registro era usado como IV para o seguinte. Demonstrado por Rizzo e Duong, o ataque forçou a atualização dos navegadores para TLS 1.1 ou posterior.

Por que o CBC exige autenticação

A criptografia CBC sem um MAC permite ataques de inversão de bits e ataques de oráculo de preenchimento. Sempre combine CBC com HMAC (criptografar e depois aplicar MAC) ou mude para AES-GCM (AEAD integrado).

CBC prático em Python

from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes import os iv = os.urandom(16) key = os.urandom(32) cipher = Cipher(algorithms.AES(key), modes.CBC(iv)) enc = cipher.encryptor() ciphertext = enc.update(padded_plaintext) + enc.finalize()

Verificação rápida

Por que o modo ECB revela informações sobre a estrutura do texto simples?

Recapitulação

O ECB é perigoso; o CBC é melhor, mas precisa de autenticação. Em seguida, estudaremos o modo CTR — transformando o AES em uma cifra de fluxo.

Perguntas Frequentes

A aula “ECB versus CBC: padrões e IVs” é grátis?

Sim — o texto completo de “ECB versus CBC: padrões e IVs” é 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 “ECB versus CBC: padrões e IVs”?

Demonstre o ataque do pinguim do ECB e entenda por que o CBC exige um IV aleatório. 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 2 de 4.

Quanto tempo leva a aula “ECB versus CBC: padrões e IVs”?

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 de cifras de bloco e preenchimento
  2. ECB versus CBC: padrões e IVs
  3. Modo CTR e comportamento de cifras de fluxo
  4. GCM e encriptação autenticada
← Voltar para Cryptology Academy