Bcrypt: Адаптивне Хешування для Безпеки Паролів

Bcrypt — це адаптивна функція хешування паролів на основі шифру Blowfish, розроблена Niels Provos та David Mazières у 1999 році. На відміну від простих криптографічних хеш-функцій, таких як SHA-256, bcrypt навмисно повільний і може стати ще повільнішим з часом, коли обладнання покращується, що робить його стійким до атак грубої сили.

Шифр Blowfish

Bcrypt використовує симетричний блочний шифр Blowfish як основну примітивну операцію. Фаза налаштування ключа Blowfish навмисно дорога—вона обробляє пароль через 18 000 ітерацій F-функції. Цей 'вартість налаштування ключа' визначає, наскільки обчислювально дорогим стає хешування.

Коефіцієнт Вартості (Раунди Солі)

Коефіцієнт вартості контролює експоненту 2^rounds. Кожен додатковий раунд подвоює час, необхідний для хешування. Коефіцієнт вартості 10 означає 2^10 = 1 024 ітерації. Сучасні рекомендації — коефіцієнт 10–12.

Соління

Bcrypt автоматично генерує випадкову 128-бітну (16-байтну)сіль для кожного хешу. Цясіль зберігається як перші 22 символи хешу.