O que é a função de hash criptográfica?

Principiante3/17/2024, 2:00:25 PM
Este artigo fornece uma visão geral abrangente das funções hash criptográficas, explorando a sua história, características, aplicações em blockchain e princípios de funcionamento. As funções hash criptográficas desempenham um papel crucial para garantir a segurança e a fiabilidade da tecnologia blockchain.

História da função de hash criptográfica

A função hash criptográfica (CHF) existe desde a década de 1980 e tem uma utilidade generalizada na criptografia, na verificação da integridade dos dados, na indexação de bases de dados e em vários outros domínios.

Ao calcular uma função de hash criptográfica, são introduzidos dados de comprimento arbitrário e a função correspondente transforma-os num valor de saída de comprimento fixo. Esta transformação envolve a aplicação de várias operações a diferentes segmentos dos dados de entrada, normalmente designados por Hash. A saída resultante é conhecida como o valor de hash, sendo a própria operação denominada função de hash.

Um exemplo ilustrativo é o Algoritmo MD5, frequentemente utilizado em descarregadores P2P, caracterizado por um comprimento de 128 bits. Os utilizadores podem comparar o valor hash de um ficheiro descarregado com o valor fornecido pela fonte; uma correspondência indica a provável integridade do ficheiro.

Outra aplicação predominante é a autenticação de palavras-passe em sítios Web. Para proteger as palavras-passe dos utilizadores, a maioria das plataformas armazena palavras-passe com hashing em vez de entradas em texto simples. Quando um utilizador inicia a sessão, o sistema calcula a função hash da palavra-passe introduzida e compara-a com o valor armazenado associado ao nome de utilizador. A natureza irreversível da função hash criptográfica protege contra a desencriptação da palavra-passe, mesmo que os piratas informáticos obtenham os valores hash da base de dados.

Características das funções de hash criptográficas

A pesquisa 'SHA256 Generator' revela que diferentes sites que utilizam o mesmo algoritmo geram consistentemente valores de hash idênticos para textos de entrada semelhantes.

Além disso, alterar o caso do texto de entrada resulta em valores de hash de saída totalmente distintos, conhecidos como o Efeito Avalanche. As seguintes características medem a segurança de uma função hash criptográfica:

  • Resistência à pré-imagem: Recuperar o valor de entrada original a partir do valor de hash de saída é um grande desafio devido às propriedades da função unidirecional.

No exemplo acima mencionado, a reconstrução da palavra-passe de um utilizador a partir de valores hash roubados apresenta uma dificuldade significativa. As operações complexas e a compressão de informação nas funções de hash criptográficas dificultam a engenharia inversa, realçando a sua natureza unidirecional.

  • Segunda resistência à pré-imagem: Identificar outro valor de entrada que produza o mesmo valor de hash, dada uma entrada inicial, é difícil. **Esta caraterística é designada por resistência fraca à colisão.

  • Resistência à colisão: Descobrir dois valores distintos que produzem valores de hash idênticos é um desafio e denomina-se uma colisão de hash criptográfico. Esta propriedade denota uma forte resistência à colisão.

Tomando como exemplo o MD5 mencionado, é possível que ficheiros diferentes gerem o mesmo valor de hash? A resposta é sim, mas a probabilidade é extremamente baixa. Este fenómeno é conhecido como uma colisão de hash criptográfico, que pode ocorrer acidentalmente ou através de um ataque deliberado. A probabilidade de colisão padrão para o algoritmo MD5 é de cerca de 1/2¹²⁸, tornando as ocorrências acidentais muito improváveis. No entanto, o MD5 é considerado vulnerável a ataques de colisão deliberados, uma vez que é relativamente fácil produzir o mesmo valor de hash para dois textos simples diferentes. Por conseguinte, embora o algoritmo MD5 ainda possa ser utilizado para tarefas que não envolvam segurança, já não é adequado para tarefas de autenticação de segurança (como a autenticação de chaves ou assinaturas digitais).

Função de hash criptográfica na cadeia de blocos

O Ethereum utiliza a função de hash criptográfico KECCAK-256, que muitas pessoas identificam erradamente como SHA-3 (incluindo na tese de doutoramento do fundador da Celestia) porque esta função foi originalmente escrita como 'sha3' no Solidity. Devido à confusão, foi posteriormente renomeado para Keccak256.

