AccueilđŸ‡«đŸ‡·Chercher

PBKDF2

Le PBKDF2 (abréviation de Password-Based Key Derivation Function 2) est une fonction de dérivation de clé, appartenant à la famille des normes Public Key Cryptographic Standards, plus précisément PKCS #5 v2.0. Cette norme a également été publiée dans la RFC 2898. Elle succÚde au PBKDF1, qui pouvait produire des clés n'allant que jusqu'à 160 bits.

Password-Based Key Derivation Function 2
Description de l'image Pbkdf2 nist.png.
Résumé
Concepteur(s) Laboratoires RSA
PremiĂšre publication 2000
Dérivé de PBKDF1
Chiffrement(s) basé(s) sur cet algorithme aucun
Caractéristiques
Taille(s) du bloc Dépend de la fonction cryptographique associée
Longueur(s) de la clé Au choix de l'utilisateur
Structure inconnue
Nombre de tours Au choix de l'utilisateur

Meilleure cryptanalyse

aucune cryptanalyse connue

Cette norme est aujourd'hui utilisée pour le hachage de mot de passe (associé à des fonctions comme SHA-256) ou la génération de clé de chiffrement de données.

Concept

Le PBKDF2 applique une fonction choisie par l'utilisateur (fonction de hachage, de chiffrement ou un HMAC) Ă  un mot de passe ou une phrase secrĂšte avec un sel et rĂ©pĂšte cette opĂ©ration plusieurs fois afin de gĂ©nĂ©rer une clĂ©, qui peut ĂȘtre ensuite utilisĂ©e pour chiffrer un quelconque contenu.

Cette gĂ©nĂ©ration rajoute du temps de calcul qui complique le cassage du mot de passe, notamment par force brute. À la publication de la norme, en 2000, le nombre d'itĂ©rations recommandĂ©es Ă©tait de 1 000. Ce paramĂštre est prĂ©vu pour ĂȘtre augmentĂ© au fur et Ă  mesure que les processeurs s'amĂ©liorent et deviennent plus performants. Le sel ajoutĂ© permet d'Ă©viter l'utilisation de rainbow tables et donc limite les attaques sur plusieurs mots de passe en simultanĂ©[1].

Fonction de dérivation

La fonction a cinq paramÚtres en entrée :

DK = PBKDF2(PRF, Password, Salt, c, dkLen)
  • PRF est la fonction pseudo-alĂ©atoire Ă  utiliser Ă  chaque itĂ©ration
  • Password est la chaĂźne Ă  partir de laquelle il faut dĂ©river la clĂ©
  • Salt est le sel pour la fonction cryptographique
  • c est le nombre d'itĂ©rations Ă  effectuer
  • dkLen est la taille de clĂ© dĂ©sirĂ©e

Le résultat DK est notre clé dérivée.

On prend tout d'abord la taille hLen​, qui correspond Ă  la taille, en bits, de sortie de la fonction PRF​. Puis chaque bloc Ti​ de hLen​ bits de la clĂ© DK​ est calculĂ© :

DK = T1 || T2 || ... || Tdklen/hlen
Ti = F(Password, Salt, c, i)

La fonction F​ est la combinaison de c​ itĂ©rations de la fonction PRF​ avec des XOR. La premiĂšre itĂ©ration utilise le mot de passe et le sel Salt​ concatĂ©nĂ© avec le nombre d'itĂ©rations i​. Ensuite, la fonction PRF​ prend le mot de passe original comme clĂ© et le rĂ©sultat de l'itĂ©ration prĂ©cĂ©dente en sel. On obtient le schĂ©ma suivant :

F(Password, Salt, c, i) = U1 ^ U2 ^ ... ^ Uc
U1 = PRF(Password, Salt || INT_32_BE(i))
U2 = PRF(Password, U1)
...
Uc = PRF(Password, Uc-1)

Par exemple, le WPA2 utilise :

DK = PBKDF2(HMAC−SHA1, passphrase, ssid, 4096, 256)

Utilisations

Plusieurs applications utilisent cette fonction pour dériver leur clé de chiffrement de bout-en-bout tout en garantissant à l'utilisateur une synchronisation des données entre appareils, tel que Bitwarden[2] ou encore Standard Notes[3].

Notes et références

(en) Cet article est partiellement ou en totalitĂ© issu de l’article de WikipĂ©dia en anglais intitulĂ© « PBKDF2 » (voir la liste des auteurs).
  1. « PBKDF2 et génération des clés de chiffrement de disque » (consulté le )
  2. « What encryption is being used? | Bitwarden Help & Support », sur help.bitwarden.com (consulté le )
  3. « How does Standard Notes secure my notes? », sur standardnotes.org (consulté le )

Annexes

Articles connexes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.