Aller au contenu principal

6.1.2 Opération de déchiffrement PBES1

L'opération de déchiffrement pour PBES1 consiste en les étapes suivantes, qui déchiffrent un texte chiffré C sous un mot de passe P pour récupérer un message M:

  1. Obtenir le sel S de huit octets et le nombre d'itérations c.

  2. Appliquer la fonction de dérivation de clé PBKDF1 (Section 5.1) au mot de passe P, au sel S, et au nombre d'itérations c pour produire une clé dérivée DK de longueur 16 octets:

DK = PBKDF1 (P, S, c, 16)
  1. Séparer la clé dérivée DK en une clé de chiffrement K consistant des huit premiers octets de DK et un vecteur d'initialisation IV consistant des huit octets suivants:
K = DK<0..7>
IV = DK<8..15>
  1. Déchiffrer le texte chiffré C avec le chiffrement par blocs sous-jacent (DES ou RC2) en mode CBC sous la clé de chiffrement K avec le vecteur d'initialisation IV pour récupérer un message encodé EM. Si la longueur en octets du texte chiffré C n'est pas un multiple de huit, sortir "erreur de déchiffrement" et s'arrêter.

  2. Séparer le message encodé EM en un message M et une chaîne de remplissage PS:

EM = M || PS

où la chaîne de remplissage PS consiste en un certain nombre psLen d'octets ayant chacun la valeur psLen, où psLen est entre 1 et 8. S'il n'est pas possible de séparer le message encodé EM de cette manière, sortir "erreur de déchiffrement" et s'arrêter.

  1. Sortir le message récupéré M.