A MetaMask utiliza várias funções de hash criptográficas nas suas operações:

  • Um conjunto de 12 palavras de uma combinação aleatória de 2048 palavras da proposta BIP39 forma palavras auxiliares.
  • Cada palavra corresponde a um valor, criando coletivamente números inteiros de sementes.
  • A MetaMask aplica a função SHA-256 ao número inteiro da semente, gerando uma chave privada para importar carteiras existentes. Por vezes, é isto que tem de ser introduzido quando importa uma carteira existente num novo dispositivo.
  • O algoritmo ECDSA processa a chave privada para obter uma chave pública.
  • A MetaMask gera um hash da chave pública usando a função Keccak-256, pegando nos últimos 20 bytes do hash (convertido em hexadecimal, ou seja, um comprimento de 40 letras ou números) e prefixando-o com um 0x, que se torna o endereço ETH.

Como funciona a função de hash criptográfica na cadeia de blocos

O Bitcoin utiliza a função de hash criptográfico SHA-256. Aqui, vamos elucidar o processo através do qual os mineiros de Bitcoin se envolvem com funções hash criptográficas durante as actividades de mineração.

Na mineração de Bitcoin, os mineiros amalgamam dados de transação com um cabeçalho de bloco, que inclui detalhes de transação juntamente com metadados como carimbos de data/hora e números aleatórios. Os mineiros esforçam-se por produzir um hash SHA-256 específico, ajustando iterativamente os números aleatórios (referidos como "nonce"), no cabeçalho do bloco, com o objetivo de cumprir critérios específicos, começando normalmente com um número definido de zeros à esquerda. Dada a natureza da função hash SHA-256, o único método para descobrir um hash compatível é através da experimentação contínua com diferentes números aleatórios.

Ao encontrar um hash que preencha os requisitos, os mineiros podem anexar o bloco ao blockchain da rede Bitcoin e receber uma quantidade designada de Bitcoins como recompensa. Este processo, conhecido como "mineração", envolve a execução contínua de funções de hash para identificar um valor de hash que satisfaça os critérios especificados.

Para além da mineração, as funções hash criptográficas são fundamentais para estabelecer ligações entre blocos e rastrear alterações de transacções nos sistemas de cadeias de blocos. Os ponteiros de hash servem como estruturas de dados que facilitam a indexação de dados, a recuperação e a verificação de modificações de dados. Cada transação na cadeia de blocos passa por um processo de hashing antes de ser organizada em blocos. Posteriormente, um ponteiro de hash liga cada bloco ao seu antecedente, armazenando um hash dos dados do bloco anterior. A natureza interligada dos blocos garante a imutabilidade dentro da cadeia de blocos; qualquer modificação a uma transação resulta num valor de hash distinto, alterando consequentemente os hashes de todos os blocos subsequentes. Por exemplo, considere uma cadeia de blocos composta por dois blocos:

  • Bloco 1: engloba os hashes das transacções T1, T2 e T3.

  • Bloco 2: apresenta os hashes das transacções T4, T5 e T6, juntamente com o hash do bloco 1.

Se um indivíduo tentasse adulterar a transação T1 no Bloco 1, teria de recalibrar o valor hash do Bloco 1 e atualizar o novo valor no Bloco 2. No entanto, devido à natureza unidirecional e de resistência à pré-imagem das funções hash criptográficas, a inversão da transação T1 no Bloco 1 com base no valor hash do Bloco 2 revela-se um desafio.

Além disso, dado que o Bloco 2 incorpora o valor de hash do Bloco 1, a adulteração do Bloco 1 alteraria consequentemente o valor de hash do Bloco 2. Isto requer a adulteração simultânea de todos os blocos subsequentes para quaisquer modificações na cadeia de blocos - uma tarefa formidável. Consequentemente, as funções de hash criptográficas mantêm efetivamente a coerência e a integridade dos dados da cadeia de blocos.

No domínio da cadeia de blocos, a função hash criptográfica desempenha vários papéis essenciais:

  • Ligação de blocos: O cabeçalho de cada bloco contém o valor de hash do bloco anterior, facilitando uma cadeia conectada de blocos que garante uma integridade inviolável.

  • Validação da transação: Os dados da transação são submetidos a hashing, com o valor de hash resultante incluído no bloco, validando a autenticidade e a integridade da transação.

  • Mecanismo de consenso: No âmbito do mecanismo de consenso Proof of Work (PoW), os mineiros devem identificar um valor nonce que cumpra os requisitos de dificuldade através da execução de funções hash.

O futuro das funções de hash criptográficas

Em 2 de setembro de 2022, Vitalik publicou uma pergunta no Twitter (X), perguntando qual a função hash criptográfica que permaneceria segura se fosse inventado um computador quântico que utilizasse o algoritmo de Shor.

Fonte: tweet de Vitalik

Ele indicou que um computador quântico capaz de utilizar o algoritmo de Shor poderia quebrar o RSA (um criptossistema de chave pública de longa data) ou qualquer coisa baseada em factorização, curvas elípticas e grupos de ordem desconhecida. No entanto, os valores de hash (como o SHA-256) têm um bom desempenho no contexto da computação quântica, embora a sua segurança seja um pouco reduzida, o que recomenda a utilização de valores de hash mais longos.

Conclusão

Qual é a robustez das funções de hash criptográficas, como o SHA-256? O "256" em SHA-256 representa 2 elevado à potência de 256, um número tão grande que é difícil de entender concretamente.

Fonte: 3Blue1Brown

No entanto, 3Blue1Brown apresentou uma analogia vívida para ajudar a compreender a segurança das funções de hash criptográficas: imagine um cenário em que 4 mil milhões de indivíduos na Terra possuem, cada um, um computador com capacidades de computação excepcionais, equivalente a 1000 vezes o poder de computação do Google a nível mundial. Ao mesmo tempo, imagine um cosmos com 4 mil milhões de planetas e 4 mil milhões de galáxias semelhantes à Via Láctea! Mesmo nestas condições extremas, seriam necessários mais de 500 mil milhões de anos para que existisse uma hipótese de 1 em 4 mil milhões de adivinhar com precisão "a entrada específica necessária para gerar o valor hash de saída SHA-256".

Autor: Morris
Tradutor(a): Paine
Revisor(es): Wayne、Edward、Elisa、Ashley、Joyce
* As informações não se destinam a ser e não constituem aconselhamento financeiro ou qualquer outra recomendação de qualquer tipo oferecido ou endossado pela Gate.io.
* Este artigo não pode ser reproduzido, transmitido ou copiado sem fazer referência à Gate.io. A violação é uma violação da Lei de Direitos de Autor e pode estar sujeita a ações legais.

O que é a função de hash criptográfica?

Principiante3/17/2024, 2:00:25 PM
Este artigo fornece uma visão geral abrangente das funções hash criptográficas, explorando a sua história, características, aplicações em blockchain e princípios de funcionamento. As funções hash criptográficas desempenham um papel crucial para garantir a segurança e a fiabilidade da tecnologia blockchain.

História da função de hash criptográfica

A função hash criptográfica (CHF) existe desde a década de 1980 e tem uma utilidade generalizada na criptografia, na verificação da integridade dos dados, na indexação de bases de dados e em vários outros domínios.

Ao calcular uma função de hash criptográfica, são introduzidos dados de comprimento arbitrário e a função correspondente transforma-os num valor de saída de comprimento fixo. Esta transformação envolve a aplicação de várias operações a diferentes segmentos dos dados de entrada, normalmente designados por Hash. A saída resultante é conhecida como o valor de hash, sendo a própria operação denominada função de hash.

Um exemplo ilustrativo é o Algoritmo MD5, frequentemente utilizado em descarregadores P2P, caracterizado por um comprimento de 128 bits. Os utilizadores podem comparar o valor hash de um ficheiro descarregado com o valor fornecido pela fonte; uma correspondência indica a provável integridade do ficheiro.

Outra aplicação predominante é a autenticação de palavras-passe em sítios Web. Para proteger as palavras-passe dos utilizadores, a maioria das plataformas armazena palavras-passe com hashing em vez de entradas em texto simples. Quando um utilizador inicia a sessão, o sistema calcula a função hash da palavra-passe introduzida e compara-a com o valor armazenado associado ao nome de utilizador. A natureza irreversível da função hash criptográfica protege contra a desencriptação da palavra-passe, mesmo que os piratas informáticos obtenham os valores hash da base de dados.

Características das funções de hash criptográficas

A pesquisa 'SHA256 Generator' revela que diferentes sites que utilizam o mesmo algoritmo geram consistentemente valores de hash idênticos para textos de entrada semelhantes.

Além disso, alterar o caso do texto de entrada resulta em valores de hash de saída totalmente distintos, conhecidos como o Efeito Avalanche. As seguintes características medem a segurança de uma função hash criptográfica:

  • Resistência à pré-imagem: Recuperar o valor de entrada original a partir do valor de hash de saída é um grande desafio devido às propriedades da função unidirecional.

