Skip to content
New issue

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

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

Already on GitHub? # 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
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant