L'algorithme SHA-1.
Cette algorithme est lui aussi un algorithme dévié de la fonction MD4. Il a donc beaucoup de similitudes avec l'algorithme MD5 que nous avons étudié. Nous ne reprendrons donc que les points qui diffèrent et renverrons à MD5 pour le reste. Bien entendu, SHA-1 appartient aussi à la famille MDC.
1 Les constantes de SHA-1.
Les quatres contantes h1, h2, h3 et h4 sont réutilisées et on ajoute une cinquième h5 égales à 0xc3d2e1f0. A chacune des 4 phases de SHA-1 (qui sont les mêmes que celles de MD5), on associe les constantes :- y1=0x5a827999
- y2=0x6ed9eba1
- y3=0x8f1bbcdc
- y4=0xca62c1d6
2 Formatages des données en entrée.
Pareil que dans MD5 sauf que les deux derniers mots (de 32 bits) ne sont pas inversés. La taille du vecteur X passe de 16 à 80 mots.3 Les étapes de l'algorithme
- Initialisation :
- H1← h1
- H2← h2
- H3← h3
- H4← h4
- H5← h5
- A← h1
- B← h2
- C← h3
- D← h4
- E← h5
- Pour i=0 à m−1 faire :
- X[j]← x16i+j, 0 ≤ j ≤ 15
- X[j]← ((X[j−3]⊕X[j−8]⊕X[j−14]⊕X[j−16])\curvearrowleft 1), 16 ≤ j ≤ 79
- Première phase : Pour j=0…19
- t← ((A\curvearrowleft 5)+f(B,C,D)+E+X[j]+y1)
- E← D
- D← C
- C← (B\curvearrowleft 30)
- B← A
- A← t
- Deuxième phase : Pour j=20…39
- t← ((A\curvearrowleft 5)+h(B,C,D)+E+X[j]+y2)
- E← D
- D← C
- C← (B\curvearrowleft 30)
- B← A
- A← t
- Troisième phase : Pour j=32…47
- t← ((A\curvearrowleft 5)+g(B,C,D)+E+X[j]+y3)
- E← D
- D← C
- C← (B\curvearrowleft 30)
- B← A
- A← t
- Quatrième phase : Pour j=48…63
- t← ((A\curvearrowleft 5)+h(B,C,D)+E+X[j]+y4)
- E← D
- D← C
- C← (B\curvearrowleft 30)
- B← A
- A← t
- H1← A+H1
- H2← B+H2
- H3← C+H3
- H4← D+H4
- H5← E+H5
- Concaténation finale (5×32 = 160 bits): SHA−1(x)=H1||H2||H2||H3||H4||H5
Informations sur la fiche
- Titre :
- L'algorithme SHA-1.
- Profil(s) :
- Ingénieur informatique, Enseignant-Chercheur, Etudiant
- Thème :
- Cryptographie
- Finalité :
- Théorique
- Difficulté :
- niveau 2
- Mise à jour :
- 18/01/2006
