Quelle est la particularité de

12

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 232/ϕ , où ϕ est le nombre d'or.

Quelles propriétés possède 232/ϕ qui le rendent utile dans ce contexte?

MS Dousti
la source
1
Peut-être pertinent: en.wikipedia.org/wiki/Nothing_up_my_sleeve_number
Charles

Réponses:

11

AFAIK, ces valeurs "magiques" ont les deux propriétés suivantes:

  1. Ils sont en quelque sorte uniques et semblent aléatoires.
  2. Ils peuvent participer aux opérations algébriques à plusieurs reprises; c'est-à-dire que même après avoir appliqué plusieurs fois une opération spécifique (par exemple multiplication ou exponentiation), la valeur "magique" est toujours capable de générer de nouvelles valeurs.

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 de i. (En fait, ivarie 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:

Un multiple différent de delta est utilisé à chaque tour afin qu'aucun bit du multiple ne change fréquemment. Nous pensons que l'algorithme n'est pas très sensible à la valeur de delta et nous devons simplement éviter une mauvaise valeur. On notera que le delta s'avère étrange avec la troncature ou l'arrondi le plus proche, donc aucune précaution supplémentaire n'est nécessaire pour garantir que tous les chiffres de la somme changent.

É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:

Pour montrer que les concepteurs n'ont pas délibérément choisi une valeur diabolique de la constante, la constante est basée sur la racine carrée de 2.

Cette explication est la même que la remarque faite ci-dessous dans un commentaire de Gilles.

MS Dousti
la source
Semble raisonnable. Est-ce que 2 ^ 32 / pi ou 2 ^ 32 / sqrt (2) auraient tout aussi bien fonctionné?
@Tim: Je suppose que oui, mais il est essentiel de revérifier les nouveaux nombres magiques dans le contexte des opérations internes de TEA.
MS Dousti
5
De plus, une raison de choisir une constante mathématique comme 2 ^ 32 / phi, plutôt qu'une valeur générée aléatoirement avec des propriétés acceptables, est de donner une petite certitude que ce n'est pas une valeur choisie pour des propriétés non révélées supplémentaires - une valeur de porte dérobée .
Gilles 'SO- arrête d'être méchant'
2
@Gilles, en effet, ils sont même appelés "rien dans ma manche" pour cette raison, voir en.wikipedia.org/wiki/Nothing_up_my_sleeve_number
Henno Brandsma
12

φnφφ{nφ}{nα}α

Cπ=232/π=1367130551(355Cπ)mod232=41157Cφ=232/φ=2654435769n|(nCφ)mod232|216n=28657XnXn+k d'un générateur de nombres aléatoires congruentiel linéaire pour certains petite taille ; pour la plupart, cependant, c'est de la magie noire folklorique, basée plus sur l'intuition que «de petits multiples de ce nombre étant petit mod sera mauvais» que sur des résultats théoriques spécifiques.k232

Steven Stadnicki
la source
1
Sadeq: «mod 1» fait référence à la partie fractionnaire des multiples - dans ce cas, ceux-ci seraient [.62, .24, .85, .47, .09, .71, .33, .94, .56,. 18]. L'équidistribution dans la limite signifie que tout sous-intervalle [a, b] de [0, 1] contient la proportion attendue (ba) de ces valeurs; alors qu'il s'avère que les parties fractionnaires des multiples de tout nombre irrationnel sont uniformément réparties sur [0, 1], celles du nombre d'or approchent cette répartition uniforme plus rapidement que tout autre nombre; ils ne «s'agglutinent» pas sur l'intervalle unitaire.
Steven Stadnicki
8
π exemple, l'approximation étroite de par 355/113 signifie que sera beaucoup plus proche d'un entier qu'il ne devrait l'être et cela se présente comme un regroupement des parties fractionnaires de ses valeurs; sera exceptionnellement proche de . Le nombre d'or n'a cependant pas de si bonnes approximations; toutes ses approximations en sont «au maximum». ( en.wikipedia.org/wiki/… couvre cela)113π{(n+113)π}{nπ}
Steven Stadnicki
8
c'est une propriété très soignée du nombre d'or
Suresh Venkat
2
Merci pour la bonne description. C'était vraiment génial! Avez-vous des commentaires k[i], tels que définis dans MD5? (Voir ma réponse ci-dessus.)
MS Dousti
2
Malheureusement, je ne le fais pas; - la seule chose qui me vient à l'esprit est qu'elles peuvent être choisies pour une indépendance linéaire approximative, car les fonctions sont linéairement indépendantes sur - mais je ne connais aucune raison de croire que cet ensemble particulier de valeurs devrait conduire à des valeurs relativement grandes pour dans toute relation linéaire . x a i Σ a i k [ i ] = 0sin(nx)xaiΣaik[i]=0
Steven Stadnicki,