Dans l' algorithme de cryptage minuscule :
Différents multiples d'une constante magique sont utilisés pour empêcher de simples attaques basées sur la symétrie des rounds. La constante magique, 2654435769 ou 9E3779B9 16 est choisie pour être , où ϕ est le nombre d'or.
Quelles propriétés possède qui le rendent utile dans ce contexte?
cr.crypto-security
MS Dousti
la source
la source
Réponses:
AFAIK, ces valeurs "magiques" ont les deux propriétés suivantes:
Vous pouvez trouver un cas similaire dans le MD5 . Considérez la ligne suivante:
k[i] := floor(abs(sin(i + 1)) × (2 pow 32))
Ici,
sin(i + 1)
est destiné à générer des valeurs magiques; qui sont uniques, d'aspect aléatoire, et peuvent fonctionner pour beaucoup dei
. (En fait,i
varie de 0 à 63).Edit: En lisant l' article original sur TEA , on comprend que la réponse donnée par "Steven Stadnicki" est correcte. Notez que la constante magique est le nom delta:
Étant donné que seulement 32 multiples de delta sont utilisés (un par tour), il n'est pas étrange que l'algorithme ne soit pas très sensible à un delta spécifique. (Voir la réponse de Steven Stadnicki pour plus d'informations.)
Edit 2: Incidemment, MD4 utilise des racines carrées de 2 (0x5a827999) et 3 (0x6ed9eba1) comme constantes "magiques" dans ses opérations. La section 5.4.4 du livre Network Security: Private Communication in a Public World l' explique bien:
Cette explication est la même que la remarque faite ci-dessous dans un commentaire de Gilles.
la source
la source
k[i]
, tels que définis dans MD5? (Voir ma réponse ci-dessus.)