Cryptology Academy · Aula

O que caracteriza uma boa função hash

Explore resistência à pré-imagem, resistência a colisões e efeito avalanche

Aula 1 de 413 etapas

O que caracteriza uma boa função hash é uma aula grátis de Cryptology Academy no CoddyKit. Esta é a aula 1 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

Uma função de resumo criptográfico transforma qualquer entrada em um resumo de comprimento fixo. Nesta lição, estudaremos as propriedades que tornam uma função de resumo criptograficamente segura.

Saída determinística

Hash(M) sempre produz a mesma saída para a mesma entrada. SHA-256('hello') sempre será aabb..., independentemente de onde ou quando você o calcular.

Comprimento fixo da saída

SHA-256 sempre produz 256 bits (32 bytes = 64 caracteres hexadecimais). SHA-512 sempre produz 512 bits. A entrada pode ter 0 bytes ou 10 GB — o tamanho da saída nunca muda.

Resistência à pré-imagem

Dado o resumo h, deve ser computacionalmente inviável encontrar qualquer mensagem M tal que Hash(M) = h. Propriedade unidirecional: não é possível reverter um resumo.

Resistência à segunda pré-imagem

Dada M1, deve ser inviável encontrar M2 ≠ M1 tal que Hash(M1) = Hash(M2). Isso impede que um invasor substitua uma mensagem por outra com o mesmo resumo.

Resistência a colisões

Deve ser inviável encontrar ANY duas mensagens M1 ≠ M2 para as quais Hash(M1) = Hash(M2). Isso é mais difícil que encontrar uma segunda pré-imagem, mas é menos forte do que parece — o princípio da casa dos pombos garante que existem colisões.

Efeito avalanche

Inverter um único bit da entrada deve alterar aproximadamente 50% dos bits da saída. SHA-256('hello') e SHA-256('hellp') diferem em aproximadamente 128 bits. Essa sensibilidade impede ataques de busca incremental.

Construção de Merkle-Damgård

MD5, SHA-1 e SHA-2 usam Merkle-Damgård: dividem a entrada em blocos e encadeiam uma função de compressão. O valor final da cadeia é o resumo. Esse projeto é vulnerável a ataques de extensão de comprimento.

Construção esponja

SHA-3 (Keccak) usa uma construção esponja: absorve a entrada em um estado e depois extrai a saída. As construções esponja resistem a ataques de extensão de comprimento e são mais versáteis que Merkle-Damgård.

Limite do aniversário

O ataque do aniversário encontra colisões em 2^(n/2) operações, não em 2^n. O SHA-256 tem uma saída de 256 bits, portanto sua resistência a colisões é de aproximadamente 2^128. O SHA-1 (160 bits) tem aproximadamente 2^80 — já está comprometido na prática.

Resumo vs MAC vs assinatura

Resumo: não usa chave e fornece apenas integridade. MAC (HMAC): resumo com chave, fornece integridade + autenticidade. Assinatura digital: usa uma chave assimétrica e fornece integridade + autenticidade + não repúdio.

Verificação rápida

Qual propriedade garante que é inviável encontrar qualquer entrada que produza uma determinada saída de resumo?

Recapitulação

Agora você entende as propriedades de segurança das funções de resumo. Em seguida, estudaremos o MD5 — antes um padrão, agora completamente comprometido.
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 “O que caracteriza uma boa função hash” é grátis?

Sim — o texto completo de “O que caracteriza uma boa função hash” é 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 “O que caracteriza uma boa função hash”?

Explore resistência à pré-imagem, resistência a colisões e efeito avalanche 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 1 de 4.

Quanto tempo leva a aula “O que caracteriza uma boa função hash”?

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. O que caracteriza uma boa função hash
  2. MD5: história, usos e por que está quebrado
  3. Famílias SHA-1 e SHA-2 explicadas
  4. Aplicações de hash: somas de verificação, HMAC e Git
← Voltar para Cryptology Academy