[Algo] Syntaxe pour leftrotate

Résolu/Fermé
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 30 août 2005 à 02:07
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 31 août 2005 à 04:03
Bonsoir,

J'ai un petit soucis avec un algorithme, celui de md5:
http://fr.wikipedia.org/wiki/MD5

En fait ce qui me gêne c'est la ligne:
b := ((a + f + k(i) + w(g)) leftrotate r(i)) + b

Je ne connais pas leftrotate. Mais après plusieurs recherches j'ai trouvé ça dans l'implémentation de md5 en C proposée par la rfc 1321:
/* ROTATE_LEFT rotates x left n bits.
 */
#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n))))


Alors du coup j'ai compris à quoi sert leftrotate.
Mais maintenant ce qui me pose problème c'est la syntaxe de l'algo sur wikipedia.
Comment dois je considérer cette ligne d'algo (la première que j'ai mise). Si je traduis avec la macro de la rfc, est ce que
((a + f + k(i) + w(g)) 
deviendrait l'argument x et du coup
r(i)) + b
deviendrait n?
Ca me semblerait logique mais j'aimerais être sûr.

Merci d'avance...

3 réponses

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
30 août 2005 à 20:55
Up :-)
0
crabs Messages postés 908 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008 506
30 août 2005 à 21:32
Salut,
Perso je pencherai pour
x = (a + f + k(i) + w(g))
n = r(i)
Après avoir appliqué le leftrotate on ajoute b au résultat.

A+, crabs
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
31 août 2005 à 04:03
Ah oui j'avais mal regardé les parenthèses.
Merci :-)
0