PBKDF2-HMAC-SHA1
Zum generieren einer gültigen pairwise master key für ein WPA2-Netzwerk einen router nutzt die PBKDF2-HMAC-SHA1-Algorithmus. Ich verstehe, dass die sha1-Funktion wird ausgeführt, 4096 mal zum ableiten der PMK, jedoch habe ich zwei Fragen über den Prozess.
Ausrede der pseudo-code.
1) Wie ist die Eingabe zu der ersten Instanz von den SHA1-Hash-Funktion formatiert?
SHA1("network_name"+"network_name_length"+"network_password")
Ist es formatiert, in dieser Reihenfolge, ist es den hex-Wert der Netzwerk-Namen, die Länge und Kennwort oder gerade ASCII?
Dann aus dem, was ich sammeln die 160-bit-digest erhielt zugeführt wird gerade in einer anderen Runde von hashing-ohne zusätzliche Salzen. Wie diese: SHA1("160bit digest aus der letzten Runde von hashing") Steigen und wiederholen.
2) Sobald dies der Fall ist 4096 mal 256 bits der Ausgang wird als pairwise master key. Was ich nicht verstehe ist, dass wenn SHA1 produziert 160bit-Ausgang, wie arbeitet der Algorithmus ankommen, die 256 Bits erforderlich für einen Schlüssel?
Danke für die Hilfe.
Du musst angemeldet sein, um einen Kommentar abzugeben.
yeah thats right, der Algorithmus zum generieren eines binären Schlüssels für ein WPA-Netzwerk ist:
key = PBKDF2(passphrase, ssid, 4096, 256)
PBKDF2 ist beschrieben in http://www.ietf.org/rfc/rfc2898.txt
Es nutzt die HMAC-Algorithmus zum erstellen eines digest " der Eingabe. HMAC kann jede hash-Funktion, hier die spec fordert SHA1-wie Sie bereits erwähnt. Der hash besteht, erfolgt ein temporärer Zustand innerhalb des HMAC-Algorithmus:
(H=die gewählte hash-Funktion, K ist die passphrase, text wäre ssid)
Diese HMAC-Prozess wird wiederholt, 4096 mal durch PBKDF2.
HMAC-Algorithmus: http://www.ietf.org/rfc/rfc2104
Gibt es ein source-Beispiel hier von der Herleitung von key:
https://www.codeblog.org/viewsrc/openssl-engine-0.9.6a/crypto/evp/p5_crpt2.c
Salz ist die SSID, pass ist das Passwort.