Publication de l'implémentation de référence de la fonction de hachage cryptographique BLAKE3 1.0

La version de rĂ©fĂ©rence de la fonction de hachage cryptographique BLAKE3 1.0 a Ă©tĂ© publiĂ©e, remarquable par sa trĂšs haute performance de calcul du hachage tout en garantissant une fiabilitĂ© au niveau de SHA-3. Dans le test de gĂ©nĂ©ration de hachage pour un fichier de 16 Ko, BLAKE3 avec une clĂ© de 256 bits dĂ©passe SHA3-256 de 17 fois, SHA-256 de 14 fois, SHA-512 de 9 fois, SHA-1 de 6 fois, et BLAKE2b de 5 fois. Cet Ă©cart significatif se maintient Ă©galement lors du traitement de trĂšs gros volumes de donnĂ©es, par exemple, BLAKE3 s'est rĂ©vĂ©lĂ© plus rapide que SHA-256 d'un facteur de 8 lors du calcul du hachage pour 1 Go de donnĂ©es alĂ©atoires. Le code de la version de rĂ©fĂ©rence de BLAKE3 est disponible en versions sur les langages C et Rust sous une double licence – domaine public (CC0) et Apache 2.0.

Publication de l'implémentation de référence de la fonction de hachage cryptographique BLAKE3 1.0

La fonction de hachage est conçue pour des applications telles que la vĂ©rification de l’intĂ©gritĂ© des fichiers, l’authentification des messages et la gĂ©nĂ©ration de donnĂ©es pour les signatures numĂ©riques cryptographiques. BLAKE3 n'est pas destinĂ©e Ă  hacher des mots de passe, car elle se concentre sur un calcul de hachage aussi rapide que possible (pour les mots de passe, il est recommandĂ© d'utiliser des fonctions de hachage lentes comme yescrypt, bcrypt, scrypt ou Argon2). La fonction de hachage prĂ©sentĂ©e est insensible Ă  la taille des donnĂ©es hachĂ©es et est protĂ©gĂ©e contre les attaques de collision et la recherche de prĂ©images.

L'algorithme a été développé par des experts en cryptographie renommés (Jack O'Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn) et poursuit le développement de l'algorithme BLAKE2 tout en appliquant le mécanisme Bao pour coder l'arbre de chaßnes de blocs. Contrairement à BLAKE2 (BLAKE2b, BLAKE2s), BLAKE3 propose un algorithme unique pour toutes les plateformes, sans lien avec la largeur de champ ou la taille du hachage.

L'augmentation des performances a Ă©tĂ© obtenue grĂące Ă  la rĂ©duction du nombre de rondes de 10 Ă  7 et au hachage des blocs en morceaux de 1 Ko. Selon les crĂ©ateurs, ils ont trouvĂ© une preuve mathĂ©matique convaincante qu'il est possible de se contenter de 7 rondes au lieu de 10 tout en maintenant le mĂȘme niveau de fiabilitĂ© (pour illustrer, on peut prendre l'exemple du mĂ©lange de fruits dans un mixeur : aprĂšs 7 secondes, les fruits sont dĂ©jĂ  parfaitement mĂ©langĂ©s, et 3 secondes supplĂ©mentaires n'affecteront pas la consistance du mĂ©lange). Certains chercheurs expriment toutefois des doutes, estimant que mĂȘme si, Ă  l'heure actuelle, 7 rondes suffisent Ă  rĂ©sister Ă  toutes les attaques connues sur les hachages, les 3 rondes supplĂ©mentaires pourraient se rĂ©vĂ©ler utiles en cas de dĂ©couverte de nouvelles attaques Ă  l'avenir.

En ce qui concerne la division en blocs, le BLAKE3 décompose le flux en morceaux de 1 Ko et chaque morceau est haché indépendamment. Sur la base des hachages des morceaux, un grand hachage est formé sur la base d'un arbre binaire de Merkle. Cette division permet de résoudre le problÚme de la parallélisation du traitement des données lors du calcul du hachage : par exemple, il est possible d'utiliser des instructions SIMD à 4 fils pour calculer simultanément les hachages de 4 blocs. Les fonctions de hachage traditionnelles SHA-* traitent les données de maniÚre séquentielle.

Caractéristiques de BLAKE3 :

  • Haute performance, BLAKE3 est nettement plus rapide que MD5, SHA-1, SHA-2, SHA-3 et BLAKE2.
  • SĂ©curitĂ©, y compris la rĂ©sistance aux attaques par prolongement de message, auxquelles SHA-2 est vulnĂ©rable ;
  • Des versions en langage Rust, optimisĂ©es pour l'utilisation d'instructions SSE2, SSE4.1, AVX2, AVX-512 et NEON, sont disponibles.
  • Assure la parallĂ©lisation des calculs sur n'importe quel nombre de fils et canaux SIMD.
  • PossibilitĂ© de mise Ă  jour incrĂ©mentielle et de traitement vĂ©rifiĂ© des flux ;
  • Utilisation dans les modes PRF, MAC, KDF, XOF et comme hachage ordinaire ;
  • Un algorithme unique pour toutes les architectures, rapide sur les systĂšmes x86-64 ainsi que sur les processeurs ARM 32 bits.

Les principales différences entre BLAKE3 et BLAKE2 :

  • Utilisation d'une structure arborescente binaire permettant d'atteindre une parallĂ©lisation illimitĂ©e lors du calcul du hachage.
  • RĂ©duction du nombre de rondes de 10 Ă  7.
  • Trois modes de fonctionnement : hachage, hachage avec clĂ© (HMAC) et gĂ©nĂ©ration de clĂ© (KDF).
  • Absence de frais supplĂ©mentaires lors du hachage avec clĂ© grĂące Ă  l'utilisation de la zone prĂ©cĂ©demment occupĂ©e par le bloc de paramĂštres de clĂ©.
  • MĂ©canisme intĂ©grĂ© fonctionnant comme une fonction avec sortie extensible (XOF, Extendable Output Function), permettant la parallĂ©lisation et la position (seek).

Source : opennet.ru

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster