-
Notifications
You must be signed in to change notification settings - Fork 258
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
Missing hash functions #1
Comments
MD2 explanation The first link has an example of an implementation in C of MD2. Overall the implementation is around 100 lines of code and hence should be doable for anyone that knows a bit of rust. |
I am somewhat new to Rust but I believe I can do this. Can I take MD2? |
Moved Grostl discussion to #8. |
I'd like to take a shot at Tiger. |
I'll take a shot at MD6 |
I think |
bcrypt is a password hashing function. Perhaps those deserve their own toplevel project, as they are functionally different from hash functions (among other things they are PRFs, not hash functions) |
@lilianmoraru |
nit about "kdf": bcrypt isn't a KDF |
I think it's "close enough". Also wiki. Either I am open to suggestions, but I think it's better to continue this discussion in the IRC. Edit: after discussion I think we will go with "password-hashing" instead of "kdf" |
@newpavlov There is also this implementation and this one(which seems better but I'd switch it from |
Thank you for the links! I will definitely check them! |
+1 for KangarooTwelve, seems like a great option for hashing files very quickly for content addressable filesystem situations (e.g., git, backups, etc). |
Of this list, KangarooTwelve is the only one I'm even remotely interested in. |
+1 for KangarooTwelve. Is it a good idea to add the TupleHash family too? |
Hi, Are you interested in Shabal? All the best |
@spebern |
Current link for KangarooTwelve: https://keccak.team/kangarootwelve.html. (Old link redirects there.) |
Any interest in TTH? |
Sure. It seems like you could put it in the |
I would like to propose the hash algorithm Argon2 for inclusion in RustCrypto. |
Any chance we can get IFSB, RFSB, and S-FSB? Wikipedia indicates nothing about IFSB's performance, but states that S-FSB is 30 percent faster than FSB and that RFSB is 10x faster than FSB-256. I would implement these myself but I have no knowledge of cryptography -- or at least not the mathematics and such. :-( |
I've implemented cSHAKE, and I have a few open questions before I can open a PR:
EDIT: Should we open a Zulip stream for RustCrypto? or is there a Discord/Matrix channel somewhere that I can join to ask these kinds of questions? |
I think we can start without it and potentially expose it later if someone will request it.
The format is described in the
You can create PR with several test vectors and I can convert the rest for you.
We already have Zulip (note README badges): https://rustcrypto.zulipchat.com/ |
RIPEMD-128: #406 |
found an md6 but it's via FFI: this isn't what you want, is it? tapping in: @nabijaczleweli |
@laudiacay |
How about poseidon hash? |
@ashWhiteHat Added. |
Thank you! |
HAS-160 Specification The original specification has been taken down, so I have linked to the wayback machine page. I have also updated the link on the wikipedia page of HAS-160. The paper also contains pseudocode and explains the algorithm in-depth. |
I see POSEIDON in here, and I'm interested in working on it for GSoC, but while I was researching it, I found this recent video on their faster version of the hash function. It uses a special matrix to speed up multiplication, and they call it POSEIDON2. Could this be added to the list? |
I added Poseidon2 to the list as well as a link to the HAS-160 spec |
Would
|
@AndersSteenNilsen |
I have a working implementation of Kupyna_512 (working as in it passes all tests for this mode, as mentioned in the paper). edit: typo |
@AnarchistHoneybun |
Sure, I'll open a new pr in a bit. (ESL, so apologies if this sounds rude, I'm trying to phrase the question but I can't come up with a way to do it without sounding awkward or rude) |
I meant "migrating to our traits". With them you essentially need to define hash initialization, block compression, and hash finalization. Buffering, data chunking, and everything else will be handled by |
just opened a new pr for it, and I will keep working on the required changes. as for discussion on it, should I open a new issue and link the pr to that, or just under the pr would serve well? |
You can open a new PR with implementation draft without a separate issue. |
I believe the Sinemilla hash function could be a good addition to this library. This hash function is used primarily in the Zcash blockchain, but its security properties and efficiency have applications beyond that environment.
I've previously written a Sinsemilla Specification that outlines its core principles and implementation details. The only external dependency required for this implementation would be the Pasta Curves crate, which offers the necessary elliptic curve operations. I would be happy to try to do the implementation if this seems like a good fit for the project. |
hey folks! is a POSEIDON implementation in the works currently? |
@Piyuuussshhh As far as I know, no. |
I have a TupleHash implementation that I'm willing to donate: https://docs.rs/tuple-hash |
List of "would be nice to have" hash functions:
It can be changed based on discussion.
The text was updated successfully, but these errors were encountered: