Na segurança do computador, a função hash é muito importante para garantir a integridade da transferência e do registro de informações que exigem altos níveis de proteção.

As funções de hash são usadas em ações como validação e autenticação de usuário, assinatura de documento e também em criptomoedas como um método para evitar a falsificação de transações e impedir ações maliciosas.

Uma função hash é um procedimento criptográfico em que um algoritmo específico é usado para transformar certas informações (por exemplo, texto) em uma única sequência alfanumérica de comprimento fixo, chamada de hash.

Como já explicamos em detalhes o que é um hash No capítulo anterior, não entraremos em muitos detalhes, mas destacaremos que um hash não é resultado da criptografia, mas sim que é um resumo unidirecional porque o processo é irreversível, ou seja, você não pode descriptografar / recuperar as informações originais para A partir do hash final, se ele não estiver tentando hash sem parar até encontrar o texto original, pois o hash encontrado corresponderá ao que você estava procurando e você já sabia.

Função de hash criptográfico

Ao longo dos anos, existem muitas maneiras (algoritmos) de gerar hashes, ou seja, existem muitos tipos de funções de hash, mas ddo ponto de vista técnico, todos devem ter uma série de características para cumprir corretamente sua missão:

  • Unidirecionalidade: Se tivermos um documento M, o hash nos permite fazer um resumo do hash chamado h (M), mas com esse hash é impossível saber o conteúdo do documento original M.
  • Compressão: O peso do documento M é irrelevante, pois o hash resultante sempre terá o mesmo comprimento com o mesmo número de bits.
  • Facilidade de cálculo: Deve ser fácil calcular h (M) de 'M' para geração rápida e sem desperdiçar tempo, energia e poder de computação.
  • Transmissão de bits: O hash h (M) deve ser uma função complexa da mensagem original 'M'. Se fosse o caso que M fosse modificado em qualquer lugar, e mesmo que fosse uma modificação mínima, o elemento h (M) mudaria completamente.
  • Fraca resistência à colisão: Será computacionalmente impossível para M conhecido, podemos encontrar outro M 'tal que h (M) = h (M'). Primeira pré-imagem.
  • Forte resistência a colisões: Deve ser computacionalmente difícil encontrar um par (M, M ') tal que h (M) = h (M'). Segunda pré-imagem.

Segurança de hash

Sim. Você pode encontrar o texto original de um de hash. Mas é praticamente impossível. Apenas pela força bruta.

Por exemplo, o hash de 128 bits (uma versão básica do hash) tem 2 ^ 128 possibilidades diferentes e a probabilidade de 50% seria a raiz quadrada de 2 ^ 128, o que resulta em 2 ^ 64 como uma instância. A partir disso, obtém-se que, em nível estatístico, é mais fácil quebrar a colisão do que quebrar a resistência da imagem anterior.

Portanto, é verdade, não existe nenhuma função hash no mundo livre de colisões, mas se não houver uma falha no design, quebrá-la é muito complicado e levaria um tempo significativo, às vezes bilhões de anos com capacidade. cálculo superior ao de todo o planeta Terra.

Função hash no Bitcoin

Um dos algoritmos de função hash quintessencial é SHA-256, é utilizado em inúmeros casos devido ao seu equilíbrio entre segurança e complexidade de geração (em termos de tempo e gasto de energia)

Um das centenas de milhares de lugares onde é usado está no Bitcoin.

Dentro do Ecossistema Bitcoin a função do hash é muito importante desde que seja eficiente e, para ser esse o caso, o hash deve ser complexo, oferecendo assim um alto grau de segurança, o que implica que é necessário mais tempo para o cálculo e o processo é mais ineficiente.

A função Hash no Bitcoin é usada em duas áreas.

1. Criação do endereço

Um dos usos mais comuns da função hash está no processo de geração do endereço Bitcoin.

A função de hash SHA256