Hashing criptográfico: um guia para iniciantes

O hashing criptográfico tem sido parte integrante do espectro da segurança cibernética. Na verdade, é amplamente utilizado em diferentes tecnologias, incluindo Bitcoin e outros protocolos de criptomoeda.

Neste artigo, examinaremos o hash em criptomoeda, onde aprenderemos sobre hashes criptográficos, seus exemplos, história e assim por diante.

O artigo é direcionado a quem deseja conhecer uma visão mais técnica sobre o assunto. No entanto, não tenha medo se você não for técnico, pois tentaremos simplificar o conceito da melhor maneira possível.

A criptografia sempre esteve no centro da ciência da computação. Sem ele, nunca seremos capazes de ter comunicação segura ou compartilhamento de informações. É melhor definido como o método para proteger as informações.

 

O que é hash criptográfico?

Em criptografia, hashing é um método usado para converter dados em uma única string de texto. Os dados são transformados em um método muito eficiente, onde os dados são processados ​​em questão de segundos. Além disso, não há limitação quanto ao tipo de dados ou seu tamanho – o hash funciona em todos eles.

Então, o que torna o hashing tão popular e único? É porque não pode ser revertido!

Sim, é uma função unilateral (função hash criptográfica) e foi projetada para funcionar apenas assim.

Em uma função unilateral, os dados, uma vez colocados no algoritmo de hash, geram uma string exclusiva. No entanto, a string exclusiva não pode ser usada para decifrar os dados originais, colocando-os de volta na função de hashing. Este tipo de utilidade e recurso torna o hashing criptográfico tão benéfico na proteção de informações e dados.

Além disso, verifique

  • Como construir um blockchain em Python
  • Guia do iniciante: uso de criptografia em criptomoeda

Existe mais um recurso que se aplica ao método hash. Qualquer dado dado dará a mesma saída hash.

Esses recursos o tornam muito útil em criptomoedas, como bitcoin. 

 

Como funciona o Hashing?

Para entender melhor o hashing, também precisamos aprender como ele funciona. Hashing é uma operação matemática que requer menos poder computacional para ser executada. No entanto, o poder computacional necessário para reverter é caro e, portanto, não pode ser feito pela geração atual de computadores.

No entanto, os computadores quânticos podem reverter o hashing do computador. Mas, já existem métodos de hash que são resistentes ao quantum.

Para fins de hashing, muitos algoritmos são usados. Isso inclui o seguinte.

  • Mensagem direta (MD5)
  • Função Secure Hash (SHA1)
  • Função Secure Hash (SHA-256)

Nem todas as funções de hashing são 100% seguras. Por exemplo, SHA1 é fácil de quebrar e, portanto, não é recomendado para uso prático. Uma das funções de hash mais comuns usadas inclui MD5 e SHA-256.

MD5 é usado principalmente para verificar arquivos baixados. Portanto, se você baixar um arquivo, poderá calcular sua soma de verificação usando a calculadora de soma de verificação. Se a string hash corresponder à string fornecida pelo downloader, isso significa que o download foi feito corretamente, sem qualquer corrupção de arquivo. Em suma, verifica a integridade do arquivo.

 

Onde o hash é mais usado?

O hash é usado principalmente para senhas. Vamos dar um exemplo para entender isso.

Ao criar uma conta de e-mail, seu provedor de e-mail solicitará o endereço de e-mail e a senha. Obviamente, eles não salvam o e-mail e a senha em texto simples. Se o fizerem, estão comprometendo a privacidade e a segurança de suas informações. Para garantir que seja difícil decifrar essas informações, eles usam a função hash em sua senha para que mesmo qualquer pessoa que trabalhe internamente no provedor de e-mail não possa decifrá-la. 

Então, se você tentar fazer o login na próxima vez, a função hash decifra-o e corresponde ao salvo e, portanto, concede a você acesso ao seu e-mail.

Outros usos incluem geração e verificação de assinaturas e verificações de integridade de arquivos.

Existem, é claro, outros aplicativos de hash por aí. Outro uso mais popular de hashing são criptomoedas, que discutiremos a seguir.

 

Como o hash é utilizado em criptomoedas

O hash é usado principalmente em criptomoedas para fins de mineração. Portanto, no Bitcoin, a mineração é um processo de verificação das funções de hashing SHA-256. Isso significa que o hash pode ser usado para gravar novas transações, referenciá-las de volta ao bloco anterior e marcá-las com data e hora

Diz-se que a rede chega a um consenso quando um novo bloco é adicionado ao blockchain. Ao fazer isso, ele valida as transações contidas no bloco. Além disso, a adição torna impossível para qualquer pessoa reverter. Tudo isso é possível por causa do hashing e é por isso que é usado para manter a integridade do blockchain.

