PBKDF2-HMAC-SHA1
Pour générer un valide pairwise master key pour un WPA2 réseau d'un routeur utilise le PBKDF2-HMAC-SHA1 de l'algorithme. Je comprends que le sha1 fonction est réalisée 4096 pour dériver la PMK, cependant j'ai deux questions sur le processus.
Excuse le pseudo-code.
1) Comment est l'entrée de la première instance de la fonction SHA1 formaté?
SHA1("network_name"+"network_name_length"+"network_password")
Est-il formaté dans cet ordre, c'est la valeur hexadécimale du nom de réseau, la longueur et le mot de passe ou de droit de l'ASCII?
Alors de ce que je comprends de 160 bits digérer reçu est alimenté directement dans une autre série de hachage sans saler. Comme ceci: SHA1("160bit digest de la dernière ronde de hachage") sur la Montée et à la répétition.
2) une Fois que cela se produit 4096 fois 256 bits de la sortie est utilisée comme pairwise master key. Ce que je ne comprends pas, c'est que si SHA1 produit 160bit de sortie, comment fonctionne l'algorithme d'arriver à la 256bits requis pour une clé?
Merci pour l'aide.
OriginalL'auteur Jason | 2010-03-17
Vous devez vous connecter pour publier un commentaire.
ouais c'est vrai, l'algorithme pour générer une clé binaire pour un réseau WPA est:
key = PBKDF2(mot de passe, ssid, 4096, 256)
PBKDF2 est décrit dans http://www.ietf.org/rfc/rfc2898.txt
Il utilise l'algorithme HMAC pour créer un digest de l'entrée. HMAC pouvez utiliser n'importe quelle fonction de hachage, voici les spécifications des appels pour SHA1 comme vous l'avez mentionné. Le hachage est fait sur un état intermédiaire au sein de l'algorithme HMAC:
(H=le choisis en fonction de hachage, K est la phrase, le texte serait ssid)
Ce HMAC processus est répété 4096 fois par PBKDF2.
Algorithme HMAC: http://www.ietf.org/rfc/rfc2104
Il y a une source de l'exemple ici de dériver une clé:
https://www.codeblog.org/viewsrc/openssl-engine-0.9.6a/crypto/evp/p5_crpt2.c
le sel est le SSID, la passe est le mot de passe.
OriginalL'auteur user262976