Функция формирования ключа

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Функция формирования ключа (англ. key derivation function, KDF) — функция, формирующая один или несколько секретных ключей на основе секретного значения (главный ключ, пароль или парольная фраза) с помощью псевдослучайной функции.[1][2] Функция формирования ключа может использоваться для создания ключа необходимой длины или заданного формата. Примером этого может служить преобразование секретного ключа, полученного как результат протокола Диффи — Хеллмана, в симметричный ключ для использования в алгоритме AES. Часто в качестве псевдослучайной функции для формирования ключа используются криптографические хеш-функции.[3]

Некоторые широко используемые алгоритмы формирования ключа: bcrypt, PBKDF2, scrypt.

Использование[править | править код]

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

Функции формирования ключа на основе пароля часто используются для хеширования паролей и их последующей верификации. В этом случае несекретный параметр, используемый в связке с секретным паролем, называется «соль». В 2013 году был анонсирован независимый открытый конкурс Password Hashing Competition[en] по разработке новой функции хеширования паролей. Конкурс завершился 20 ноября 2015 года, победителем стал алгоритм Argon2[4]. Помимо победителя, четыре алгоритма были удостоены специального признания: Catena, Lyra2, Makwa и yescrypt.

См. также[править | править код]

Примечания[править | править код]