Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nice-to-have features #28

Open
jedisct1 opened this issue Dec 27, 2024 · 1 comment
Open

Nice-to-have features #28

jedisct1 opened this issue Dec 27, 2024 · 1 comment

Comments

@jedisct1
Copy link

Some nice-to-have features. That may be out of scope for that document, but that would solve some real-world problems that all the widely used password hashing algorithms have.

  1. Server relief. Allow the client to perform a part of the computation. In BKDF, hash is just the addition of the outputs of independent BalloonCore instantiations, so that can easily be implemented. Provided that pepper is empty, or can be computed as a shared secret.

  2. Encryption. Section 9 refers to it, but maybe it would be an opportunity to define a standard way to do it. Introducing a dependency on AEADs is not required. Encryption can be made by leveraging the PRF.

  3. The ability to upgrade parameters without having access to the passwords, similar to libhydrogen's pwhash_upgrade function. That would be a killer feature. In BKDF, the only way to achieve that would be to define a way to encode the composition of multiple BKDF calls. Probably out of scope for the document. But damn, that's something that would be really amazing to have in new password hashing functions.

@samuel-lucas6
Copy link
Owner

Thanks for these suggestions. Definitely worth thinking about. I never considered 1 with the same computation rather than calling the entire algorithm twice. For 2, the dilemma would probably be the conflict with the pepper parameter and maybe the output length. 3 would be nice but isn't something I've read into.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants