-
Notifications
You must be signed in to change notification settings - Fork 122
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
[EC] P-256/384/521 s2n-bignum scalar multiplication #2036
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #2036 +/- ##
==========================================
- Coverage 78.77% 78.76% -0.01%
==========================================
Files 598 598
Lines 103683 103689 +6
Branches 14742 14743 +1
==========================================
- Hits 81672 81669 -3
- Misses 21359 21366 +7
- Partials 652 654 +2 ☔ View full report in Codecov by Sentry. |
be51baf
to
c00d023
Compare
This reverts commit 86bee87.
c00d023
to
84f677e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Comments on updates that dkostic will address in another PR as we discussed:
p384_felem_mul_scalar_rwnaf
is now only mentioned at the bottom of p384.c, but it's nowscalar_rwnaf
in ec_nistp.c so I wanted to suggest an updated writing there.- update the mention of the ECCKiila project and how we defer from them in starting from the most significant digit.
Added point: I think we need to clarify that p256-nistz
contains two assembly implementations while p384.c and p521.c contain just one: s2n-bignum and the alternative is Fiat C
Issues:
N/A
Description of changes:
For curves P-256/384/521 we use s2n-bignum implementation
of scalar multiplication of an arbitrary point. This gives the following
performance improvements (measurements in ops/s):
where Apple M1 is a M1 based macbook laptop, and
Intel is Intel(R) Xeon(R) Platinum 8488C.
Call-outs:
N/A
Testing:
How is this change tested (unit tests, fuzz tests, etc.)? Are there any testing steps to be verified by the reviewer?
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and the ISC license.