6.1.2. PBES1 Decryption Operation (PBES1 Entschlüsselungsoperation)
6.1.2. PBES1 Decryption Operation (PBES1 Entschlüsselungsoperation)
Die Entschlüsselungsoperation für PBES1 besteht aus den folgenden Schritten, die einen Chiffretext C unter einem Passwort P entschlüsseln, um eine Nachricht M wiederherzustellen:
-
Erhalten Sie das Acht-Oktett-Salt S und den Iterationszähler c.
-
Wenden Sie die PBKDF1-Schlüsselableitungsfunktion (Abschnitt 5.1) auf das Passwort P, das Salt S und den Iterationszähler c an, um einen abgeleiteten Schlüssel DK der Länge 16 Oktette zu erzeugen:
DK = PBKDF1 (P, S, c, 16)
- Trennen Sie den abgeleiteten Schlüssel DK in einen Verschlüsselungsschlüssel K, der aus den ersten acht Oktetten von DK besteht, und einen Initialisierungsvektor IV, der aus den nächsten acht Oktetten besteht:
K = DK<0..7>
IV = DK<8..15>
-
Entschlüsseln Sie den Chiffretext C mit der zugrunde liegenden Blockchiffre (DES oder RC2) im CBC-Modus unter dem Verschlüsselungsschlüssel K mit Initialisierungsvektor IV, um eine kodierte Nachricht EM wiederherzustellen. Wenn die Länge in Oktetten des Chiffretexts C kein Vielfaches von acht ist, geben Sie "decryption error" (Entschlüsselungsfehler) aus und stoppen Sie.
-
Trennen Sie die kodierte Nachricht EM in eine Nachricht M und eine Auffüllzeichenkette PS:
EM = M || PS
wobei die Auffüllzeichenkette PS aus einer gewissen Anzahl psLen Oktetten besteht, jeweils mit dem Wert psLen, wobei psLen zwischen 1 und 8 liegt. Wenn es nicht möglich ist, die kodierte Nachricht EM auf diese Weise zu trennen, geben Sie "decryption error" (Entschlüsselungsfehler) aus und stoppen Sie.
- Geben Sie die wiederhergestellte Nachricht M aus.