Функція формування ключаФункція формування ключа (англ. key derivation function, KDF) — функція, що формує один або кілька секретних ключів на основі секретного значення (головний ключ, пароль або парольна фраза) з допомогою псевдовипадкової функції.[1][2] Функція формування ключа може використовуватися для створення ключа необхідної довжини або заданого формату. Прикладом цього може служити перетворення секретного ключа, отриманого як результат протоколу Діффі — Хеллмана, симетричний ключ для використання в алгоритмі AES. Часто псевдовипадковою функцією для формування ключа використовуються криптографічні хеш-функції.[3] Деякі широко використовувані алгоритми формування ключа: bcrypt, PBKDF2, scrypt. ВикористанняФункція формування ключа часто використовується в зв'язці з несекретними параметрами для отримання одного або декількох секретних ключів на основі загального секретного значення. Таке застосування може зашкодити зловмиснику, що заволодів сформованим ключем, отримати інформацію про вихідне секретне значення або про будь-який зі сформованих ключів. Функція формування ключа може застосовуватись для генерації ключа, що задовольняє бажаним заданим властивостями (наприклад, виключення слабких ключів у деяких шифрувальних системах). Функції формування ключа на основі пароля часто використовуються для хешування паролів та їхньої подальшої верифікації. У такому випадку, несекретный параметр, що використовується у зв'язці з секретним паролем, називається «сіль». У 2013 році був анонсований незалежний відкритий конкурс Password Hashing Competition[en] з розробки нової функції хешування паролів. Конкурс завершився 20 листопада 2015 року, переможцем став алгоритм Argon2[4]. Крім переможця, чотири алгоритми були нагороджені спеціальною відзнакою: Catena, Lyra2, Makwa і yescrypt. Дивись такожПримітки
|