En général, il est conseillé de ne pas demander plus que la longueur de hachage que chaque bloc est exécuté à travers toutes les itérations de nouveau:
Selon Wikipedia (qui a un format un peu plus lisible que PKCS # 5):
DK = T1 || T2 || ... || Tdklen/hlen
Ti = F(Password, Salt, c, i)
ici c
est le nombre d'itérations par la voie.
Le problème est que généralement de grandes quantités de matériau de clé ne sont utilisées que lorsque le résultat est divisé en plusieurs composants. Et si un attaquant peut vérifier un bon mot de passe en utilisant seulement les 128 premiers bits, l'attaquant doit faire moins de travail que l'utilisateur légitime de l'algorithme. Une façon de résoudre cela est de diviser la sortie de PBKDF2 en utilisant un KBKDF tel que HKDF en utilisant des étiquettes différentes (information qui est également hachée). De cette façon, vous pouvez générer une quantité presque infinie de matériel clé sans parcourir toutes les itérations pour chaque 512 bits.
Notez que 512 bits est suffisant pour deux très clés sécurisées AES-256 bits. C'est donc une très bonne raison d'utiliser SHA-512 pour PBKDF2. Notez que sur les machines 64 bits, SHA-512 peut être plus rapide que SHA-256 tout en fournissant plus de matériel de sortie et de sécurité.
Demandez-vous sur les rouages internes de l'algorithme PBKDF2 et comment fonctionne l'étirement? –
https://tools.ietf.org/html/rfc2898#section-5.2 mais tout algorithme (unique) symétrique qui utilise plus de 256 bits de matériau de clé est fou –
@ dave_thompson_085 Il se peut qu'une sortie plus longue soit souhaitée à la fois une clé et IV en un coup – zaph