BLAKE3, uma função hash criptográfica segura, rápida e paralelizável

Conheça BLAKE3, uma função hash criptográfica segura, rápida e paralelizável, aliás, considerada muito mais rápida que MD5, SHA-1, SHA-2, SHA-3 e BLAKE2.

BLAKE3 é uma função hash criptográfica que se caracteriza por ser muito mais rápida que MD5, SHA-1, SHA-2, SHA-3 e BLAKE2, além de ser mais segura, ao contrário de MD5 e SHA-1. E seguro contra extensão de comprimento, ao contrário de SHA-2.

BLAKE3, uma função hash criptográfica segura, rápida e paralelizável

BLAKE3, uma função hash criptográfica segura, rápida e paralelizável
BLAKE3, uma função hash criptográfica segura, rápida e paralelizável

Blake altamente paralelizável em qualquer número de threads e linhas SIMD, porque é uma árvore Merkle no interior e tem um algoritmo livre de variantes, que é rápido em x86-64 e também em arquiteturas menores.

BLAKE3 é baseado em uma instância otimizada da função hash BLAKE2 estabelecida e o modo de árvore Bao original. Especificações e justificativa de design estão disponíveis em papel BLAKE3. O tamanho de saída padrão é 256 bits.

No teste de geração de hash para um arquivo de 16 KB, BLAKE3 com uma chave de 256 bits supera SHA3-256 em 17 vezes, SHA-256 em 14 vezes, SHA-512 em 9 vezes, SHA-1 em 6 vezes. E para BLAKE2b 5 vezes.

Esta é uma lacuna significativa que permanece mesmo durante o processamento de grandes quantidades de dados, por exemplo, o BLAKE3 acabou sendo 8 vezes mais rápido do que o SHA-256 ao calcular um hash para 1 GB de dados aleatórios.

BLAKE3, uma função hash criptográfica segura, rápida e paralelizável
BLAKE3, uma função hash criptográfica segura, rápida e paralelizável

A melhoria de desempenho foi alcançada reduzindo o número de rodadas de 10 para 7 e blocos de hash separadamente em pedaços de 1 KB. De acordo com os criadores, eles encontraram provas matemáticas convincentes de que você pode sobreviver com 7 rodadas em vez de 10, mantendo o mesmo nível de confiabilidade.

Ao mesmo tempo, alguns pesquisadores expressam dúvidas, acreditando que mesmo que atualmente 7 rodadas sejam suficientes para conter todos os ataques conhecidos em hashes, então 3 rodadas adicionais podem ser úteis se novos ataques forem detectados no futuro.

Sobre BLAKE3

A função hash é projetada para aplicativos como verificação de integridade de arquivo, autenticação de mensagem e geração de dados para assinaturas digitais criptográficas.

BLAKE3 não foi projetado para fazer hash de senhas, pois visa computar hashes o mais rápido possível (para senhas, é recomendado usar as funções hash e escrypt lentos, bcrypt, scrypt ou Argon2).

A função hash em questão é insensível ao tamanho dos dados que estão sendo processados ​​e é protegida contra pesquisa de colisão e ataques de pré-imagem.

O algoritmo foi desenvolvido por criptógrafos renomados e continua o desenvolvimento do algoritmo BLAKE2 e usa o mecanismo Bao para codificar a árvore do blockchain. Ao contrário do BLAKE2 (BLAKE2b, BLAKE2s), o BLAKE3 oferece um único algoritmo para todas as plataformas que não está vinculado à largura do bit e tamanho do hash.

Em relação à divisão de blocos, no BLAKE3 o fluxo é dividido em blocos de 1 KB e cada bloco é hash independente. Um grande hash é formado com base em hashes de peças com base na árvore binária Merkle.

Essa separação permite resolver o problema de paralelização do processamento de dados no cálculo de um hash; por exemplo, você pode usar instruções SIMD de 4 fios para calcular hashes de 4 blocos simultaneamente. As funções hash SHA-* tradicionais processam dados sequencialmente.

Outras características do BLAKE3 são:

  • Aplicação nos modos PRF, MAC, KDF, XOF e como hash normal;
  • Um algoritmo para todas as arquiteturas, rápido em sistemas x86-64 e processadores ARM de 32 bits.

Em relação às principais diferenças entre BLAKE3 e BLAKE2:

  • Usando uma estrutura de árvore binária para alcançar paralelismo ilimitado no cálculo de hash.
  • Reduzindo o número de rodadas de 10 para 7.
  • Três modos de operação: Hash, Hash com chave (HMAC) e Geração de chave (KDF).
  • Não há sobrecarga adicional ao fazer hash de uma chave devido ao uso da área anteriormente ocupada pelo bloco de parâmetros da chave.
  • Mecanismo integrado para funcionar na forma de Função de Saída Extensível (XOF) que permite paralelização e posicionamento (pesquisa).

Por fim, caso tenha interesse em saber mais sobre o assunto, consulte os detalhes no seguinte endereço.

Sobre o Edivaldo Brito

Edivaldo Brito é analista de sistemas, gestor de TI, blogueiro e também um grande fã de sistemas operacionais, banco de dados, software livre, redes, programação, dispositivos móveis e tudo mais que envolve tecnologia.

Deixe um comentário

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.