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

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

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

Деякі широко використовувані алгоритми формування ключа: bcrypt, PBKDF2, scrypt.

Використання[ред. | ред. код]

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

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

Дивись також[ред. | ред. код]

Примітки[ред. | ред. код]

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