Функция формирования ключа (, ) — функция, формирующая один или несколько секретных ключей на основе секретного значения (главный ключ, пароль или парольная фраза) с помощью псевдослучайной функции. Функция формирования ключа может использоваться для создания ключа необходимой длины или заданного формата. Примером этого может служить преобразование секретного ключа, полученного как результат протокола Диффи — Хеллмана, в симметричный ключ для использования в алгоритме AES. Часто в качестве псевдослучайной функции для формирования ключа используются криптографические хеш-функции.
Некоторые широко используемые алгоритмы формирования ключа: bcrypt, PBKDF2, scrypt.
Использование Функция формирования ключа часто используются в связке с несекретными параметрами для получения одного или нескольких секретных ключей на основе общего секретного значения. Такое применение может помешать атакующему, владеющему сформированным ключом, узнать информацию об исходном секретном значении или о любом из сформированных ключей. Функция формирования ключа может применяться для генерации ключа, удовлетворяющего заданным желательным свойствам (например, исключение слабых ключей в некоторых шифрующих системах).
Функции формирования ключа на основе пароля часто используются для хеширования паролей и их последующей верификации. В этом случае несекретный параметр, используемый в связке с секретным паролем, называется «соль». В 2013 году был анонсирован независимый открытый конкурс по разработке новой функции хеширования паролей. Конкурс завершился 20 ноября 2015 года, победителем стал алгоритм Argon2. Помимо победителя, четыре алгоритма были удостоены специального признания: Catena, Lyra2, Makwa и yescrypt.
См. также Crypt (Unix) Crypt (C)
Примечания
Категория:Криптография