2009-11-13 8 views
3

J'étudie l'algorithme MD5. J'ai découvert qu'il y a quatre variables d'état (je ne suis pas sûr de ce que cela signifie). Ces variables sont 0x67452301, 0xEFCDAB89, 0x98BADCFE et 0x10325476. J'ai converti des variables en décimales et est venu avec 1732584193, 4023233417, 2562383102, et 271733878 resepectivement.question sur les variables d'état MD5

ma question est, pourquoi ces numéros? Sont-ils des numéros spéciaux?

+0

Ils ne vous regardent pas la variable! – Grumdrig

+0

@Grumdrig // Oh .... ouais ... ils ne ressemblent pas à des variables. Comment devrais-je les appeler? constantes? J'ai utilisé des 'variables' parce que ... wiki et d'autres documents disent qu'ils sont des variables. – Moon

+0

Je ferai remarquer qu'il s'agit de deux paires de renversements de sémaphores, et qu'une paire est constituée des 9 bits faibles, et la d'autres du haut 8, chaque sorte de presque dans l'ordre trié. – Grumdrig

Répondre

6

Voir RFC 1321, section 3.3:

3,3 Etape 3. Initialiser MD tampon

Un tampon de quatre mots (A, B, C, D) est utilisé pour calculer le condensé de message. Chaque A, B, C, D est ici un registre de 32 bits. Ces registres sont initialisés aux valeurs suivantes en hexadécimal, les octets de poids faible premier):

 word A: 01 23 45 67 
    word B: 89 ab cd ef 
    word C: fe dc ba 98 
    word D: 76 54 32 10 

Les chiffres qu'ils cueillis sont juste ascendant et descendant simples chiffres hexadécimaux, dans l'ordre (qui semble à être un ensemble délicieusement arbitraire de valeurs initiales).

Depuis ils écrit le faible ordre des octets d'abord, lorsque vous écrivez avec les octets significatifs sur le droit, vous obtenez 0x67452301, etc.