Skein (fonction de hachage) - Skein (hash function)

Écheveau
Écheveau permutation.png
Général
Créateurs Bruce Schneier , Niels Ferguson et coll.
Dérivé de Trois poissons
Certification Finaliste SHA-3
Détail
Tailles de résumé arbitraire
Structure Itération de bloc unique
Les manches 72 (taille de bloc de 256 et 512), 80 (taille de bloc de 1024)
La vitesse 6.1 cpb sur Core 2 .
Fonction de mélange de trois poissons

Skein est une fonction de hachage cryptographique et l'un des cinq finalistes du concours de fonction de hachage du NIST . Entré en tant que candidat pour devenir le standard SHA-3 , le successeur de SHA-1 et SHA-2 , il a finalement perdu face au candidat de hachage du NIST Keccak .

Le nom Skein fait référence à la façon dont la fonction Skein entrelace l'entrée, semblable à un écheveau de fil.

Histoire

Skein a été créé par Bruce Schneier , Niels Ferguson , Stefan Lucks , Doug Whiting, Mihir Bellare , Tadayoshi Kohno, Jon Callas et Jesse Walker.

Écheveau est basé sur la Threefish tweakable chiffrement par bloc compressé en utilisant Bloquer unique Iteration (UBI) en mode de chaînage, une variante de la Matyas-Meyer-Oseas mode de hachage, tout en tirant parti d' un système d'argument faible surcharge en option pour la flexibilité.

L'algorithme de Skein et une implémentation de référence ont été attribués au domaine public .

Fonctionnalité

Skein prend en charge des tailles d'état internes de 256, 512 et 1024 bits et des tailles de sortie arbitraires.

Les auteurs revendiquent 6,1 cycles par octet pour toute taille de sortie sur un Intel Core 2 Duo en mode 64 bits.

Le cœur de Threefish est basé sur une fonction MIX qui transforme 2 mots de 64 bits en une seule addition, rotation par une constante et XOR. Le mode de chaînage UBI combine une valeur de chaînage d'entrée avec une chaîne d'entrée de longueur arbitraire et produit une sortie de taille fixe.

La non - linéarité de Threefish provient entièrement de la combinaison d'opérations d'addition et d'opérations exclusives ; il n'utilise pas de S-box . La fonction est optimisée pour les processeurs 64 bits, et le papier Skein définit des caractéristiques optionnelles telles que randomisée hachage , parallélisables hachage de l' arbre , un chiffre continu , la personnalisation, et une fonction de dérivation de clé .

Cryptanalyse

En octobre 2010, une attaque combinant la cryptanalyse rotative et l' attaque par rebond a été publiée. L'attaque trouve des collisions rotationnelles pour 53 des 72 tours dans Threefish-256 et 57 des 72 tours dans Threefish-512. Cela affecte également la fonction de hachage Skein. Il s'agit d'un suivi de l'attaque précédente publiée en février, qui brise respectivement 39 et 42 rounds.

L'équipe Skein a modifié la constante de calendrier clé pour la troisième manche de la compétition de fonction de hachage du NIST, pour rendre cette attaque moins efficace, même si elle pense que le hachage serait toujours sécurisé sans ces modifications.

Exemples de hachages Skein

Valeurs de hachage d'une chaîne vide.

Skein-256-256("")
c8877087da56e072870daa843f176e9453115929094c3a40c463a196c29bf7ba
Skein-512-256("")
39ccc4554a8b31853b9de7a1fe638a24cce6b35a55f2431009e18780335d2621
Skein-512-512("")
bc5b4c50925519c290cc634277ae3d6257212395cba733bbad37a4af0fa06af41fca7903d06564fea7a2d3730dbdb80c1f85562dfcc070334ea4d1d9e72cba7a

Même un petit changement dans le message entraînera (avec une probabilité écrasante) un hachage essentiellement différent, en raison de l' effet d'avalanche . Par exemple, ajouter un point à la fin de la phrase:

Skein-512-256("The quick brown fox jumps over the lazy dog")
b3250457e05d3060b1a4bbc1428bc75a3f525ca389aeab96cfa34638d96e492a
Skein-512-256("The quick brown fox jumps over the lazy dog.")
41e829d7fca71c7d7154ed8fc8a069f274dd664ae0ed29d365d919f4e575eebb
Skein-512-512("The quick brown fox jumps over the lazy dog")
94c2ae036dba8783d0b3f7d6cc111ff810702f5c77707999be7e1c9486ff238a7044de734293147359b4ac7e1d09cd247c351d69826b78dcddd951f0ef912713
Skein-512-512("The quick brown fox jumps over the lazy dog.")
658223cb3d69b5e76e3588ca63feffba0dc2ead38a95d0650564f2a39da8e83fbb42c9d6ad9e03fbfde8a25a880357d457dbd6f74cbcb5e728979577dbce5436

Les références

Liens externes

Implémentations