PBKDF2
From Wikipedia, the free encyclopedia
PBKDF2 (Password-Based Key Derivation Function) is a key derivation function that is part of RSA Laboratories' Public-Key Cryptography Standards (PKCS) series, specifically PKCS #5 v2.0, also published as Internet Engineering Task Force's RFC 2898. It replaces an earlier standard, PBKDF1, which could only produce derived keys up to 160 bits long.
PBKDF2 applies a pseudorandom function, such as a cryptographic hash, cipher, or HMAC to the input password or passphrase along with a salt value and repeats the process many times (1000 is a recommended minimum) to produce a derived key, which can then be used as a cryptographic key in subsequent operations. The added computational work makes password cracking much more difficult, and is known as key strengthening. Having a salt added to the password reduces the ability to use a preset dictionary to attack a password. The iterations increase the work that must be done on the attacker's side to build a brute force attack. If the salt is changed, the entire attack dictionary has to be rebuilt.
[edit] Systems that use PBKDF2
- Wi-Fi Protected Access (WPA and WPA2) used to secure Wi-Fi wireless networks
- Microsoft Windows Data Protection API (DPAPI) [1]
- OpenDocument encryption used in OpenOffice.org
[edit] Disk encryption software
- FileVault (Mac OS X) from Apple Computer [2]
- FreeOTFE (Windows and Pocket PC PDAs); also supports mounting Linux (e.g. LUKS) volumes under Windows
- LUKS (Linux Unified Key Setup) (Linux)
- TrueCrypt (Windows and Linux)
- Cryptographic disk (NetBSD) [3]
- GEOM ELI module for FreeBSD
[edit] External links
- PBKDF2 specification - RSA Laboratories PKCS #5 v2.0
- RSA PKCS #5- Multiple Formats, and test vectors.
- RFC 2898
- JavaScript implementation of PBKDF2
- C# implementation of PBKDF2