Les fonctions de hachage peuvent être considérées comme la principale force de travail de la cryptographie moderne. Créés à l'origine pour améliorer l'efficacité des signatures numériques, ils sont désormais utilisés dans pratiquement toutes les parties de l'infrastructure où les informations sont stockées et échangées. Ils peuvent être trouvés dans des protocoles cryptographiques, en train de travailler avec des clés de cryptage, des connexions Web sécurisées et même de rechercher des logiciels malveillants. Sans les fonctions de hachage, la plupart des choses autour de nous ne fonctionneraient tout simplement pas.
Les fonctions de hachage les plus courantes sont SHA-0, SHA-1 et SHA-2, qui incluent SHA-256 et SHA-512. Mais à la fin de la première décennie du XXIe siècle, des méthodes d'ingénierie de collision ont été présentées pour chacune d'entre elles, qui ont montré la présence de vulnérabilités dans les algorithmes et remis en cause la sécurité d'une signature numérique électronique basée sur ces fonctions de hachage. À cet égard, l'Institut national américain des normes et de la technologie (NIST) a annoncé en 2007 un concours pour une nouvelle norme cryptographique SHA-3.
introduction
Armée d'une liste d'exigences incluant la résistance aux attaques connues, la minimisation de l'utilisation de la mémoire et l'optimisation des processeurs 64 bits, une équipe de scientifiques dirigée par Bruce Schneier, auteur des chiffrements par blocs Twofish et Blowfish, a soumis sa famille de fonctions de hachage variable en 2008 profondeur de bits Skein, qui signifie littéralement "écheveau de fil". Malheureusement pour les auteurs, en 2012, l'algorithme Skein a perdu face au Keccak plus rapide et moins vulnérable lors de la finale SHA-3.
Il y a trois parties Ă Skein:
chiffrement par bloc symétrique configurable à trois poissons
bloc d'itérations unique (UBI)
système d'argument optionnel
Allons dans l'ordre.
Trois poissons
Threefish — , Skein. , , , Blowfish Twofish. Threefish - (sp-), , MIX, , XOR 2 64 . , 4 . tweak-.
Threefish TF(K, T, P),
K —
T — tweak-
P -
. Threefish 256, 512 1024 . , . : 72 80 256/512- 1024- . Tweak- 128 .
MIX (k1, k2) (g1, g2) , :
g1 = (k1 + k2) mod 264
g2 = (k2 ≪ R) ⊕ g1 , R — ,
UBI
Skein Threefish Unique Block Iteration. UBI . , , . F(S, A, T):
S — Nb
A —
T —
A, , n Nb
F(S, A, T) :
H0=S
Hi+1 = TF(Hi ; T + min(NA; (i+1) Nb) + ai 2126 + bi (B2119+ 2127) ; Ai)Ai
a0=bk-1= 1, ai=bi=0, A 8 B=0, B=1
, . Skein , -.
: , , , . :
Configuration —
Output —
:
Public Key - , ,
Message -
Nonce -
Key - Skein MAC(message authentication code) KDF(key derivation function)
Personalization - ,
Skein
, . Skein, -, . UBI-. 3, UBI: , , . S = 0. Skein .
264 , , .
À la fin, je voudrais mentionner les domaines d'application de la fonction de hachage Skein. En utilisant le système d'arguments supplémentaires, il est possible de configurer l'algorithme de calcul des codes d'authentification de message MAC ou HMAC (MAC basé sur le hachage). Skein peut également servir de générateur de nombres aléatoires ou de mécanisme de calcul d'une signature numérique.