Fonction de hachage cryptographique BLAKE3 disponible, 10 fois plus rapide que SHA-2

La mise en œuvre finale de l'algorithme a été publiée BLAKE3, qui offre une fonction de hachage cryptographique 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. BLAKE3 n'est pas destiné au hachage de mots de passe (pour les mots de passe, vous devez utiliser yescrypt, bcrypt, scrypt ou Argon2), car il vise à calculer les hachages le plus rapidement possible avec une garantie d'absence de collision, une protection contre trouver le prototype et n'est pas sensible à la taille des données hachées. Implémentation de référence de BLAKE3 publié par Double licence sous Public Domain (CC0) et Apache 2.0.

La principale différence de la nouvelle fonction de hachage réside dans les très hautes performances des calculs de hachage tout en maintenant la fiabilité au niveau SHA-3. Par défaut, la taille de hachage résultante dans BLAKE3 est de 32 octets (256 bits), mais elle peut être étendue à des valeurs arbitraires. Dans un test de génération de hachage pour un fichier de 16 Ko, BLAKE3 surpasse SHA3-256 de 15 fois, SHA-256 de 12 fois, SHA-512 de 8 fois, SHA-1 de 6 fois et BLAKE2b de 4 fois. Une lacune importante demeure lors du traitement de très grandes quantités de données, par exemple, BLAKE3 s'est avéré être plus vite SHA-256 de 8 fois lors du calcul du hachage pour 1 Go de données aléatoires.

Fonction de hachage cryptographique BLAKE3 disponible, 10 fois plus rapide que SHA-2

L'algorithme a été développé par de célèbres experts en cryptographie (Jack O'Connor, Jean-Philippe Aumasson, Samuel Névés, Zooko Wilcox-O'Hearn) et continue de développer l'algorithme BLAKE2 et utilise un mécanisme pour coder l'arborescence de la chaîne de blocs Faisceau. Contrairement à BLAKE2 (BLAKE2b, BLAKE2s), BLAKE3 propose un algorithme unique pour toutes les plates-formes, non lié à la profondeur de bits et à la taille de hachage.

Des performances accrues ont été obtenues en réduisant le nombre de tours de 10 à 7 et en hachant séparément les blocs en morceaux de 1 Ko. Selon les créateurs, ils ont trouvé une solution convaincante évidence, qu'on peut se débrouiller avec 7 tours au lieu de 10 tout en gardant le même niveau de fiabilité (pour plus de clarté, vous pouvez donner un exemple de mélange de fruits dans un mixeur - au bout de 7 secondes les fruits sont déjà complètement mélangés et 3 secondes supplémentaires le feront n'altère pas la consistance du mélange). Cependant, certains chercheurs expriment des doutes, estimant que même si actuellement 7 tours suffisent pour résister à toutes les attaques connues sur les hachages, alors 3 tours supplémentaires pourraient être utiles si de nouvelles attaques sont identifiées à l'avenir.

Quant à la division en blocs, dans BLAKE3, le flux est divisé en morceaux de 1 Ko et chaque morceau est haché indépendamment. Basé sur les hachages des pièces sur la base arbre merkle binaire un gros hachage est formé. Cette division nous permet de résoudre le problème de la parallélisation du traitement des données lors du calcul d'un hachage - par exemple, vous pouvez utiliser des instructions SIMD à 4 threads pour calculer simultanément les hachages de 4 blocs. Les fonctions de hachage SHA-* traditionnelles traitent les données de manière séquentielle.

Caractéristiques de BLAKE3 :

  • Haute performance;
  • Sécurité, y compris la résistance aux attaque d'élongation du message, auquel SHA-2 est sensible ;
  • Assurer la parallélisation des calculs sur un nombre quelconque de threads et de canaux SIMD ;
  • Possibilité de mise à jour incrémentielle et de traitement vérifié des flux ;
  • Utiliser en modes PRF, MAC, KDF, XOF et comme hachage régulier ;
  • Un algorithme unique pour toutes les architectures, rapide sur les systèmes x86-64 et les processeurs ARM 32 bits.

Source: opennet.ru

Ajouter un commentaire