No exemplo acima mencionado, a reconstrução da palavra-passe de um utilizador a partir de valores hash roubados apresenta uma dificuldade significativa. As operações complexas e a compressão de informação nas funções de hash criptográficas dificultam a engenharia inversa, realçando a sua natureza unidirecional.

  • Segunda resistência à pré-imagem: Identificar outro valor de entrada que produza o mesmo valor de hash, dada uma entrada inicial, é difícil. **Esta caraterística é designada por resistência fraca à colisão.

  • Resistência à colisão: Descobrir dois valores distintos que produzem valores de hash idênticos é um desafio e denomina-se uma colisão de hash criptográfico. Esta propriedade denota uma forte resistência à colisão.

Tomando como exemplo o MD5 mencionado, é possível que ficheiros diferentes gerem o mesmo valor de hash? A resposta é sim, mas a probabilidade é extremamente baixa. Este fenómeno é conhecido como uma colisão de hash criptográfico, que pode ocorrer acidentalmente ou através de um ataque deliberado. A probabilidade de colisão padrão para o algoritmo MD5 é de cerca de 1/2¹²⁸, tornando as ocorrências acidentais muito improváveis. No entanto, o MD5 é considerado vulnerável a ataques de colisão deliberados, uma vez que é relativamente fácil produzir o mesmo valor de hash para dois textos simples diferentes. Por conseguinte, embora o algoritmo MD5 ainda possa ser utilizado para tarefas que não envolvam segurança, já não é adequado para tarefas de autenticação de segurança (como a autenticação de chaves ou assinaturas digitais).

Função de hash criptográfica na cadeia de blocos

O Ethereum utiliza a função de hash criptográfico KECCAK-256, que muitas pessoas identificam erradamente como SHA-3 (incluindo na tese de doutoramento do fundador da Celestia) porque esta função foi originalmente escrita como 'sha3' no Solidity. Devido à confusão, foi posteriormente renomeado para Keccak256.

A MetaMask utiliza várias funções de hash criptográficas nas suas operações:

  • Um conjunto de 12 palavras de uma combinação aleatória de 2048 palavras da proposta BIP39 forma palavras auxiliares.
  • Cada palavra corresponde a um valor, criando coletivamente números inteiros de sementes.
  • A MetaMask aplica a função SHA-256 ao número inteiro da semente, gerando uma chave privada para importar carteiras existentes. Por vezes, é isto que tem de ser introduzido quando importa uma carteira existente num novo dispositivo.
  • O algoritmo ECDSA processa a chave privada para obter uma chave pública.
  • A MetaMask gera um hash da chave pública usando a função Keccak-256, pegando nos últimos 20 bytes do hash (convertido em hexadecimal, ou seja, um comprimento de 40 letras ou números) e prefixando-o com um 0x, que se torna o endereço ETH.

Como funciona a função de hash criptográfica na cadeia de blocos

O Bitcoin utiliza a função de hash criptográfico SHA-256. Aqui, vamos elucidar o processo através do qual os mineiros de Bitcoin se envolvem com funções hash criptográficas durante as actividades de mineração.

Na mineração de Bitcoin, os mineiros amalgamam dados de transação com um cabeçalho de bloco, que inclui detalhes de transação juntamente com metadados como carimbos de data/hora e números aleatórios. Os mineiros esforçam-se por produzir um hash SHA-256 específico, ajustando iterativamente os números aleatórios (referidos como "nonce"), no cabeçalho do bloco, com o objetivo de cumprir critérios específicos, começando normalmente com um número definido de zeros à esquerda. Dada a natureza da função hash SHA-256, o único método para descobrir um hash compatível é através da experimentação contínua com diferentes números aleatórios.

Ao encontrar um hash que preencha os requisitos, os mineiros podem anexar o bloco ao blockchain da rede Bitcoin e receber uma quantidade designada de Bitcoins como recompensa. Este processo, conhecido como "mineração", envolve a execução contínua de funções de hash para identificar um valor de hash que satisfaça os critérios especificados.

