[FEAT] Implement hEEA method to accelerate signature verification#856
[FEAT] Implement hEEA method to accelerate signature verification#856zz-sol wants to merge 30 commits intodalek-cryptography:mainfrom
Conversation
|
I will need to read the paper, but I was a little confused by this:
I saw there was a similar pull request to
...so is that implementing the ZIP-215 rules? I'm confused because ZIP-215 is more permissive than RFC8032, and |
hEEA is generic method to accelerate double scalar base multiplication; it does not change how signature verification works.
ed25519-zebra requires curve25519-dalek which is why that PR depend on this. |
|
@zz-sol I guess the other question then is why not apply it to the RFC8032 verification as well, but only to |
good point. It does. Let me add those |
I take it back. Turns out that you cannot apply hEEA for raw_verify. The reason is that in hEEA you are doing a three scalar mul where |
|
This is very cool, thank you for your work! I’ll state my opinion here: this is a lot of new code to take on, and nontrivial code at that. I don’t think I’d feel comfortable maintaining this. Do you think it’d be possible to refactor this as a crate external to dalek? If not, what primitives would you need exposed? I’d like to help if possible |
|
One thing that might help is splitting up the PR into one that just adds |
I think a lot of the code are adding pre-computed table for B*2^128 and a lot of tests. The actual new logic should not exceed a few hundred lines of code. I can break them down to
would this be helpful?
my hope is that this gets integrated and gets renamed to |
|
@zz-sol how about putting the constants in one commit and the core functions in another commit in the same PR to make it easier to review just the latter, and then saving the verification implementation for a followup PR? |
Joint work with @samkim-crypto.
This PR implements the HEEA verification method in "Accelerating EdDSA Signature Verification with Faster Scalar Size Halving" (TCHES 2025).
It implements a new verification API verify_heea which mimiks the exact behaviour of verify_strict but using hEEA to accelerate the multiplications. Note hEEA also uses strict signature verification.
It also implements a three scalar fixed base multiplication scheme to harvest the performance.
Benched on a MBP M4ProMax