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
