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:
-
Obtenir le sel S de huit octets et le nombre d'itérations c.
-
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)
- 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>
-
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.
-
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.
- Sortir le message récupéré M.