-
Notifications
You must be signed in to change notification settings - Fork 51
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
lineage of KDF #21
Comments
Being highly-portable and standalone was a core goal. To achieve this, I
used drop-in implementations of Curve25519, SHA256, and ChaCha20. The
latter two are even in the public domain (like Enchive itself), making
them just perfect. Since I couldn't find a drop-in implementation of any
memory-hard KDF, I designed this one myself. So, yes, it's homebrew.
It's not based on any other design. I wanted something relatively simple
that couldn't reasonably be optimized beyond a very straightforward
implementation. If the memory-hard property _can_ somehow be bypassed,
it is, at worse, equivalent to millions of iterations of SHA256: e.g.
essentially the best KDF available in GnuPG for protection keys.
I talked about my overall goals in these articles (which should perhaps
be linked from the README):
https://nullprogram.com/blog/2017/03/12/
https://nullprogram.com/blog/2018/04/13/
|
You may be interested in Monocypher. |
Thanks for the heads up. It looks like Monocypher was first released the
same week I broke ground on Enchive. I wish I had discovered it at the
time.
|
This KDF seems to be a homebrew thing https://github.com/skeeto/enchive/blob/master/src/enchive.c#L664
why not use scrypt?
how was this particular KDF designed? is it based on some literature? no links to references are provided in the source. Thanks!
The text was updated successfully, but these errors were encountered: