[Algo] Syntaxe pour leftrotate

Résolu
kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   -  
kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   -
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 8732 Date d'inscription   Statut Modérateur Dernière intervention   1 526
 
Up :-)
0
crabs Messages postés 908 Date d'inscription   Statut Membre Dernière intervention   507
 
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 8732 Date d'inscription   Statut Modérateur Dernière intervention   1 526
 
Ah oui j'avais mal regardé les parenthèses.
Merci :-)
0