NEW
A password-based key derivation function applying a PRF with salt and many iterations to produce cryptographic keys.
DESCRIPTION
PBKDF2 strengthens passwords by repeatedly applying a pseudorandom function (often HMAC) with a unique salt to derive keys. Its tunable iteration count increases computational cost for attackers. Defined in PKCS #5 and referenced by NIST SP 800-132, PBKDF2 is widely supported in libraries and platforms. While robust, modern memory-hard options like Argon2 may offer stronger resistance to specialized hardware. Proper parameter selection is crucial for security and performance.
ALTERNATIVE DEFINITIONS
IETF RFC 8018
PBKDF2 applies a pseudorandom function, such as HMAC, to the password along with a salt value and repeats the process many times to produce a derived key.
Formal specification highlighting PRF, salt, and iterations.
NIST SP 800-132
This Recommendation specifies the PBKDF that employs a pseudorandom function (PRF) and a salt to derive cryptographic keys from passwords.
NIST guidance that endorses PBKDF usage and parameters.
OWASP Cheat Sheet Series
PBKDF2 uses a configurable number of iterations and a salt.
Emphasizes tunable cost and salting for practical deployments.
RELATED TERMS
Key Stretching Salt HMAC Password Hashing RFC 8018 NIST SP 800-132 Iteration Count
COMPETING TERMS
KNOWLEDGE AREAS
Data Security Software Engineering Data Privacy & Compliance
TARGET AUDIENCE
Security Architect Cybersecurity Engineer Software Developer DevOps Engineer IT Auditor IT Manager
EXTERNAL SOURCES
- Wikipedia - PBKDF2
- IETF - PKCS #5 v2.1 defining PBKDF2
- NIST - PBKDF guidance and parameters
- OpenSSL - Library API for PBKDF2 HMAC
TOP QUESTIONS
What is PBKDF2 used for?
Deriving cryptographic keys from passwords by applying a PRF with a salt and many iterations to resist brute-force attacks.
Category: Definition
How do PBKDF2 parameters affect security?
Higher iterations increase attacker cost; strong salts prevent precomputation attacks. Choose parameters based on hardware and latency budgets.
Category: Requirements
PBKDF2 vs bcrypt vs Argon2: which to choose?
Argon2 offers memory-hardness; bcrypt and PBKDF2 are widely supported. Consider threat model, library support, and performance.
Category: Comparison
What are common mistakes with PBKDF2?
Using low iteration counts, missing per-user salts, and inconsistent parameter management across services.
Category: Mistakes
Is PBKDF2 still relevant?
Yes, widely supported and standardized, though memory-hard functions like Argon2 are preferred against GPU/ASIC attackers.
Category: Relevancy
How to store PBKDF2 parameters?
Record salt, iteration count, PRF choice, and derived key in a standardized format to enable verification.
Category: Management
What risks exist with weak PBKDF2 settings?
Faster offline cracking, increased breach impact, and noncompliance with security standards.
Category: Risks
Can PBKDF2 be used for encryption keys?
Yes, derive keys from passwords for encryption, but prefer high-entropy secrets when possible.
Category: Application
Where to learn PBKDF2?
Read RFC 8018, NIST SP 800-132, and cryptographic library documentation like OpenSSL.
Category: Learning