RFR 8208648: ECC Field Arithmetic Enhancements
Jamil Nimeh
jamil.j.nimeh at oracle.com
Fri Dec 7 01:03:09 UTC 2018
Hi Adam, comments/questions below (mostly simple stuff, nothing major):
* IntegerPolynomial.java
o The comment block for multByInt should reflect your changes you
made, namely the removal of "r" from the signature.
o 88: In the case of multiplying two very large long values would
we ever see those cause an overflow. If so, is it OK to have
them overflow before the reduce operation?
o 420-425: Looks like this was a copy of the comment block from
conditionalSwap(). Maybe needs to be tailored to what the
conditionalAssign method does?
o IntegerPolynomialP256.java, IntegerPolynomialP384.java,
IntegerPolynomialP521.java
+ In the carryReduce0 and carryReduce methods, you have many
uses of an integer literal (33554432 for P256, 134217728 for
P384/521). Should these be made as private static final
long values?
o P256OrderField.java, P384OrderField.java, P521OrderField.java
+ Similar question about using a static final long vs.
repeated int literal values in the carryReduce* methods.
o With respect to the last two main bullet items: Would conversion
to a static final value be difficult due to the fact that they
are generated from Fieldgen.jsh?
--Jamil
On 11/30/2018 11:59 AM, Adam Petcher wrote:
> JBS: https://bugs.openjdk.java.net/browse/JDK-8208648
> webrev: http://cr.openjdk.java.net/~apetcher/8208648/webrev.00/
>
> This changeset includes the enhancements to the finite field
> arithmetic library that are necessary for the new implementation of
> ECDSA and ECDH[1]. The actual ECDH and ECDSA changes will be reviewed
> separately. Please see the JBS tickets for more information about the
> changes, and here are some additional notes:
>
> 1) This change includes a code generator that produces finite field
> implementations. The generated code is included in the review, and it
> will be checked in to the repository with a comment indicating that it
> is generated and should not be modified directly. Another option is to
> put the code generator into the build process so the generated code
> does not need to be checked in, but it's not clear whether this is a
> better option.
> 2) Reviewing every line of the generated code is probably not
> necessary, and it is probably better to focus on the code generator
> itself (Fieldgen.jsh). Of course, it is probably a good idea to review
> the generated code for its structure and for opportunities for
> improvement.
>
>
>
> [1] https://bugs.openjdk.java.net/browse/JDK-8208698
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/security-dev/attachments/20181206/264e4852/attachment.htm>
More information about the security-dev
mailing list