Zum Hauptinhalt springen

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:

  1. Wählen Sie ein Acht-Oktett-Salt S und einen Iterationszähler c, wie in Abschnitt 4 beschrieben.

  2. 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)
  1. 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>
  1. 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.)

  1. 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.

  2. 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).