BCrypt based key derivation function to improve BCrypt as a cryptographic primitive for password hashing and key derivation