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

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

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

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

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

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

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

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

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

  1. Bezzi, Michele. Data privacy // Privacy and Identity Management for Life. — Springer, 2011. — P. 185–186. — ISBN 9783642203176.
  2. Kaliski, Burt. RFC 2898 -- PKCS #5: Password-Based Cryptography Specification, Version 2.0. IETF.
  3. Zdziarski, Jonathan. Hacking and Securing IOS Applications: Stealing Data, Hijacking Software, and How to Prevent It. — O'Reilly Media, 2012. — P. 252–253. — ISBN 9781449318741.
  4. «Password Hashing Competition»