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

[crypto] Rescue hash function #36

Closed
irakliyk opened this issue Jul 19, 2021 · 0 comments · Fixed by #50
Closed

[crypto] Rescue hash function #36

irakliyk opened this issue Jul 19, 2021 · 0 comments · Fixed by #50
Labels
enhancement New feature or request

Comments

@irakliyk
Copy link
Collaborator

irakliyk commented Jul 19, 2021

Implementing high-performance version of Rescue hash function would be the first step towards recursive STARKs. Target performance should be 100K+ hashes (64B -> 32B) per second.

To achieve such level of performance, we would need to implement Rescue in a small (~64-bit) field. Description of Rescue hash function can be found here:

Potential parameters (for ~128-bit security level) could be:

  • Filed size: ~64-bits
  • State width: 12 elements
  • S-box degree: 3, 5, or 7 (depends on the chose field)
  • Number of rounds: 7

We could also expose this implementation as two different variants: one with 4 field element output (~128 bit collision resistance) and 3 field element output (96-bit collision resistance). Although, it may be better to have a separate implementation for 96-bit version as that could be instantiated with a state width of 9 elements, and thus should be noticeably faster than the one using 12 elements.

@irakliyk irakliyk added the enhancement New feature or request label Jul 19, 2021
@irakliyk irakliyk mentioned this issue Aug 12, 2021
5 tasks
@irakliyk irakliyk linked a pull request Aug 12, 2021 that will close this issue
5 tasks
Jasleen1 pushed a commit to Jasleen1/winterfell that referenced this issue Sep 8, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant