The limb size for Curve448 operations is currently 16x28-bit. This is modified 
to be vastly more efficient with 8x56-bit limbs, where performance gains yield 
+39-48% for Java alone:

AArch64:
Key pair generation: +45%
Key agreement: +46%

Key pair generation for Ed448: +48%
Ed448 signing: +45%
Ed448 verification: +47%

x86_64:
Key pair generation: +43%
Key agreement: +43%

Key pair generation for Ed448: +40%
Ed448 signing: +39%
Ed448 verification: +39%

---------
- [X] I confirm that I make this contribution in accordance with the [OpenJDK 
Interim AI Policy](https://openjdk.org/legal/ai).

-------------

Commit messages:
 - Fix reductions in high order limbs and typos
 - Add multByInt and square implementation
 - 8393160: Increase limb sizes for Curve448 field operations in Java

Changes: https://git.openjdk.org/jdk/pull/33277/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=33277&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8393160
  Stats: 965 lines in 2 files changed: 928 ins; 36 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/33277.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/33277/head:pull/33277

PR: https://git.openjdk.org/jdk/pull/33277

Reply via email to