Документация Алгоритмы формирования ключа PBKDF2

# PBKDF2

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

### Варианты PBKDF2-HMAC, поддерживаемые в VeraCrypt

- PBKDF2-HMAC-SHA-512
- PBKDF2-HMAC-SHA-256
- PBKDF2-HMAC-Whirlpool
- PBKDF2-HMAC-BLAKE2s-256
- PBKDF2-HMAC-Streebog

### Параметры в VeraCrypt

#### Соль

512-битовая случайная соль, сохраняемая в заголовке тома, смешивается с паролем, чтобы предотвратить предвычисления и атаки с радужными таблицами.

#### Количество итераций

Количество итераций PBKDF2 зависит от выбранного HMAC-хеша, контекста (например, системное или несистемное шифрование) и значения PIM. Увеличение PIM повышает число итераций и, следовательно, время, необходимое для формирования ключей. Точные значения и формулы приведены в разделе Формирование ключа заголовка, соль и количество итераций.

#### Длина вывода

Объём сформированного ключевого материала заголовка зависит от выбранного алгоритма или каскада шифрования. В текущих томах XTS VeraCrypt использует как первичные, так и вторичные ключи заголовка; например, для AES-256-XTS требуется всего 512 бит (два 256-битовых ключа), а для каскада AES-Twofish-Serpent-XTS — 1536 бит (шесть 256-битовых ключей).

### Преимущества и особенности

- Широкая совместимость: PBKDF2 широко поддерживается на разных платформах и в разных средах.
- Низкие требования к памяти: подходит для систем с ограниченными ресурсами.
- Не обладает повышенными требованиями к памяти: по сравнению с Argon2id, PBKDF2 обеспечивает меньшую устойчивость к атакам с использованием массово-параллельного оборудования (GPU/ASIC). Если необходимо использовать PBKDF2, рассмотрите возможность повышения PIM.

### Связанные разделы

- Алгоритмы формирования ключа (обзор)
- Argon2id
- Формирование ключа заголовка, соль и количество итераций
- PIM (Персональный множитель итераций)