Função hash criptográfica BLAKE3 disponível, que é 10 vezes mais rápida que SHA-2

A implementação final do algoritmo foi publicada BLAKE3, que oferece uma função hash criptográfica projetada para aplicações como verificação de integridade de arquivos, autenticação de mensagens e geração de dados para assinaturas digitais. BLAKE3 não se destina a hash de senhas (para senhas você precisa usar yescrypt, bcrypt, scrypt ou Argon2), pois visa calcular hashes o mais rápido possível com garantia de não colisões, proteção contra encontrando o protótipo e não é sensível ao tamanho dos dados com hash. Implementação de referência do BLAKE3 publicado Dupla licença em Domínio Público (CC0) e Apache 2.0.

A principal diferença da nova função hash é o alto desempenho do cálculo de hash, mantendo a confiabilidade no nível SHA-3. Por padrão, o tamanho do hash resultante no BLAKE3 é de 32 bytes (256 bits), mas pode ser expandido para valores arbitrários. Em um teste de geração de hash para um arquivo de 16 KB, o BLAKE3 supera o SHA3-256 em 15 vezes, o SHA-256 em 12 vezes, o SHA-512 em 8 vezes, o SHA-1 em 6 vezes e o BLAKE2b em 4 vezes. Permanece uma lacuna significativa quando se processam grandes quantidades de dados, por exemplo, o BLAKE3 revelou-se mais rápido SHA-256 em 8 vezes ao calcular hash para 1 GB de dados aleatórios.

Função hash criptográfica BLAKE3 disponível, que é 10 vezes mais rápida que SHA-2

O algoritmo foi desenvolvido por famosos especialistas em criptografia (Jack O'Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn) e continua a desenvolver o algoritmo BLAKE2 e usa um mecanismo para codificar a árvore da cadeia de blocos Bao. Ao contrário do BLAKE2 (BLAKE2b, BLAKE2s), o BLAKE3 oferece um algoritmo único para todas as plataformas, não vinculado à profundidade de bits e ao tamanho do hash.

O aumento de desempenho foi alcançado reduzindo o número de rodadas de 10 para 7 e hashing de blocos separadamente em pedaços de 1 KB. Segundo os criadores, eles encontraram um argumento convincente prova, que você pode fazer 7 rodadas em vez de 10, mantendo o mesmo nível de confiabilidade (para maior clareza, você pode dar um exemplo misturando frutas em uma batedeira - após 7 segundos as frutas já estão completamente misturadas e mais 3 segundos irão não afeta a consistência da mistura). No entanto, alguns pesquisadores expressam dúvidas, acreditando que mesmo que atualmente 7 rodadas sejam suficientes para resistir a todos os ataques conhecidos a hashes, então 3 rodadas adicionais podem ser úteis se novos ataques forem identificados no futuro.

Quanto à divisão em blocos, no BLAKE3 o fluxo é dividido em pedaços de 1 KB e cada pedaço é hash independentemente. Baseado em hashes das peças na base árvore Merkle binária um grande hash é formado. Essa divisão nos permite resolver o problema de paralelização do processamento de dados ao calcular um hash - por exemplo, você pode usar instruções SIMD de 4 threads para calcular simultaneamente os hashes de 4 blocos. As funções hash SHA-* tradicionais processam dados sequencialmente.

Características do BLAKE3:

  • Alta performance;
  • Segurança, incluindo resistência a ataque de alongamento de mensagem, ao qual o SHA-2 é suscetível;
  • Garantir a paralelização de cálculos em qualquer número de threads e canais SIMD;
  • Possibilidade de atualização incremental e processamento verificado de streams;
  • Use nos modos PRF, MAC, KDF, XOF e como hash regular;
  • Um único algoritmo para todas as arquiteturas, rápido em sistemas x86-64 e processadores ARM de 32 bits.

Fonte: opennet.ru

Adicionar um comentário