Cryptography Reference
In-Depth Information
PBKDF2 bezeichnet werden (die sperrige Abkürzung steht für Password Based
Key Derivation Function ). PBKDF1 ist die ältere Methode. Sie stammt aus der
ersten PKCS#5-Version und ist in der aktuellen Version 2.0 des Standards nur
noch aus Kompatibilitätsgründen enthalten. PBKDF2 ist das in PKCS#5v2.0
empfohlene Verfahren. Beide Varianten lassen einige Details offen und sind damit
verglichen mit anderen Standards recht unpräzise. Die Entwickler des Standards
gingen davon aus, dass PBKDF1 und PBKDF2 weniger zur Kommunikation zwi-
schen Alice und Bob, sondern eher zur Dateiverschlüsselung durch eine einzelne
Person verwendet wird - eine bis aufs Bit genaue Standardisierung ist in diesem
Fall nicht ganz so wichtig.
PBKDF1 ist recht simpel aufgebaut. Das Verfahren sieht vor, eine kryptogra-
fische Hashfunktion auf ein Passwort anzuwenden, um so einen Schlüssel zu
generieren. Um Wörterbuch-Angriffe zu erschweren, wird die Hashfunktion
mehrfach durchlaufen (der Standard empfiehlt mindestens 1.000 Durchläufe),
und es kommt ein Salt zum Einsatz. Die Länge des Salt-Werts ist nicht vorgege-
ben. Als Hashfunktion gibt der Standard wahlweise MD2, MD5 oder SHA-1 vor.
Die maximale Länge des abgeleiteten Schlüssels entspricht der Hashwert-Länge,
also 128 Bit (bei MD2 und MD5) oder 160 Bit (bei SHA-1).
PBKDF2 ist etwas komplexer, erlaubt dafür jedoch die Generierung beliebig
langer Schlüssel. Das Verfahren benötigt eine Funktion, die sich als Pseudozu-
fallsgenerator nutzen lässt. Der PKCS#5-Standard nennt SHA-1-HMAC als ein-
zigen Vertreter. PBKDF2 lässt sich am besten an einem konkreten Beispiel erklä-
ren. Wir nehmen an, Alice benötige einen 512-Bit-Schlüssel, der sich aus einem
Passwort (etwa 10 Byte) ableitet. Da der benötigte Schlüssel länger ist als ein
SHA-1-HMAC-Hashwert (160 Bit), wäre PBKDF1 an dieser Stelle ungeeignet.
Außerdem verwendet Alice ein Salt zur Erschwerung von Wörterbuch-Angriffen.
Dies kann etwa ein 8-Byte-Wert sein, der nicht geheim ist. Wir gehen zudem
davon aus, dass Alice 1.000 SHA-1-HMAC-Durchläufe vorsieht, was ebenfalls
Wörterbuch-Angriffe verlangsamen soll.
PBKDF2 sieht vor, dass Alice ihren Schlüssel nötigenfalls aus mehreren Hash-
werten zusammensetzt. Zu einem 512-Bit-Schlüssel kommt Alice, indem sie vier
Hashwerte verwendet (insgesamt 640 Bit) und die überschüssigen 128 Bit am
Ende ignoriert. Die ersten 160 Bit des Schlüssels generiert Alice mit folgenden
Formeln (»||« steht für die Konkatenation):
U 1 = HMAC Passwort ( Salt|| 1)
U 2 = HMAC Passwort ( U 1 )
U 3 = HMAC Passwort ( U 2 )
...
U 1000 = HMAC Passwort ( U 999 )
Die ersten 160 Bit des Schlüssels sind: U 1
U 1000 . Die drei wei-
teren Teile des Schlüssels berechnet Alice auf dieselbe Weise, nur dass beim
Berechnen von U 1 nicht der Wert 1, sondern entsprechend 2, 3 oder 4 eingeht.
U 2
U 3
...
Search WWH ::




Custom Search