Para além da mineração, as funções hash criptográficas são fundamentais para estabelecer ligações entre blocos e rastrear alterações de transacções nos sistemas de cadeias de blocos. Os ponteiros de hash servem como estruturas de dados que facilitam a indexação de dados, a recuperação e a verificação de modificações de dados. Cada transação na cadeia de blocos passa por um processo de hashing antes de ser organizada em blocos. Posteriormente, um ponteiro de hash liga cada bloco ao seu antecedente, armazenando um hash dos dados do bloco anterior. A natureza interligada dos blocos garante a imutabilidade dentro da cadeia de blocos; qualquer modificação a uma transação resulta num valor de hash distinto, alterando consequentemente os hashes de todos os blocos subsequentes. Por exemplo, considere uma cadeia de blocos composta por dois blocos:

  • Bloco 1: engloba os hashes das transacções T1, T2 e T3.

  • Bloco 2: apresenta os hashes das transacções T4, T5 e T6, juntamente com o hash do bloco 1.

Se um indivíduo tentasse adulterar a transação T1 no Bloco 1, teria de recalibrar o valor hash do Bloco 1 e atualizar o novo valor no Bloco 2. No entanto, devido à natureza unidirecional e de resistência à pré-imagem das funções hash criptográficas, a inversão da transação T1 no Bloco 1 com base no valor hash do Bloco 2 revela-se um desafio.

Além disso, dado que o Bloco 2 incorpora o valor de hash do Bloco 1, a adulteração do Bloco 1 alteraria consequentemente o valor de hash do Bloco 2. Isto requer a adulteração simultânea de todos os blocos subsequentes para quaisquer modificações na cadeia de blocos - uma tarefa formidável. Consequentemente, as funções de hash criptográficas mantêm efetivamente a coerência e a integridade dos dados da cadeia de blocos.

No domínio da cadeia de blocos, a função hash criptográfica desempenha vários papéis essenciais:

  • Ligação de blocos: O cabeçalho de cada bloco contém o valor de hash do bloco anterior, facilitando uma cadeia conectada de blocos que garante uma integridade inviolável.

  • Validação da transação: Os dados da transação são submetidos a hashing, com o valor de hash resultante incluído no bloco, validando a autenticidade e a integridade da transação.

  • Mecanismo de consenso: No âmbito do mecanismo de consenso Proof of Work (PoW), os mineiros devem identificar um valor nonce que cumpra os requisitos de dificuldade através da execução de funções hash.

O futuro das funções de hash criptográficas

Em 2 de setembro de 2022, Vitalik publicou uma pergunta no Twitter (X), perguntando qual a função hash criptográfica que permaneceria segura se fosse inventado um computador quântico que utilizasse o algoritmo de Shor.

Fonte: tweet de Vitalik

Ele indicou que um computador quântico capaz de utilizar o algoritmo de Shor poderia quebrar o RSA (um criptossistema de chave pública de longa data) ou qualquer coisa baseada em factorização, curvas elípticas e grupos de ordem desconhecida. No entanto, os valores de hash (como o SHA-256) têm um bom desempenho no contexto da computação quântica, embora a sua segurança seja um pouco reduzida, o que recomenda a utilização de valores de hash mais longos.

Conclusão

Qual é a robustez das funções de hash criptográficas, como o SHA-256? O "256" em SHA-256 representa 2 elevado à potência de 256, um número tão grande que é difícil de entender concretamente.

Fonte: 3Blue1Brown

No entanto, 3Blue1Brown apresentou uma analogia vívida para ajudar a compreender a segurança das funções de hash criptográficas: imagine um cenário em que 4 mil milhões de indivíduos na Terra possuem, cada um, um computador com capacidades de computação excepcionais, equivalente a 1000 vezes o poder de computação do Google a nível mundial. Ao mesmo tempo, imagine um cosmos com 4 mil milhões de planetas e 4 mil milhões de galáxias semelhantes à Via Láctea! Mesmo nestas condições extremas, seriam necessários mais de 500 mil milhões de anos para que existisse uma hipótese de 1 em 4 mil milhões de adivinhar com precisão "a entrada específica necessária para gerar o valor hash de saída SHA-256".

Autor: Morris
Tradutor(a): Paine
Revisor(es): Wayne、Edward、Elisa、Ashley、Joyce
* As informações não se destinam a ser e não constituem aconselhamento financeiro ou qualquer outra recomendação de qualquer tipo oferecido ou endossado pela Gate.io.
* Este artigo não pode ser reproduzido, transmitido ou copiado sem fazer referência à Gate.io. A violação é uma violação da Lei de Direitos de Autor e pode estar sujeita a ações legais.
Comece agora
Registe-se e ganhe um cupão de
100 USD
!