Bitcoin usa o método de consenso de Prova de Trabalho que, por sua vez, usa a função hash SHA-256 de uma via.

 

Exemplo de função de hash

Agora, vamos dar uma olhada em um exemplo de uma função hash criptográfica.

Para tornar mais fácil para nós e para você, vamos usar as ferramentas SHA-256 disponíveis online.

Aqui está o link para isso: SHA256 Online

Agora, se você digitar 101Blockchains como entrada, ele dará a seguinte saída.

Entrada: 101Blockchains.com

Resultado: fbffd63a60374a31aa9811cbc80b577e23925a5874e86a17f712bab874f33ac9

Usando a função Hash SHA256

Agora, se você colocar um simples, “Hello World” como entrada, ele dará a seguinte saída.

Entrada: Olá Mundo

Resultado: a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e

Entre ambas as saídas, você verá que ambos os valores de saída têm o mesmo comprimento, ou seja, 256 bits, ou seja, 64 caracteres de comprimento.

Agora, vamos inserir 101blockchain na entrada. Observe que removemos o “s” de 101Blockchains que foi usado para gerar o primeiro hash.

Entrada: 101Blockchain

Resultado: c4d67db72f3d18eaca2e8e8498271de353d25874e4448be4887f2563576c6fe8

Se você comparar com nossa primeira saída de hash, você verá uma grande diferença mesmo quando removemos apenas uma letra da entrada.

Então, o que aprendemos com o exemplo? Vamos resumir abaixo.

  • Todas as saídas são do mesmo comprimento
  • Pequenas mudanças na entrada resultam em saídas completamente diferentes
  • Não é possível reverter saídas em entradas.

Propriedades da função criptográfica de hash

Para entender melhor o hashing criptográfico ou hashing em geral, vamos examinar as propriedades da função hash criptográfica.

Determinístico

As funções de hash criptográficas são conhecidas por serem determinísticas. Isso significa que, para uma determinada entrada, a saída será a mesma. Em termos mais simples, se você colocar a mesma entrada por meio da função hash pela centésima vez, a saída será a mesma em todos os casos. 

A propriedade determinística é importante porque permite o conceito de uma função unilateral. Se não funcionasse assim, seria impossível usá-lo para hash de informações. Além disso, uma saída aleatória para a mesma entrada pode tornar todo o processo inútil.

 

Resistente à Pré-Imagem

A função hash criptográfica é resistente à pré-imagem, o que significa que o valor hash, uma vez gerado, não revela nada sobre a entrada.

Este é um recurso importante, pois fornece o muito importante.

 

Eficiente computacionalmente

As funções de hash são computacionalmente eficientes. Isso significa que, independentemente de quão longa e complexa seja a entrada, ela gerará a saída hash rapidamente. A eficiência é bem-vinda para serviços que desejam usar uma função hash para armazenar informações confidenciais. No entanto, é apenas computacionalmente eficiente de uma forma, ou seja, da entrada para a saída. Como não é reversível, não é possível para nenhum computador fazer a engenharia reversa.

Mas, se você quiser falar sobre números, pode levar anos para qualquer computador moderno adivinhar a entrada de um determinado valor de hash. Além disso, com os computadores modernos ficando mais poderosos a cada dia que passa, as funções hash estão se tornando mais eficientes do que nunca.

 

Não pode ser invertido com engenharia

As funções de hash não podem ser revertidas. Isso significa que é seguro. Como você deve saber, as funções de hash criptográficas são criadas com a premissa de funções não reversíveis. As equações matemáticas e o processo usado para criar a saída são simplificados e não podem ser revertidos. Em termos técnicos, a função hash não suporta a operação inversa.

 

Resistente à Colisão

A resistência à colisão é a propriedade final que vamos discutir. Esta propriedade garante que duas entradas diferentes não produzam a mesma saída.

Como você já deve saber, a entrada pode ter qualquer comprimento. Por esta definição, a entrada pode ser de números infinitos. Agora, a saída, que tem comprimento fixo, precisa ser diferente a cada vez. A limitação do comprimento fixo também significa que as saídas são de números finitos – mesmo que o número finito seja de grande valor. Isso representa um desafio matemático para separar as saídas para cada entrada lá fora. 

A boa notícia é que a maioria das funções hash populares são resistentes a colisões.

 

Classes de hash populares – Lista de algoritmos de hash

Isso nos leva à próxima seção, onde discutiremos as classes de hash populares. Listaremos três classes de hash que são bastante populares na esfera da criptografia.

  • Message Digest (MD)
  • Função Secure Hash (SHF)
  • RIPE Message Direct (RIPEMD)

Vamos examiná-los um por um.

Message Digest (MD)

Message Digest é uma família de funções hash que são usadas ao longo da história da Internet.

