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
Pour plus de précisions on se réfèrera à la RFC 3174.

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

  1. Initialisation :
    • H1← h1
    • H2← h2
    • H3← h3
    • H4← h4
    • H5← h5
    • A← h1
    • B← h2
    • C← h3
    • D← h4
    • E← h5
  2. Pour i=0 à m−1 faire :
    1. X[j]← x16i+j, 0 ≤ j ≤ 15
    2. X[j]← ((X[j−3]⊕X[j−8]⊕X[j−14]⊕X[j−16])\curvearrowleft 1), 16 ≤ j ≤ 79
    3. 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
    4. 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
    5. 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
    6. 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
    7. H1← A+H1
    8. H2← B+H2
    9. H3← C+H3
    10. H4← D+H4
    11. H5← E+H5
  3. 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

Compléments

Parcours associé(s)

Syndication

Il vous est possible de suivre la publication des fiches PICSI via le fil RSS des fiches.