6.1.1. PBES1 Encryption Operation (PBES1 Verschlüsselungsoperation)
6.1.1. PBES1 Encryption Operation (PBES1 Verschlüsselungsoperation)
Die Verschlüsselungsoperation für PBES1 besteht aus den folgenden Schritten, die eine Nachricht M unter einem Passwort P verschlüsseln, um einen Chiffretext C zu erzeugen:
-
Wählen Sie ein Acht-Oktett-Salt S und einen Iterationszähler c, wie in Abschnitt 4 beschrieben.
-
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>
- Verketten Sie M und eine Auffüllzeichenkette PS, um eine kodierte Nachricht EM zu bilden:
EM = M || PS
wobei die Auffüllzeichenkette PS aus 8-(||M|| mod 8) Oktetten besteht, jeweils mit dem Wert 8-(||M|| mod 8). Die Auffüllzeichenkette PS erfüllt eine der folgenden Aussagen:
PS = 01, wenn ||M|| mod 8 = 7 ;
PS = 02 02, wenn ||M|| mod 8 = 6 ;
...
PS = 08 08 08 08 08 08 08 08, wenn ||M|| mod 8 = 0.
Die Länge in Oktetten der kodierten Nachricht ist ein Vielfaches von acht, und es ist möglich, die Nachricht M eindeutig aus der kodierten Nachricht wiederherzustellen. (Diese Auffüllregel ist aus RFC 1423 [RFC1423] übernommen.)
-
Verschlüsseln Sie die kodierte Nachricht EM mit der zugrunde liegenden Blockchiffre (DES oder RC2) im CBC-Modus unter dem Verschlüsselungsschlüssel K mit Initialisierungsvektor IV, um den Chiffretext C zu erzeugen. Für DES MUSS der Schlüssel K als 64-Bit-Kodierung eines 56-Bit-DES-Schlüssels betrachtet werden, wobei Paritätsbits ignoriert werden (siehe [NIST46]). Für RC2 MÜSSEN die "effective key bits" (effektiven Schlüsselbits) 64 Bits betragen.
-
Geben Sie den Chiffretext C aus.
Das Salt S und der Iterationszähler c können der Partei, die die Entschlüsselung durchführt, in einem AlgorithmIdentifier-Wert übermittelt werden (siehe Anhang A.3).