PBKDF2
PBKDF2 (англ. Password-Based Key Derivation Function) — стандарт формування ключа на основі пароля. Є частиною PKCS #5 v2.0 (RFC 2898). Замінив PBKDF1, який обмежував довжину породжуваного ключа 160 бітами.
PBKDF2 використовує псевдовипадкову функцію для отримання ключів. Довжина ключа, що генерується — не обмежується (хоча ефективна потужність простору ключів може бути обмежена особливостями застосовуваної псевдовипадковою функції). Використання PBKDF2 рекомендовано для нових програм і продуктів. В якості псевдовипадкової може бути обрана криптографічна хеш-функція, шифр, HMAC.
Загальний вигляд виклику PBKDF2:
Опції алгоритму:
- PRF — псевдовипадкова функція, з виходом довжини hLen.
- P — майстер-пароль.
- S — сіль (salt).
- c — кількість ітерацій, додатне ціле число.
- dkLen — бажана довжина ключа (не більше (2^32 — 1) * hLen).
- Вихідний параметр: DK — згенерований ключ довжини dkLen.
Хід обчислень:
1. l — кількість блоків довжини hLen в ключі (округлення вгору), r — кількість байт в останньому блоці:
2. Для кожного блоку застосувати функцію F з параметрами P — майстер пароль, S — сіль, c — кількість ітерацій, і номером блоку:
F визначена як операція xor () над першими c ітераціями функції PRF, застосованої до паролю P і об'єднання солі S і номера блоку, записаного як 4-байтове ціле з першим msb байтом.
3. Об'єднання отриманих блоків становить ключ DK. Від останнього блоку береться r байт.
Одним із завдань при створенні PBKDF2 було ускладнити перебір паролів. Завдяки множині зчеплених обчислень PRF швидкість генерації ключа є невисокою. Наприклад, для WPA-PSK з параметрами[1]:
були досягнуті швидкості перебору ключів 70 одиниць в секунду для Intel Core2 і близько 1 тисячі на ПЛІС Virtex-4 FX60[2]. Для порівняння, класичні функції хешування паролю LANMAN мають швидкість перебору близько сотень мільйонів варіантів в секунду[3].
Використовується як перша і остання стадія в адаптивній криптографічній функції формування ключа на основі пароля scrypt. Дана функція була спеціально розроблена для додатків, де обчислення PBKDF2 виявляється занадто швидким.
- Wi-Fi Protected Access (WPA і WPA2)
- Microsoft Windows Data Protection API (DPAPI)[4]
- Шифрування у форматі OpenDocument (OpenOffice.org)
- Схема шифрування AES у WinZip[5][6]
- LastPass для хешування паролів[7]
- 1Password для хешування паролів
- Apple iOS мобільна операційна система, для захисту користувача кодів і паролів доступу
- FileVault (macOS)[8]
- FreeOTFE (Windows і КПК)
- LUKS — Unified Linux Key Setup (Linux)
- TrueCrypt (Windows, Linux, macOS)
- VeraCrypt (Windows, Linux, macOS)
- DiskCryptor (Windows)
- Cryptographic disk (NetBSD)
- GEOM ELI модуль для ОС FreeBSD
- Шифрування softraid з OpenBSD
- EncFS (Linux) з версії v1.5.0
- ↑ WPA key calculation: From passphrase to hex. Архів оригіналу за 29 квітня 2015. Процитовано 3 квітня 2018.
- ↑ OpenCiphers. Архів оригіналу за 15 квітня 2018. Процитовано 3 квітня 2018.
- ↑ OpenCiphers. Архів оригіналу за 10 березня 2018. Процитовано 3 квітня 2018.
- ↑ Windows Data Protection [Архівовано 2007-04-16 у Wayback Machine.]
- ↑ WinZip® - AES Coding Tips for Developers. Архів оригіналу за 4 квітня 2018. Процитовано 3 квітня 2018.
- ↑ BRG Main SIte
- ↑ LastPass : The last password you'll have to remember: LastPass Security Notification. Архів оригіналу за 19 травня 2012. Процитовано 3 квітня 2018.
- ↑ nsa.org is registered with pairNIC.com (PDF). Архів оригіналу (PDF) за 15 березня 2007. Процитовано 18 квітня 2013.
{{cite web}}
: Вказано більш, ніж один|deadlink=
та|deadurl=
(довідка) [Архівовано 2007-03-15 у Wayback Machine.]