A família consiste em funções hash, como MD2, MD4, MD6 e o ​​MD5 mais popular. Todas as funções de hash MD são funções hash de 128 bits, o que significa que os tamanhos de resumo são de 128 bits.

Como discutimos anteriormente, as funções de hash de resumo MD5 são usadas por fornecedores de software para verificar a integridade dos arquivos baixados pelos usuários por meio de servidores de arquivos. Para fazer isso funcionar, o provedor fornece ao downloader acesso à soma de verificação MD5 para os arquivos. Para verificar a integridade do arquivo, uma soma de verificação MD5 é usada para calcular a soma de verificação e depois fazer a verificação cruzada com o valor de hash fornecido. Se o valor for diferente do que a verificação de integridade do referido arquivo falhou e o usuário precisa baixar todo ou parte do arquivo.

MD5 não é tão seguro quanto outras funções de hash. Em 2004, um ataque analítico foi feito na função hash que foi executado em apenas uma hora. Isso foi feito usando um cluster de computador. Isso fez com que o MD não fosse tão útil para proteger informações e, portanto, é usado para tarefas como verificar a integridade do arquivo.

Se você estiver interessado em aprender mais sobre MD5, verifique a página Wiki para MD5 – MD5.

 

Função Secure Hash (SHA)

Funções Secure Hash são outra família de funções hash bastante populares. Foi desenvolvido e publicado pelo Instituto Nacional de Padrões e Tecnologia (NIST). Eles lançaram quatro versões do SHA, incluindo SHA-0, SHA-1, SHA-2 e SHA-3.

Como você deve ter adivinhado, as versões posteriores retificam alguns problemas ou pontos fracos das versões anteriores do SHA. Por exemplo, SHA-1 foi lançado depois que a fraqueza SHA-0 foi encontrada. SHA-1 foi lançado em 1995.

SHA-1 fez seu próprio nome assim que foi lançado. Foi usado por diversos aplicativos na época, incluindo o Secure Socket Layer (SSL).

No entanto, com o tempo, os exploradores também descobriram sobre as colisões de SHA-1 que o tornaram inútil. O NIST surgiu com sua família SHA-2 de funções hash seguras que empregavam quatro variantes SHA, incluindo SHA-256, SHA-224, SHA-512 e SHA-384. Nessas quatro variantes, duas eram o núcleo, incluindo SHA-256 e SHA-512. A diferença entre eles é que o SHA-512 usava palavras de 64 bytes, enquanto o SHA-256 usava apenas palavras de 32 bytes. 

A família SHA-2 de funções hash ainda é amplamente utilizada. No entanto, também houve o SHA-3, que foi criado e lançado por designers não pertencentes à NSA durante uma competição pública em 2012. Ele era conhecido anteriormente como Keccak. Os benefícios do Keccak incluem melhor resistência a ataques e desempenho eficiente.

 

RIPE Message Direct (RIPEMD)

RIPE Message Direct (RIPEMD) é uma família de funções hash lançada em 1992. Além disso, RIPE significa RACE Integrity Primitives Evaluations.

Ele é projetado e gerenciado pela comunidade de pesquisa aberta. Entre a família, há cinco funções, incluindo RIPEMD, RIPEMD-160, RIPEMD-128, RIPEMD-320 e RIPEMD-256. No entanto, a função mais comumente usada é RIPEMD-160.

O design do RIPEMD é baseado no Message Direct.

 

Diferença entre hashing, criptografia e salgadura

Nesta seção, veremos brevemente a diferença entre hashing, criptografia e salting.

Vamos começar com criptografia.

Criptografia é o processo de embaralhar as informações originais usando a chave pública e, em seguida, desbloqueá-las usando uma chave privada. É uma função bidirecional.

Hashing, por outro lado, é uma função unilateral usada para embaralhar informações para fins de verificação.

O último termo é “Salga”.

Salting é semelhante a hashing, mas aqui um valor exclusivo é adicionado à senha para criar um valor de hash diferente. Aqui, o valor do sal precisa ser único e permanecer oculto. 

 

Conclusão

Isso nos leva ao fim de nosso Hashing na criptografia. Tentamos entender o hashing entrando e saindo primeiro aprendendo sobre o que ele tem a oferecer e, em seguida, aprendendo rapidamente como funciona, seus tipos e assim por diante!

Como você pode ver, há muitos casos de uso para hashing, incluindo criptomoeda, proteção de senha, verificação de assinatura e assim por diante. Mesmo que o hash seja único em sua própria maneira, sua eficácia na proteção de informações está diminuindo a cada dia que passa, graças aos poderosos computadores em todo o mundo.

Os pesquisadores também estão trabalhando para manter o status quo, lançando uma função de hashing mais poderosa que é resistente ao quantum e pode suportar a progressão do poder de computação em todo o mundo..

Então, o que você acha sobre hashing? Comente abaixo e deixe-nos saber.