Integrated: 8294997: Improve ECC math operations

Daniel Jeliński djelinski at openjdk.org
Thu Oct 13 10:19:08 UTC 2022


On Fri, 7 Oct 2022 21:11:39 GMT, Daniel Jeliński <djelinski at openjdk.org> wrote:

> This patch rewrites some BigInteger and curve point operations used in EC calculations:
> - coefficient * 2^power is equivalent to coefficient << power
> - number mod 2^n is equivalent to number & (2^n-1)
> - pair of IntegerModuloP operations:
> t2 = t1+t1
> t1 = t1+t2
> is equivalent to t1=t1*3, which is now implemented more efficiently.
> 
> Benchmarked the code using not-yet-merged benchmark from #10544. Results on x64 before:
> 
> Benchmark        (messageLength)   Mode  Cnt     Score   Error  Units
> Signatures.sign               64  thrpt   15  1578.907 ± 1.522  ops/s
> 
> After:
> 
> Benchmark        (messageLength)   Mode  Cnt     Score   Error  Units
> Signatures.sign               64  thrpt   15  1679.495 ± 3.883  ops/s
> 
> Greatest part of the improvement is related to ECOperations changes; BigInteger modifications provide only marginal gains (1584 ops/s without ECOperations changes).
> 
> Tier1-3 tests continue to pass.

This pull request has now been integrated.

Changeset: 2f60675e
Author:    Daniel Jeliński <djelinski at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/2f60675e06801b8ee495729d8bff2faec37ce509
Stats:     49 lines in 5 files changed: 2 ins; 23 del; 24 mod

8294997: Improve ECC math operations

Reviewed-by: xuelei

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

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



More information about the security-dev mailing list