Zum Hauptinhalt springen

5.1. PBKDF1

5.1. PBKDF1

PBKDF1 wendet eine Hash-Funktion an, die MD2 [RFC1319], MD5 [RFC1321] oder SHA-1 [NIST180] sein MUSS, um Schlüssel abzuleiten. Die Länge des abgeleiteten Schlüssels ist durch die Länge der Ausgabe der Hash-Funktion begrenzt, die 16 Oktette für MD2 und MD5 und 20 Oktette für SHA-1 beträgt. PBKDF1 ist kompatibel mit dem Schlüsselableitungsprozess in PKCS #5 v1.5 [PKCS5_15].

PBKDF1 wird nur zur Kompatibilität mit bestehenden Anwendungen empfohlen, da die von ihr erzeugten Schlüssel für einige Anwendungen möglicherweise nicht groß genug sind.

PBKDF1 (P, S, c, dkLen)

Options (Optionen): Hash - underlying hash function (zugrunde liegende Hash-Funktion)

Input (Eingabe):

  • P - password (Passwort), eine Oktettzeichenkette
  • S - salt, eine Oktettzeichenkette
  • c - iteration count (Iterationszähler), eine positive ganze Zahl
  • dkLen - intended length in octets of derived key (beabsichtigte Länge in Oktetten des abgeleiteten Schlüssels), eine positive ganze Zahl, höchstens 16 für MD2 oder MD5 und 20 für SHA-1

Output (Ausgabe): DK - derived key (abgeleiteter Schlüssel), eine dkLen-Oktett-Zeichenkette

Steps (Schritte):

  1. Wenn dkLen > 16 für MD2 und MD5, oder dkLen > 20 für SHA-1, geben Sie "derived key too long" (abgeleiteter Schlüssel zu lang) aus und stoppen Sie.

  2. Wenden Sie die zugrunde liegende Hash-Funktion Hash für c Iterationen auf die Verkettung des Passworts P und des Salts S an, und extrahieren Sie dann die ersten dkLen Oktette, um einen abgeleiteten Schlüssel DK zu erzeugen:

T_1 = Hash (P || S) ,
T_2 = Hash (T_1) ,
...
T_c = Hash (T_{c-1}) ,
DK = T_c<0..dkLen-1>
  1. Geben Sie den abgeleiteten Schlüssel DK aus.