PGP Tool

Apprendre · 7 min de lecture

Argon2id vs PBKDF2 : quelle fonction de dérivation de clé utiliser ?

Les deux transforment un mot de passe en clé de chiffrement, mais ils coûtent aux attaquants des montants très différents. Argon2id est la valeur par défaut moderne ; PBKDF2 est le repli compatible.

Lorsque vous chiffrez quelque chose avec une passphrase, la passphrase elle-même est trop courte et trop prévisible pour être utilisée directement comme clé AES. Une fonction de dérivation de clé (KDF) prend la passphrase et l'étire — en exécutant des milliers ou des millions de petites opérations pour la transformer en une clé de 256 bits, tout en rendant la force brute coûteuse pour un attaquant.

PBKDF2 — l'ancien fiable

PBKDF2 (Password-Based Key Derivation Function 2) a été standardisé en 2000 et est encore partout — TLS, FileVault, OpenPGP, le chiffrement du disque de votre téléphone. Il itère HMAC-SHA-256 un nombre configurable de fois. Plus d'itérations signifie une dérivation plus lente, ce qui signifie plus de coût pour un attaquant testant chaque supposition.

PBKDF2 a une grande faiblesse : il est bon marché sur du matériel spécialisé. Un GPU ou un ASIC peut exécuter des milliers d'itérations PBKDF2 en parallèle pour le coût d'en exécuter une sur un CPU. Donc un attaquant avec une petite ferme de GPU peut broyer des suppositions des ordres de grandeur plus vite que l'utilisateur légitime peut en vérifier une seule.

Argon2id — la valeur par défaut moderne

Argon2 a remporté le Password Hashing Competition 2015 avec un choix de conception délibéré : être gourmand en mémoire. Chaque itération nécessite un grand bloc de RAM, et les attaquants parallèles ne peuvent pas partager la mémoire entre les suppositions. Donc un GPU avec 4 Go de mémoire peut exécuter 4 attaques simultanément au lieu de 4000 — le ratio de coût se déplace à nouveau vers le défenseur.

Argon2id est la variante recommandée — elle combine Argon2i (indépendant des données, résistant aux attaques par canal auxiliaire) et Argon2d (dépendant des données, plus rapide) pour le meilleur des deux mondes. C'est la valeur par défaut dans libsodium, Bitwarden, 1Password et le standard OpenPGP depuis 2024.

Quand utiliser lequel

  • Utilisez Argon2id pour tout nouveau chiffrement. Le coût de la bibliothèque est faible (~250 Ko WASM) et le gain de sécurité est réel.
  • Utilisez PBKDF2 lorsque vous avez besoin d'une compatibilité maximale — anciens clients PGP, outils d'archivage, appareils embarqués.
  • Cette application utilise Argon2id pour les nouveaux chiffrements symétriques et revient à PBKDF2 lors du déchiffrement de textes chiffrés hérités (un préfixe magique dans l'enveloppe identifie lequel a été utilisé).

Chiffres pratiques

Sur un ordinateur portable moderne, Argon2id avec les paramètres par défaut (m=65536 Kio, t=3, p=1) prend environ 200 ms. Un GPU haut de gamme exécutant PBKDF2-SHA256 à 200 000 itérations obtient environ 50 millions de suppositions par seconde. Le même GPU exécutant Argon2id avec 64 Mo de coût mémoire obtient environ 100 suppositions par seconde. C'est un avantage de six ordres de grandeur pour le défenseur.