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

Use f1600 from keccak crate #25

Closed
wants to merge 1 commit into from

Conversation

newpavlov
Copy link
Contributor

I've implemented a stand-alone crate keccak which currently contains only f1600 function. (in future I plan to expand it with other keccak-f variants and keccak-p) The crate is licensed under CC0 terms and it's based on @Vurich's contribution. The main changes are use of custom unrolling macros (i.e. no dependency on crunchy) and disabled unrolling of rounds loop. The latter results in a better performance (~15-20% on my machine) and in a significantly smaller function size (~24 times), which proportionally improves compilation times, especially after recent regression in the compiler.

@eira-fransham
Copy link
Contributor

I don't think there's any point depending on this within tiny-keccak. If your implementation is better then the consumers of tiny-keccak should just depend on your crate instead. The only improvement to the algorithm in this PR is rerolling the outer loop, and I think a better PR would be one that did that and that alone.

@newpavlov
Copy link
Contributor Author

In future we plan to add wrappers around assembly from KeccakCodePackage which will be exposed in keccak through feature gate, so I don't think it will be a good idea to duplicate implementations. Either way it's your call, so you can close this PR if you want.

@debris debris closed this May 17, 2018
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

Successfully merging this pull request may close these issues.

3 participants