Открыть сервис

PBKDF2

PBKDF2 (Password-Based Key Derivation Function 2) — это алгоритм генерации ключей на основе пароля, предназначенный для защиты паролей от атак с использованием перебора (brute-force) и радужных таблиц. Относится к классу функций деривации ключа (KDF) и широко применяется в криптографии для хранения хэшей паролей и создания криптостойких ключей для шифрования.

История и происхождение

PBKDF2 был разработан в 2000 году группой специалистов под руководством Брюса Шнайера (Bruce Schneier) и опубликован как часть стандарта PKCS #5 (Public-Key Cryptography Standards #5) версии 2.0. В 2001 году алгоритм был стандартизирован в RFC 2898, а позже вошёл в состав рекомендаций Национального института стандартов и технологий США (NIST) в документе SP 800-132. Основной целью создания PBKDF2 было устранение недостатков более ранних функций хеширования паролей (например, простого SHA-1), которые были уязвимы к ускоренному перебору с использованием специализированного оборудования (GPU, ASIC).

Принцип работы

PBKDF2 использует метод «растягивания ключа» (key stretching), при котором к одному паролю применяется многократное повторение (итерации) псевдослучайной функции (PRF). В качестве PRF обычно выступает HMAC (Hash-based Message Authentication Code) на основе криптографической хэш-функции, такой как SHA-1, SHA-256 или SHA-512.

Основные параметры

Алгоритм принимает на вход четыре параметра:

Процесс вычисления

Алгоритм последовательно выполняет итерации, каждая из которых включает:

  1. Вычисление HMAC от пароля и соли с учётом номера блока.
  2. Побитовое сложение (XOR) результатов всех итераций для получения финального значения.

Формула для одного блока (U) длиной hLen (длина хэша PRF) выглядит так:

`` U_1 = PRF(Password, Salt || INT_32_BE(i)) U_2 = PRF(Password, U_1) ... U_c = PRF(Password, U_{c-1}) T_i = U_1 XOR U_2 XOR ... XOR U_c ``

Где c — количество итераций, iпорядковый номер блока (целое число от 1 до ceil(dkLen / hLen)). Выходной ключ формируется путём конкатенации всех блоков T_i и обрезания до требуемой длины dkLen.

Криптостойкость и ограничения

Достоинства

Недостатки

Применение

PBKDF2 используется в различных областях информационной безопасности:

Современное состояние и альтернативы

По состоянию на 2025 год PBKDF2 считается устаревшим для новых проектов, но по-прежнему широко используется в существующих системах. Рекомендуемое количество итераций для PBKDF2-HMAC-SHA256 составляет не менее 600 000 (по данным OWASP на 2023 год). Основными альтернативами являются:

Несмотря на появление более совершенных алгоритмов, PBKDF2 остаётся важным эталоном в криптографии и изучается в курсах информационной безопасности как классический пример функции деривации ключа.

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →