ScholarGate
Assistente

Funções Hash Criptográficas

Uma função hash criptográfica comprime uma entrada arbitrária em um resumo curto de comprimento fixo de forma unidirecional e resistente a colisões, servindo como um bloco de construção básico para integridade, autenticação e muitos protocolos de nível superior.

Encontrar tema com PaperMindEm breveFind papers & topics
Tools & resources
Baixar slides
Learn & explore
VídeoEm breve

Definition

Uma função hash criptográfica é uma função determinística que mapeia entradas de comprimento arbitrário para uma saída de comprimento fixo (resumo) de tal forma que é inviável encontrar uma pré-imagem, uma segunda pré-imagem ou quaisquer duas entradas distintas que produzam a mesma saída.

Scope

Este tópico aborda as propriedades de segurança das funções hash (resistência à pré-imagem, à segunda pré-imagem e à colisão), suas construções internas (Merkle-Damgaard, sponge), as famílias padronizadas SHA-2 e SHA-3, e aplicações como verificação de integridade, armazenamento de senhas, compromisso e prova de trabalho. Ele aborda ataques criptoanalíticos, incluindo o limite de aniversário e as quebras de MD5 e SHA-1. Exclui códigos de autenticação com chave, que são tratados sob códigos de autenticação de mensagem, embora muitos MACs sejam construídos a partir de funções hash.

Core questions

  • O que distingue uma função hash criptográfica de uma soma de verificação comum ou função de tabela hash?
  • Por que a resistência à pré-imagem, à segunda pré-imagem e à colisão são distintas, e como elas se relacionam?
  • Por que o paradoxo do aniversário limita a resistência à colisão à metade do comprimento do resumo?
  • Como as construções Merkle-Damgaard e sponge estendem uma compressão de tamanho fixo para uma entrada arbitrária?
  • Como as funções hash são usadas para comprometer dados, verificar a integridade e armazenar senhas?

Key concepts

  • resumo da mensagem
  • resistência à pré-imagem
  • resistência à segunda pré-imagem
  • resistência à colisão
  • ataque de aniversário
  • construção Merkle-Damgaard
  • construção sponge (Keccak)
  • ataque de extensão de comprimento
  • prova de trabalho

Key theories

Resistência à colisão e o limite de aniversário
Devido ao paradoxo do aniversário, um ataque genérico de busca de colisão em um hash de n bits é bem-sucedido em cerca de 2^(n/2) operações; a resistência à colisão, portanto, requer resumos aproximadamente o dobro do nível de segurança desejado (por exemplo, 256 bits para segurança de 128 bits).
Construções iteradas e sponge
O paradigma Merkle-Damgaard constrói um hash completo iterando uma função de compressão de entrada fixa sobre blocos de mensagem; a construção sponge usada pelo SHA-3 (Keccak) absorve a entrada e extrai a saída de um grande estado de permutação, evitando fraquezas de extensão de comprimento.

Mechanisms

Um hash Merkle-Damgaard preenche a mensagem, divide-a em blocos e aplica iterativamente uma função de compressão que mistura cada bloco em um valor de encadeamento em execução, produzindo o valor final como o resumo. A construção sponge do SHA-3, em vez disso, absorve blocos de mensagem por meio de XORing em parte de um grande estado permutado pela função Keccak-f, e então extrai bits de resumo, o que evita a propriedade de extensão de comprimento inerente ao Merkle-Damgaard simples.

Clinical relevance

As funções hash são onipresentes: elas verificam a integridade do download de software, ancoram assinaturas digitais (que assinam um hash, não o documento inteiro), indexam conteúdo em Git e redes de entrega de conteúdo, protegem o armazenamento de senhas por meio de funções lentas de derivação de chave (bcrypt, Argon2) e fornecem a prova de trabalho e as árvores Merkle subjacentes às blockchains. A quebra prática da resistência a colisões de MD5 e SHA-1 forçou a migração para SHA-2 em toda a internet.

Evidence & guidelines

SHA-2 (SHA-256, SHA-512) é especificado em FIPS 180-4 e SHA-3 em FIPS 202; ambos são aprovados pelo NIST. MD5 e SHA-1 são descontinuados para uso de segurança após ataques de colisão demonstrados (sendo a colisão SHAttered SHA-1 de 2017 um marco). Para armazenamento de senhas, os padrões recomendam funções resistentes à memória, como Argon2, em vez de hash simples.

History

A família MD (MD4 e MD5 de Rivest) e o SHA-0/SHA-1 projetados pela NSA dominaram a década de 1990. Os ataques de colisão de Xiaoyun Wang (2004-2005) quebraram o MD5 e enfraqueceram o SHA-1, o que levou à competição aberta SHA-3 do NIST (2007-2012), vencida pelo design sponge Keccak de Bertoni, Daemen, Peeters e Van Assche. O SHA-1 foi praticamente quebrado pela colisão SHAttered em 2017.

Key figures

  • Ralph Merkle
  • Ivan Damgaard
  • Guido Bertoni
  • Joan Daemen
  • Xiaoyun Wang

Related topics

Seminal works

  • nist2015sha3
  • katz2020
  • menezes1996

Frequently asked questions

Por que não posso simplesmente fazer o hash de uma senha e armazenar o resumo?
Hashes criptográficos simples são rápidos, o que permite que os atacantes tentem bilhões de palpites por segundo contra um banco de dados roubado. O armazenamento de senhas, em vez disso, usa funções deliberadamente lentas, com sal e resistentes à memória (bcrypt, scrypt, Argon2) para que a força bruta de cada senha seja cara.
O SHA-256 está quebrado agora que o SHA-1 está?
Não. SHA-1 e SHA-256 são algoritmos diferentes; os ataques de colisão no SHA-1 não se transferem para o SHA-2. O SHA-256 permanece inquebrável e é o hash de propósito geral recomendado, juntamente com o SHA-3.

Methods for this concept

Related concepts