O que é o algoritmo SHA-256 e como funciona?

Qué- es y cómo funciona el algoritmo SHA-256
8 min read

Já deve ter ouvido falar  do acrónimo SHA-256.  Estas são encontradas no  funcionamento de inúmeras criptomoedas  devido ao alto nível de segurança que pode fornecer.

No mundo tecnológico  existem numerosos sistemas para codificar   informação, no entanto, pode dizer-se  que o que mais se destaca é o SHA-256. Simplificando, é um algoritmo usado em Bitcoin com o objetivo de garantir a segurança da informação.  Esta funcionalidade  mantém os mecanismos de Prova de Trabalho da Bitcoin.

No entanto, esta não é a única função do SHA-256, uma vez que  também é utilizada na criação de endereços, IDs  de transações e blocos.    Neste artigo veremos tudo sobre o funcionamento da SHA-256.

Origem da SHA-256

A função SHA-256 começou a ser conhecida há muitos anos. Surgiu como resultado da necessidade de a Internet obter meios fiáveis e rápidos para confirmar os dados que transitaram através da rede.  

Antes da criação do SHA-256 a sua tarefa era executada pela função chamada MD5. Esta função foi caracterizada por ser especialmente simples em termos computacionais. Embora fosse a melhor   alternativa na época, a função MD5 Hash foi classificada como insegura em 1996.

Após várias investigações, o criptoanalista Hans Dobbertin encontrou um problema de segurança na função de hash MD5. Assim, descobriu-se a forma como os hackers, com as habilidades e recursos necessários, poderiam quebrar o algoritmo de segurança e assim deixar as comunicações na Internet totalmente vulneráveis.

Sem  surpresa, várias instituições começaram a procurar soluções para este problema. Estes incluem a Agência de Segurança Nacional dos EUA (NSA). Começou a trabalhar no desenvolvimento de diferentes funções de hash capazes de substituir a função MD5. No entanto, em 1993, o primeiro protocolo SHA conhecido como SHA-0 tinha vindo a lume. As investigações prosseguiram e dois anos depois foi criada a função SHA-1, uma versão melhorada em termos de resistência.  

Para o ano de 2001, a NSA submeteu ao Instituto Nacional de Normalização e Tecnologia dos EUA (NIST) o conjunto de funcionalidades SHA-2. Neste conjunto de funções estavam as seguintes funções: SHA-224, SHA-256, SHA-384 e SHA-512.

Estas funções foram posteriormente reconhecidas como Padrão Federal de Processamento de Informação (FIPS), ao abrigo da identificação FIPS PUB 180-4. Nesta altura, a função SHA-256 tornou-se uma função essencial para o mundo da computação. As propriedades que o tornam tão especial variam de segurança a velocidade de cálculo. Em pouco tempo, a sua utilização começou a espalhar-se para software para servidores e aplicações onde eram necessárias funções robustas e seguras para garantir a integridade dos   dados.  

Qué es y cómo funciona el algoritmo SHA-256

Como funciona o algoritmo SHA-256?

Para compreender o funcionamento da função SHA-256, temos primeiro de ver as suas principais características. A primeira coisa a ter em mente é que um algoritmo SHA-256 funciona de forma unidirecional. Esta funcionalidade significa que a partir de quaisquer dados podemos gerar um hash, no entanto, não podemos gerar o conteúdo do Hash a partir do mesmo.  

Existem inúmeras formas de criar Hashes, no entanto, SHA-256 é uma das mais utilizadas devido à sua segurança e equilíbrio de custos computacional de geração.  Note-se que com SHA-256 o comprimento do resultado é sempre o mesmo, independentemente do tempo que o conteúdo pelo qual o Hash é gerado. O resultado de uma frase de 5 palavras ou de um livro de 200 páginas será sempre uma sequência combinada de 64 letras e números.  A sua codificação é de 256 bits, 34 bytes.

Focando-se no funcionamento do SHA-256, a sua segurança começa por construir uma série de funções criptográficas. Estas são as chamadas funções Merkle-Damgard e Ivan Damgard Hash criadas em 1979.  Para isso, usaram uma compreensão unidirecional do tipo Davies-Meyer. Utilizando estes métodos, procuraram garantir   resistência às repetições de hash e uma maior segurança para a função.

Assim, foi criada a função SHA-256, em função de introduzir dados e obter um resumo da informação com medição fixa. Neste sistema, o que chamamos de efeito avalanche é garantido. Isto significa que, na mínima alteração da informação   de função, será gerado um hash que é completamente diferente do inicial. No entanto, se submetermos a mesma sentença ao processo Hash, obteremos sempre o mesmo resultado, uma vez que o processo é determinístico.  

Qué-es-y-cómo-funciona-el-algoritmo-SHA-256

SHA-256 e Bitcoin

A segurança fornecida por este sistema torna-a  uma das mais atrativas para a sua aplicação em criptomoedas como o Bitcoin. Desde a sua criação em   2009, Satoshi revelou a Bitcoin destacando o uso desta função. Na verdade, praticamente toda a sua segurança começa a partir de SHA-256.

Para implementar SHA-256, Satoshi Nakamoto criou PoW.  É por isso que os mineiros de Bitcoin devem resolver puzzles criptográficos complexos que levam ao uso desta função.  

Para conseguir a exploração mineira, os mineiros devem acumular SHA-256 Hashes até encontrarem um valor decimal inferior ao alvo solicitado na rede, tarefa que não é nada fácil. Além disso, o sistema regulariza a dificuldade de mineração aumentando-a ou diminuindo-a, variando assim o poder da rede para calcular os hashes que os SHA-256.  Por outras palavras, quanto mais poder for a rede, mais difícil será o trabalho mineiro e com ela custará mais para chegar ao hash correto.

Todo este processo é resumido num único resultado chamado Block HASH ou Block ID, um identificador único e irrepetível que encontramos em cada bloco Bitcoin. É dada sob a forma de um Hash e é claramente um SHA-256.

Note-se que o Bitcoin não é o único projeto  para empregar SHA-256.  Na   verdade, a maioria dos projetos de criptomoedas criados a partir de Bitcoin usam-na. Até projetos autónomos de Bitcoin. A razão é clara, um padrão seguro, fácil de implementar e fiável. A lista de criptomoedas que a utilizam não é curta, no entanto abaixo veremos alguns dos que usam SHA-256 na sua mineração: Bitcoin Cash,   Namecoin,  Peercoin ou Steem Dollars.

Segurança no futuro

Com o avanço das tecnologias, muitos utilizadores questionam-se sobre o quão segura será uma funcionalidade criada em 2001 no futuro. Existem atualmente formas de ataque conhecidas que quebrariam a segurança da SHA-256, no entanto, nenhuma delas poderia ser aplicada até agora.

Tudo isto leva-nos a pensar que o SHA-256 pode não ser tão seguro, mas será por um bom tempo. No caso de ser violado a qualquer momento, o SHA-256 só teria de ser atualizado e atualizado os processos de mineração, bem como os processos de geração de identificadores. Isto juntamente com a atualização dos endereços seria suficiente para evitar o problema e manter as criptomoedas num campo seguro.