Currently, P-384 field operations use 14x28-bit limbs. The efficiency of these operations vastly improve by using 7x55-bit limbs using operations. Performance gains yield 20% to 43% for Java alone:
Key pair generation - P-384: +23-41% Key agreement - P-384: +23-43% Key pair generation - secP384r1MLKEM1024: +22-38% KEM decapsulation - secP384r1MLKEM1024: +21-42% KEM encapsulation - secP384r1MLKEM1024: +20-42% --------- - [X] I confirm that I make this contribution in accordance with the [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai). ------------- Commit messages: - Merge carryReduceUpper with reduce and fix/add more comments - Fix square method - Implement multByInt and square - Fix finalCarryReduceLast and mult - Fix reduceIn, carryReduceUpper, and carryReduceLower - Fix reduceIn, carryReduce, and reduce - Cleanup whitespace - 1st draft of implementation - 8393432: P-384 field operations should utilize larger limb sizes Changes: https://git.openjdk.org/jdk/pull/33193/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=33193&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8393432 Stats: 893 lines in 2 files changed: 874 ins; 18 del; 1 mod Patch: https://git.openjdk.org/jdk/pull/33193.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/33193/head:pull/33193 PR: https://git.openjdk.org/jdk/pull/33193
